Redes de Computadores Comandos Linux e Exercícios
Comandos
básicos utilizados para trabalhar com diretórios e 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).
ØØ “pwd” : indica qual o diretório corrente do shell.
ØØ “cd” : troca de diretório:
o
“cd “dir : muda para o diretório dir.
o
“cd ..” : muda para o diretório pai imediatamente superior.
o
“cd -“ : volta para o último diretório visitado.
o
“cd ~user” : vai para o diretório HOME do usuário indicado.
o
“cd” : volta ao diretório HOME.
ØØ “mkdir” dir : criação do
diretório dir.
ØØ “rmdir” dir : remoção do
diretório dir.
Comandos avançados para arquivos
ØØ “grep” : procurar strings dentro de arquivos de texto. Exemplos:
o
Procurar todas
as linhas contendo 'tcsh' em /etc/passwd R: grep
tcsh /etc/passwd
ØØ Procurar todas as linhas que não contenham tcsh em /etc/passwd R: grep
-v tcsh /etc/passwd
ØØ “find” : encontra arquivos que satisfaçam certas características. Vejamos
alguns exemplos de procura:
o
Procurar todas
as entradas “*txt” dentro do
diretório /usr: R: find /usr -name '*txt' –print
ØØ Procurar todas as entradas *ab* ou *cd*
(maíusculas ou minúsculas) presentes em /opt R: find
/opt -iname '*ab*' -or -iname '*cd*'
ØØ Procurar todas as entradas acessadas a
mais de 4 dias em /etc: R: find
/etc -atime +4
ØØ Procurar todas as entradas modificadas a
menos de 2 dias em /etc que tenham mais de 5 Kbytes de tamanho:
R: find
/etc -mtime -2 -and -size +5k
ØØ Procurar todos os diretórios dentro de
/opt cujo grupo tenha acesso em escrita: R: find
/opt -type d -perm +g+w
ØØ “touch” : atualizar a data de um arquivo
ØØ “diff” : comparar dois arquivos, mostrando as diferenças entre eles.
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).
o stat /usr/bin/ls
ØØ “file” : identificar o conteúdo de um arquivo, analisando-o.
o file /etc/* | more
ØØ “whereis” : indica onde estão os binários,
fontes e páginas de manual de um comando dado.
o
whereis ls
ØØ “which” : indica o caminho completo para o comando dado.
o which ls
ØØ “du” : indica o espaço usado em disco pelos arquivos ou diretórios dados.
o
du $HOME
ØØ “df” : informações sobre os sistemas de arquivos disponíveis na máquina e sua ocupação.
o df
ØØ “tree” : apresenta
na tela uma estrutura de diretórios, com ou sem os arquivos.
o tree
Compressão de arquivos com TAR,
COMPRESS, GZIP ou BZIP
Para comprimir arquivos são
precisos dois passos:
1.
Aglutinação dos arquivos e
diretórios em um único grande arquivo, usando o comando tar.
2.
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 gzip (ver abaixo).
ØØ “Z” : para comprimir/expandir os arquivos tratados
usando o compress
(ver abaixo).
Para compactar use os comandos 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
1. Use o comando ls para obter
listagens da seguinte forma:
o
listagem longa do diretório home, com detalhes. O que significa cada
coluna da listagem ?
o
listagem curta do diretório home, incluindo os arquivos escondidos.
o
listagem longa de ”/var/spool/mail”, ordenada por tamanho
dos arquivos
o
listagem longa de ”/etc”, ordenada alfabeticamente
o
listagem longa de ”/home”, ordenada por datas crescentes
o
listagem curta de ”/usr”, recursiva e ordenada por tamanho
2.
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:
A
| B
| C
| D
3. Use o comando find para encontrar todos os links simbólicos presentes em /usr.
4.
O arquivo
”/var/log/messages “contém todos os logins recentes efetuados no sistema.
Analise a estrutura do arquivo (usando o comando more); a seguir, use o comando
grep para localizar os seus acessos.
5.
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).