Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
unix:comandos_basicos [2019/02/19 15:04] mazierounix:comandos_basicos [2019/02/19 18:00] (atual) – [Exercícios] maziero
Linha 1: Linha 1:
 +====== UNIX: Comandos em arquivos ======
 +
 +===== Comandos básicos =====
 +
 +Os comandos a seguir implementam operações básicas em arquivos:
 +
 +  * ''ls'' : listar o conteúdo do diretório corrente (ou de um diretório dado).
 +  * ''rm'' : remover arquivos.
 +  * ''mv'' : movimentar arquivos.
 +  * ''cp'' : copiar arquivos.
 +  * ''cat'' : apresentar o conteúdo de arquivos.
 +  * ''more'' : visualizar o conteúdo de arquivos (paginado).
 +  * ''ln'' : criar links (atalhos).
 +
 +Os comandos usados para navegação na árvore de diretórios são similares aos usados em outros sistemas operacionais:
 +
 +  * ''pwd'' : indica qual o diretório corrente do shell.
 +  * ''cd'' : troca de diretório:
 +    * ''cd dir'' : muda para o diretório ''dir''
 +    * ''cd ..'' : muda para o diretório pai imediatamente superior.
 +    * ''cd -'' : volta para o último diretório visitado.
 +    * ''cd ~user'' : vai para o diretório HOME do usuário indicado.
 +    * ''cd'' : volta ao diretório HOME.
 +  * ''mkdir dir'' : criação do diretório ''dir''.
 +  * ''rmdir dir'' : remoção do diretório ''dir''.
 +
 +===== Informações em arquivos =====
 +
 +Vários comandos permitem obter maiores informações sobre arquivos e sistemas de arquivos. Eis os principais:
 +
 +  * ''stat'' : detalhes sobre um arquivo ou diretório (//i-nodes//).
 +  * ''file'' : identificar o conteúdo de um arquivo, analisando-o.
 +  * ''whereis'' : indica onde estão os binários, fontes e páginas de manual de um comando dado.
 +  * ''touch'' : atualiza a data de um arquivo (o cria, se não existir).
 +  * ''which'' : indica o caminho completo para o comando dado.
 +  * ''du'' : indica o espaço usado em disco pelos arquivos ou diretórios dados.
 +  * ''df'' : informações sobre os sistemas de arquivos disponíveis na máquina e sua ocupação.
 +  * ''tree'' : apresenta na tela uma estrutura de diretórios, com ou sem os arquivos.
 +
 +===== Compressão de arquivos =====
 +
 +Tradicionalmente, a compressão de arquivos em UNIX é feita em dois passos:
 +
 +  - Aglutinação dos arquivos e diretórios em um único grande arquivo, usando o comando ''tar''.
 +  - Compressão do arquivo único, usando comandos como ''compress'', ''gzip'' ou ''bzip2''.
 +
 +O comando ''tar'' é bastante antigo, e significa //Tape ARchiving// (//tar// também é "piche" em inglês, o que sugere o processo de aglutinação). Ele era muito usado para copiar diretórios em fitas magnéticas. Com as opções adequadas, permite guardar diversos arquivos e diretórios em um único arquivo. Sua sintaxe básica é:
 +
 +  * Para criar um arquivo ''.tar'': ''tar cvf arq.tar dir1 dir2 dir3 ...''
 +  * Para abrir um arquivo ''.tar'': ''tar xvf arq.tar''
 +  * Para listar o conteúdo de um arquivo ''.tar'': ''tar tvf arq.tar''
 +
 +As principais opções do comando tar são:
 +
 +  * ''c''  : criar um novo arquivo ''.tar'' com o nome indicado
 +  * ''x''  : extrair dados do arquivo ''.tar'' indicado
 +  * ''t''  : listar o conteúdo do arquivo ".tar"indicado
 +  * ''v''  : //verbose//, mostra detalhes na tela sobre o que está sendo feito
 +  * ''f''  : indica que o próximo parâmetro é o nome do arquivo ''.tar'' a ser usado. Caso não seja indicado, é usado o conteúdo da variável ''$TAPE'', ou o arquivo ''/dev/rst0'' (fita magnética).
 +  * ''z''  : para comprimir/expandir os arquivos tratados usando o comando ''gzip'' (ver abaixo).
 +  * ''Z''  : para comprimir/expandir os arquivos tratados usando o comando ''compress'' (ver abaixo).
 +
 +Após feita a aglutinação, pode-se **compactar** o arquivo usando-se um dos comando abaixo:
 +
 +  * **"compress"** : compactador standard do UNIX, hoje em dia pouco usado, mas presente em todas as plataformas. Gera arquivos com extensão ".Z".
 +  * **"gzip"** :  GNU-Zip, um compactador extremamente popular, é muito eficiente. Gera arquivos com extensão ".gz".
 +  * **"bz2"** : De uso recente e ainda pouco difundido, certamente será muito usado nos próximos anos, por ser ainda mais eficiente que o gzip. Gera arquivos com extensão ".bz2".
 +
 +Um procedimento muito usado é o uso combinado dos comandos **tar** e **gzip**, através das opções "z" e "Z" do comando **tar**. Assim, para obter um arquivo comprimido ''corrente.tar.gz'' com todo o conteúdo do diretório corrente, basta executar o seguinte comando:
 +
 +> ''tar czvf corrente.tar.gz .''  // (atenção ao ".", que indica o diretório corrente) //
 +Os arquivos ".tar.gz" também costumam ser nomeado como ".tgz", e definem o formato da maior parte dos arquivos UNIX encontrados na Internet. Arquivos nesse formato também podem ser abertos pelas versões recentes do compactador //WinZip//, do Windows.
 +
 +===== Exercícios =====
 +
 +  - Como procurar por uma palavra no manual (''man'')?
 +  - Liste todos os  arquivos do seu diretório ''HOME''
 +  - Como você pode saber em qual diretório você está no sistema?
 +  - Qual o comando para saber qual a conta que está sendo usada em um SHELL? 
 +  - Liste o nome do grupo de usuários ao qual sua conta pertence.
 +  - Visite alguns diretórios, alternando os comandos ''pwd'' e ''cd''. Os diretórios são os seguintes:<code>
 +  /home/espinf
 +  o predecessor do diretório /home/espinf
 +  /
 +  /usr
 +  /tmp
 +  /usr/bin
 +  seu diretório HOME
 +</code>
 +  - Liste o conteúdo dos diretórios acima, ordenados por data, de duas formas:
 +    - sem sair do seu diretório HOME
 +    - acessando primeiramente o diretório a ser listado
 +  - O que faz a opção ''-a'' no comando ''ls''? E a opção ''-l''?
 +  - Liste usuários do sistema com o mesmo nome que o seu
 +  - O que são arquivos/diretórios cujo nome inicia com um caractere ''.'' ?
 +  - Crie um link simbólico para o diretório infraComp do seu colega ao lado. Use este link para listar o conteúdo do diretório
 +  - O que fazem os comandos ''du'' e ''df''?
 +  - O comando ''ls'' permite obter listagens de diretórios sob várias formas. Consulte a página de manual do comando e execute-o de forma a obter listagens da seguinte forma:
 +    * listagem longa do diretório //home//, com detalhes. O que significa cada coluna da listagem ?
 +    * listagem curta do diretório //home//, incluindo os arquivos escondidos.
 +    * listagem longa de ''/var/spool/mail'', ordenada por tamanho dos arquivos
 +    * listagem longa de ''/etc'', ordenada alfabeticamente
 +    * listagem longa de ''/home'', ordenada por datas crescentes
 +    * listagem curta de ''/usr'', recursiva e ordenada por tamanho
 +  - O comando ''mkdir'' permite criar diretórios com subdiretórios. Leia sua página de manual e execute-o para criar a seguinte estrutura de diretórios (dentro de seu diretório **home**), usando apenas uma operação. Use o comando ''tree'' para conferir a estrutura criada:<code>
 +      a
 +      `-- b
 +          |-- c
 +          |   |-- d
 +          |     `-- h
 +          |   |
 +          |   `-- e
 +          |
 +          |-- f
 +          |   `-- d
 +          |
 +          `-- j
 +</code>
 +  - Crie um arquivo ''.tar'', com o conteúdo do seu diretório HOME. A seguir, compacte-o usando os comando ''compress'', ''gzip'' e ''bzip2'', e compare os resultados (tamanho).
 +