Translate

terça-feira, 2 de outubro de 2012

Unix: Conceitos e Comandos Básicos


Ligando e Desligando a Máquina

Salvo orientação específica do hardware em uso, ligar uma máquina Unix não costuma envolver maiores detalhes do que o acionamento de um botão liga/desliga no console da máquina e uma eventual intervenção humana logo em seguida, solicitando o boot efetivo do sistema a partir de um menu de opções.O boot costuma gerar uma razoável quantidade de mensagens que aparecem no console da máquina. Normalmente elas referem-se aos diferentes estágios do reconhecimento e inicialização do hardware. É interessante conhecê-las, não obstante, salvo contingências, podem ser ignoradas até que surja o prompt ou a janela de login.
O desligamento é um processo mais delicado. O Unix utiliza parte da memória principal como cache de disco, a fim de acelerar as operações de leitura e gravação de arquivos. Antes de se desligar a máquina, é necessário assegurar que os discos estejam sincronizados com o cache, o que é feito pelo comando sync, que deve ser precedido do encerramento de todos os processos, a fim de que não ocorra uma dessincronização em seguida. Todos esses passos são tomados pelo comando shutdown:

$ shutdown -y -g 1 -i 5   (Solaris)
$ shutdown -h now         (Linux)
Em sistemas baseados em PC, o shutdown por vezes é acionável através do ctrl-alt-del.

Manipulando arquivos e diretórios

shell é o programa que lê e executa os comandos que você passa a digitar logo após logar no sistema, como cd ou ls. Via de regra você estará usando o Bourne shell (sh), ou o C shell (csh), ou aperfeiçoamentos desses, como o Korn shell (ksh) ou o Bourne again shell (bash). Via de regra você poderá descobrir qual deles está usando ao executar um ps ou um finger com o seu username com argumento.
Obsoleta ou não, a interface de linha de comandos possui características ainda não suficientemente reproduzidas nas interfaces gráficas, como a possibilidade de uso remoto com baixa banda, e a programabilidade. No caso do Unix, há ainda a vantagem dela estar melhor estandardizada que as interfaces gráficas. Em boa parte dessas notas estaremos nos referindo à interface de linha de comandos, mas abordaremos também a interface gráfica ao final. Vejamos alguns típicos comandos dos sistemas Unix-like:

  • cat [-r] arquivo1 arquivo2 ... 
    Concatena os vários arquivos, na ordem especificada, copiando o resultado para a saída padrão. Se não houver argumentos, copia a entrada padrão para a saída padrão.
  • cd diretório
    Troca o diretório corrente para o diretório especificado, ou para o diretório home, se não houver argumento.
  • cp [-r] argumento1 argumento2 ... 
    Copia um ou mais arquivos, trocando seu nome ou criando a cópia num outro diretório, conforme a quantidade e o tipo dos argumentos. Se o primeiro argumento for um diretório, faz uma cópia recursiva de toda a subárvore iniciada nele, desde que a opção -r (recursive) tiver sido especificada.
  • chmod nnn argumento1 argumento2 ... 
    Troca os atributos do(s) argumento(s) para nnn (veja atributos de arquivos). Ao invés de nnn, a alteração pode ser especificada por exemplo como a+r ou g-w (ag e o significam allgroup e owner+ significaadicionar e - removerr,wx e s indicam respectivamente atributos de leitura, escrita, execução e setuid).
  • ls [-la] diretório1 diretório2 ... 
    Lista o conteúdo do(s) diretório(s) especificado(s), ou do diretório corrente se não houver argumento. Opções principais:
    -a Inclui arquivos com nome iniciado por ``.'' (tais arquivos normalmente armazenam configurações de aplicativos).
    -l Formato longo (veja atributos de arquivos).
  • ln -s argumento1 argumento2 
    Cria um link simbólico cujo nome é o primeiro argumento, apontando para o segundo argumento. A opção -s não pode ser omitida, ou o link criado será um hard link, ao invés de simbólico.
  • man [-k] nome 
    Invoca a man-page associada ao nome, ou exibe uma lista das man pages associadas ao nome, no caso da opção -k (de key) ter sido especificada.
    As man pages Unix são referências técnicas sumárias por vezes difíceis de compreender. Elas são exibidas através do more ou de algum outro paginador semelhante, por isso os comandos do more indicados mais adiante valem para a leitura de man pages, e são úteis para ajudar a localizar informações dentro de uma man page.
    As man pages são divididas em seções, que tradicionalmente são referidas através de parênteses. Por exemplo, a man page shutdown(2) é a man page do system call chamado shutdown, ao passo que a man pageshutdown(8) é a man page do comando administrativo shutdown. Além dessas, a seção 1 contém manuais de comandos comuns, a 3 contém manuais de serviços de bibliotecas, a 4 descreve device special files, a 5 descreve formatos de arquivos de configuração, a 6 os jogos eventualmente instalados, e a 7 contém tudo o mais que não couber nas anteriores.
  • mkdir diretório1 diretório2 ... 
    Cria os diretório(s) especificado(s).
  • more arquivo 
    Exibe de forma paginada o arquivo especificado, ou a entrada padrão no caso de não haver argumento. Aceita vários comandos, entre eles
    ESPAÇOC-b
    /
    ?
    Avança/recua uma página.
    Busca.
    Exibe relação de comandos.

  • mv argumento1 argumento2
    Renomeia o primeiro argumento, que pode ser um arquivo ou um diretório, para o nome dado como segundo argumento. Se ao tentar executar esse comando a mensagem de erro cannot move across filesystemsfor exibida, é porque a origem e o destino estão em filesystems diferentes. Nesse caso deve-se copiar a origem para o destino usando cp, e depois remover a origem com rm.
  • rm [-r] argumento1 argumento2 ... 
    Remove os arquivo(s) especificado(s). Se um argumento for um diretório, remove toda a subárvore iniciada nele, desde que a opção -r (recursive) tenha sido especificada. Via de regra não há modo em sistemas Unix-like de recuperar (undelete) um arquivo removido.
  • rmdir diretório1 diretório2 ... 
    Remove os diretório(s) especificado(s), desde que estejam vazios.
  • vi arquivo 
    vi é uma ferramenta obsoleta, mas está está presente em virtualmente qualquerr plataforma Unix-like, e constitui por vezes a única alternativa para edição de arquivos, por isso convém conhecê-lo ao menos de forma minimal. No uso quotidiano, entretanto, normalmente preferir-se-á outras ferramentas, como o emacs ou o pico ou outras.
    hjkl
    C-f,C-b
    x,X
    [n]dd
    i,ESC
    a,A
    J
    :
    cursor para esquerda/baixo/cima/direita.
    Página seguinte/anterior.
    Remove caracter atual/anterior.
    Remove n linhas (default 1).
    Entra/sai do modo inserção.
    Insere após caracter atual/final da linha.
    Concatena linha seguinte à atual.
    entra comando, entre eles w (salva), q (sair) e / (busca).

  • wc arquivo1 arquivo2 ... 
    Obtém o total de linhas, palavras e caracteres de cada um dos arquivos estipulados, ou da entrada padrão no caso de não haver argumentos.

Nenhum comentário:

Postar um comentário