| Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior |
| unix:comandos_basicos [2019/02/19 20:53] – maziero | unix:comandos_basicos [2019/02/19 21:00] (atual) – [Exercícios] maziero |
|---|
| | ====== 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). |
| | |
| |