Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Uma das coisas essenciais ao usar um sistema operacional saber como lidar os arquivos e diretrios dentro dele. Em sistemas operacionais como o Linux, mexer com arquivos essencialmente tudo o que voc vai fazer ao configurar o sistema e seus servios.
No exemplo acima, estvamos no diretrio /usr/games e com um simples cd para o diretrio ~, fomos para o diretrio HOME (/home/eitch). Neste caso utilizamos o ~ que uma espcie de atalho para o diretrio HOME do usurio. Alguns destes atalhos:
Diretrio atual Diretrio anterior (um nvel acima) Diretrio HOME do usurio Raiz do sistema ltimo diretrio (Voltar)
Se voc deseja ir para um diretrio que est na raiz diretamente, usa-se a / antes, exemplo:
$ pwd /usr/local/bin $ cd /etc/rc.d $ pwd /etc/rc.d $ cd $ pwd /usr/local/bin
Ao utilizar uma barra antes do diretrio, especificamos o caminho absoluto do diretrio, ou seja, todo o seu caminho desde a raiz. Se no colocamos a barra para especificar a raz, quer dizer que estamos
especificando um caminho relativo, ou seja, de acordo com o diretrio atual. Em outras palavras, se eu estou no diretrio /home/eitch, os dois comandos a seguir faro a mesma coisa, s que um usando o caminho relativo e o outro o caminho absoluto:
$ cd .. $ cd /home
ls Listar arquivos
Sintaxe: $ ls [opes] [arquivo/diretrio]
Lista os arquivos e diretrios. Se executarmos apenas o comando ls sozinho, ele mostrar todos os arquivos existentes no diretrio atual. H tambm alguns parmetros extras:
-l -a -h -R
Lista os arquivos em formato detalhado. Lista os arquivos ocultos (que comeam com um .) Exibe o tamanho num formato legvel (combine com -l) Lista tambm os subdiretrios encontrados
-rw-r--r-- 1 hugo hugo 122631 Jul 12 08:20 Database.pdf -rw-r--r-- 1 hugo hugo 2172065 Jul 12 08:20 MySQL.pdf -rw-r--r-- 1 hugo hugo 2023315 Jul 12 08:20 PHP.pdf
No exemplo acima, os arquivos e diretrios so listados com outras informaes antes de seus nomes. Estas informaes so separadas por um ou mais espaos (para uma melhor formatao) e apresentam os seguintes dados: tipo de arquivo e permisses, nmero de hard links, usurio dono, grupo dono, tamanho, data de modificao e por ltimo o nome do arquivo. Podemos ver acima que a segunda linha (diretorio) inicia com a letra d, o que significa que ele um diretrio, ao contrrio dos outros arquivos que no contm nenhuma letra (-) e por isso so arquivos comuns. possvel identificar o tipo de arquivo desta maneira e as letras podem ser: b para arquivo especial de bloco, c para arquivo especial de caracter, d para diretrio, l para link simblico, p para um FIFO, s para socket. Podemos tambm usar no ls o que chamamos de wildcards (caracteres coringa), ou seja, caracteres que substituem outros. Exemplo, listar todos os arquivos que tm a extenso .txt:
$ ls *.txt debian-install.txt manualito.txt named.txt ipfw.txt mouse.txt plip.txt seguranca.txt
O wildcard neste caso o *, que representa tudo.txt. Existem outros wildcards, como por exemplo o ponto de interrogao ?, que substitui apenas 1 caractere. Exemplo:
$ ls manual?.txt manual1.txt manual2.txt manual3.txt manualx.txt manualP.txt
Apaga um diretrio que esteja vazio. Exemplo, apagando o diretrio /tmp/lixo apenas se ele estiver vazio:
$ rmdir /tmp/lixo
-i Modo interativo. Pergunta se voc quer sobrescrever ou no (confirmaes) -v Mostra o que est sendo copiado. -R Copia recursivamente (diretrios e subdiretrios)
Exemplo, copiando o arquivo brasil.txt para livro.txt, com a opo de modo interativo:
$ cp -i brasil.txt livro.txt cp: sobrescrever `livro.txt'?
Como o arquivo livro.txt j existia, o comando pergunta se quer sobrescrever, responda y (sim) ou n (no). Copiar o diretrio /home/ftp e todo seu contedo (incluindo seus subdiretrios) para /home/ftp2:
$ cp -R /home/ftp /home/ftp2
Move um arquivo para outro lugar. Ele tambm usado para renomear um arquivo. Exemplo, renomear o arquivo industria.txt para fabrica.txt:
$ mv industria.txt fabrica.txt
Para apagar um diretrio com todo seu contedo, usa-se a opo -r:
$ rm -r /tmp/lixo
Cuidado! O comando rm -rf muito perigoso, use-o com cuidado. Ele remove um diretrio e todo seu contedo sem perguntar. Por exemplo, fazer isso na raiz no seria uma boa idia.
Procura por arquivos no diretrio especificado. Em seu uso mais simples, ele procura pelos nomes dos arquivos, mas pode tambm procurar por tipos, permisses, ltima modificao, entre outros. Exemplo, procurar o arquivo nota.txt dentro do diretrio /home/eitch:
$ find /home/eitch -name nota.txt -print
Procurar por todos os arquivos que foram modificados nos ltimos 2 dias:
$ find / -mtime 2 -print
Procurar por arquivos que podem ser escritos por todo mundo:
$ find / -perm -222
Os wildcards tambm podem ser usados, por exemplo, procurar por todos os arquivos que comeam com o nome de documento e terminam com .odp:
$ find /home/eitch -name documento*.odp
O find tambm conta com uma opo muito til, a opo -exec. Atravs desta opo voc pode executar comandos para cada um dos arquivos encontrados. Combinando com as outras opes, se torna um poderoso utilitrio! Por exemplo, para definir permisses 755 para todos os diretrios:
$ find /home/eitch -type d -exec chmod 755 {} \;
Neste exemplo, para cada diretrio encontrado (-type d) dentro do /home/eitch, foi executado o comando chmod 755 <arquivo encontrado>. O {} no comando substitudo por cada arquivo ou diretrio encontrado. O \; apenas o terminador para o comando do -exec. O mesmo exemplo, agora para definir permisses 644 para arquivos:
$ find /home/eitch -type f -exec chmod 644 {} \;
Ou ento, eu quero remover todos os arquivos que terminam com a extenso .exe:
$ find /home/eitch -type f -name *.exe -exec rm -f {} \;
Usado para gerar links simblicos, ou seja, links que se comportam como um arquivo ou diretrio, mas so apenas redirecionadores que mandam seu comando para outro arquivo ou diretrio. Exemplo: Criar um link em /tmp/apostila-linux, apontando para o diretrio /apostila:
$ ln -s /apostila /tmp/apostila-linux
Tambm utilizado para criar links fsicos (hard-links). Um link fsico funciona no como um atalho, mas como um arquivo apontando para um mesmo lugar no disco e funciona apenas em arquivos. Por depender de uma posio fsica no disco, s pode ser utilizado em uma mesma partio. Exemplo:
$ ln arquivo linkdoarquivo
Mostra o contedo de um arquivo, ou faz uma cpia deste arquivo, ou uma juno. Exemplo: Mostrar o contedo de /home/eitch/contato:
$ cat /home/eitch/contato
http://www.devin.com.br
O cat tambm pode servir como redirecionador para outro arquivo. Os caracteres especiais de redirecionadores so utilizados para este fim. O > redireciona a sada de um comando para um arquivo. Como o comando cat mostra exatamente o contedo de um arquivo, isso seria equivalente a fazer uma cpia do arquivo:
$ cat contato1 > contato2
Um outro exemplo divertido tocar sons com o cat. Redirecionando o contedo de um arquivo para o dispositivo de som reproduz o som pelos alto-falantes e vice-versa. Para testar este caso, primeiro gravamos com um microfone o som:
O comando acima direcionou o dispositivo de som no caso, a captura por microfone para o arquivo gravacao.au. Agora escute o som gravado com o comando:
$ cat gravacao.au > /dev/audio
Talvez pelo arquivo poder ser muito grande, as vezes necessrio apenas visualizar parte dele. Em arquivos de log por exemplo, visualizar o final para ver os ltimos acontecimentos uma prtica comum. O comando head, como o nome diz (cabealho), mostra o comeo de um arquivo. O comando tail (calda) mostra o final de um arquivo. Por padro, ambos comandos mostram as 10 linhas correspondentes. Por exemplo, exibindo as 10 ltimas linhas do arquivo /var/log/messages:
# tail /var/log/messages
Quando utilizado o parmetro -n, podemos especificar a quantidade de linhas, ao invs de 10. O comando a seguir mostrar as 50 ltimas linhas do arquivo /var/log/messages:
# tail -n 50 /var/log/messages
Quanto utilizado com o parmetro -f, o comando tail mostra as linhas mas no para, continua mostrando as linhas na medida que o arquivo atualizado. til para visualizar logs em constante atualizao. Exemplo:
# tail -f /var/log/httpd/access_log
Parecidos com o cat, mas ao invs de jogarem todo o contedo na tela de uma vez s, criam uma espcie de paginao. No comando more, a tecla ESPAO vai passando as pginas, at quando o fim do arquivo chega e o o comando finaliza. No less, a paginao funciona como em uma pgina de manual (na verdade, a visualizao das pginas de manual feita com o less): possvel utilizar as setas para navegar no documento para cima e para baixo, utilizar as teclas PgUp e PgDown para paginar, o comando /pesquisa para pesquisar por uma palavra no documento e a tecla q para sair.
Identifica o tipo de arquivo ou diretrio indicado pelo usurio conforme os padres do sistema operacional. H varios tipos de retorno, exemplos: ASCII text, C Program source, directory, ELF-Executable, data, Bourn-again shell-script, JPEG Image File, entre outros. Exemplo:
$ file linux.txt ASCII Text
Quando um arquivo criado, o sistema de arquivos reserva para ele algumas informaes que chamamos de timestamps: hora do ltimo acesso e hora da ltima modificao. O comando touch muda estes valores. Sem argumentos, o touch muda os dois atributos para a hora atual. Quando no existe o arquivo, o comando cria um novo arquivo vazio. Este parece ser o mtodo preferido de criao de arquivos vazios.