segunda-feira, 10 de agosto de 2020

Comandos úteis do Editor VI

 O editor VI é o editor básico do Unix/Linux.

Para invocar o editor digita-se: vi arquivo(s).

Ao invocar o VI, este entra direto para o modo 'visualização'. Para modificar o arquivo, usa-se os modos de inserção, deleção e de substituição. Para voltar ao modo de visualização, sempre se usa a tecla <ESC>.

Alguns dos comandos mais usados são:

    Inserção de caracteres:
  • i - insere texto antes do caractere atual.
  • I - insere texto no início da linha atual.
  • a - insere texto após o caractere atual.
  • A - insere texto no final da linha atual.
  • o - insere texto no início da próxima linha (inserindo uma nova linha).
  • O - insere texto no início da linha anterior (inserindo uma nova linha).

OBS: Para sair do modo de inserção de caracteres, digite <ESC>.

    Deleção de caracteres:
  • <DEL> - deleta a letra anterior ao cursor (depende da configuração).
  • x - deleta a letra do cursor (nx deleta as próximas n letras).
  • dw - deleta o restante da palavra atual (ndw deleta as n próximas palavras).
  • u - undelete (restaura o que foi apagado por último ou apaga o que foi inserido por último).
  • dd - deleta a linha atual (ndd deleta n linhas a partir da atual).
    Substituição de caracteres:
  • s - substitui a letra atual (e entra no modo de inserção).
  • S - substitui a linha atual (e entra no modo de inserção).
  • r - substitui a letra atual (não entra no modo de inserção).
  • R - entra no modo de substituição (sai com <ESC>).
  • ~ - substitui maiúsculo/minúsculo.
  • . - repete o último comando.
    Movimentação de cursor (em algumas situações as setas funcionam):
  • j - uma linha para baixo
  • k - uma linha para cima
  • h - um caractere para a esquerda
  • l - um caractere para a direita
  • b - volta para o início da palavra.
  • w - adianta para a próxima palavra.
  • e - vai para o fim da palavra.
  • 0 - início da linha
  • $ - fim da linha
  • nG - vai para a linha n (0G ou G vai para a ultima linha).
  • % - usado em parênteses para achar o par.
  • +n - vai + n linhas para baixo.
  • -n - vai n linhas para cima.
    Busca de palavras:
  • /palavra - procura palavra a partir da atual.
  • ?palavra - procura palavra a partir da atual (voltando para o início do arquivo).
  • n - procura próxima ocorrência (na mesma direção de busca).
    Operações com buffers:
  • nyy - coloca n linhas no buffer (copiar).
  • nY - coloca n linhas no buffer (copiar).
  • ndd - deleta as n linhas (a partir da atual) e coloca no buffer (copiar).
  • p - retira o conteúdo do buffer (colar) e coloca após a linha atual.
  • P - retira o conteúdo do buffer (colar) e coloca antes da linha atual.
    Operações de bloco:
  • ml - marca a linha l (mx marca a linha x, etc usando o alfabeto).
  • 'a - vai para a linha marcada a.
    Para ler ou escrever o arquivo (ou parte dele) usa-se os comandos:
  • :r arquivo - ler o arquivo para dentro do arquivo atual, a partir do local atual.
  • :w [arquivo] - escreve o arquivo
  • :q - sai sem modificar o arquivo (se foi alterado tem que usar :q!).
  • :wq - sai, salvando o arquivo editado.
  • ZZ - sai, salvando o arquivo editado.
  • :'a,'b[operação] - realiza a operação no bloco contido entre as marcas a e b.
  • :d - deleta a linha atual (útil como operação de blocos).
  • :s/string1/string2/ - substitui o string1 por string2

Comandos Úteis do Linux

 O Linux é uma versão freeware do Unix. Como tal, utiliza bastante os recursos de pipes e redirecionamento.

Pipes traduzindo "ao pé da letra" significa canos. Na realidade os pipes são um recurso onde a saída de um programa é a entrada de outro. Para usar pipes se usa o símbolo '|'.

Os recursos de redirecionamento permitem alterar a entrada/saída padrão do sistema. Redirecionamento da entrada se consegue com '<', e da saída com '>'.

Listamos abaixo alguns comandos úteis do Linux.

    Help on-line:
  • man - help, manual, uso dos comandos.
    Utilização dos recursos do sistema:
  • df - Mostra a porcentagem de utilização dos HDs.
  • du - Mostra a utilização do HD por diretório.
  • free - Mostra a utilização da memória e área de swap.
  • ps - Process Status, mostra os processos que estão rodando.
  • whereis - mostra em que diretório está um programa.
  • which - mostra qual programa será executado.
    Manipulação de arquivos:
  • cp - copia arquivo.
  • mv - move (ou renomeia) arquivo.
  • rm - remove arquivos.
  • ls - mostra o nome dos arquivos no diretório corrente (dir).
  • cat - mostra o arquivo na tela.
  • more - mostra o arquivo na tela (uma tela de cada vez).
  • grep - procura, dentro de um arquivo, as linhas que contem um determinado string.
  • head - mostra as primeiras linhas de um arquivo.
  • tail - mostra as últimas linhas de um arquivo.
  • wc - conta quantas linhas, palavras e letras em um arquivo.
  • diff - compara dois arquivos.
  • cmp - Comparação binária entre dois arquivos.
  • vi - Editor de arquivos.
    Manipulação de diretórios:
  • mkdir - cria diretório.
  • rmdir - remove diretório vazio.
  • cd - muda de diretório.
  • pwd - mostra o diretório corrente.
    Segurança:
  • passwd - mudança de senha.
  • chmod - muda as permissões dos arquivos/diretórios (attribute).
    Verificando usuários:
  • who - mostra quem está logado na maquina.
  • whoami - (who am I) mostra quem sou eu (útil para quem faz muito su para mudar de usuário).
  • finger - mostra qual o login de algum usuário.
    Manipulação da impressora:
  • lpr - imprime arquivo.
  • lpq - mostra a fila de impressão.
  • lprm - remove da fila de impressão.

Dicas de gerenciamento de usuários no Linux

 A lista de usuários é mantida pelo Linux no arquivo /etc/passwd O arquivo contêm uma linha para cada usuário cadastrado. Os campos em cada linha são separados pelo símbolo ":". Cada linha tem o seguinte formato (ou as seguintes colunas):

  1. O nome de login do usuário:
  2. A senha encriptada do usuário:
  3. O numero do grupo do usuário:
  4. O numero do usuário (UID):
  5. O nome completo do usuário:
  6. O diretório "home" do usuário:
  7. O tipo de shell do usuário.

Para acrescentar um usuário novo no sistema, usa-se o comando adduser. Este comando pede as informações necessárias para acrescentar mais uma linha no arquivo de usuários.
Após a atualização do arquivo, o programa cria o diretório "home" do usuário e copia todos os arquivo contidos no diretório /etc/skel para este diretório.

Para deletar um usuário é necessário editar o arquivo /etc/passwd e: ou apagar o login, ou alterar a senha encriptada. Uma técnica bastante usada para impedir o acesso de um usuário temporariamente é de inserir um asterisco antes da primeira letra da senha. Para habilitar novamente o usuário, basta remover o asterisco inserido.

Para deletar completamente um usuário do sistema, é preciso deletar seu nome do arquivo /etc/login como descrito acima e ainda apagar os seus diretórios: /home/user e /var/spool/mail/user. Para remover completamente (sem possibilidade de recuperar) usa-se o comando rm -R dir.

Em versões mais recentes segurança tem sido muito mais importante aos gerentes de sistema, e portanto tem sido modificado a forma de salvar a senha dos usuários.

Uma modificação foi a introdução de um arquivo (/etc/shadow) exclusiva para senhas. Neste tipo de arquitetura, o arquivo /etc/passwd não contém mais as senhas. O arquivo /etc/shadow contém o nome do usuário e sua senha encriptada, além do tempo de vida de sua senha. Este arquivo é lido apenas pelo root (gerente geral do sistema). Assim as senhas ficam mais difíceis de obter.

Outra coisa que está mudando no Linux, é a gerência do sistema por menus (cada dia mais parece com o sistema operacional tão combatido). Sendo assim, já tem nas interfaces Gnome, KDE e outros, menus para gerenciar os usuários, não sendo mais necessário a edição dos aruivos de configuração diretamente. Nestes casos basta seguir os menus para acrescentar, remover ou alterar dados de um usuário.