Académique Documents
Professionnel Documents
Culture Documents
Linux Essentials
www.4linux.com.br
Contedo
5 Comandos Avanados I 4
5.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5.1.1 Trabalhando com entrada e sada de dados . . . . . . . . . 4
5.1.2 Alterando os redirecionamentos . . . . . . . . . . . . . . . . 5
5.1.3 O direcionador > . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1.4 O direcionador . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.1.5 O direcionador < . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.1.6 O direcionador 2> . . . . . . . . . . . . . . . . . . . . . . . . 9
5.1.7 O direcionador 2 . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.8 O direcionador 2>&1 . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.9 O direcionador &> . . . . . . . . . . . . . . . . . . . . . . . . 12
5.1.10 O direcionador & . . . . . . . . . . . . . . . . . . . . . . . . 13
5.1.11 O direcionador | . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1.12 O direcionador tee . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1.13 O direcionador . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.1.14 dd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1.15 Contagem: wc . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.16 split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1.17 Determinando o tipo de arquivo: file . . . . . . . . . . . . . . 19
5.1.18 who . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.1.19 w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.1.20 ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.1.21 Inodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1.22 stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1.23 Link simblico . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.24 Hard links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2
4Linux www.4linux.com.br Contedo
5.1.25 nl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.1.26 Classificao: sort . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1.27 Eliminando linhas repetidas: uniq . . . . . . . . . . . . . . . . 28
Comandos Avanados I
No linux, voc pode ler dados de um arquivo ou terminal ou escrever dados para
um arquivo ou terminal. O linux tem trs tipos de fluxo de dados: entrada(INPUT),
sada(OUTPUT) e a ltima para imprimir diagnsticos ou mensagens de erro.
Por padro, a entrada de dados e comandos no Shell feita pelo teclado, a sada
destes retornada na tela. Eventuais erros so exibidos na tela tambm. Porm
voc pode alterar a sada padro que a tela e envi-la para um arquivo ou outra
localizao.
4
4Linux www.4linux.com.br 5.1 Introduo terica
> (maior): Direciona a sada do comando para um arquivo, substituindo o seu con-
tedo, caso o arquivo j exista;
2> (dois-maior): Direciona as sadas de erro geradas pelo programa para um arquivo,
substituindo seu contedo, caso o arquivo j exista;
&> (e-maior): Direciona todas as sadas (normal e de erro) para um arquivo, subs-
tituindo seu contedo, caso ele j exista; & (e-maior-maior): Direciona todas as
sadas (normal e de erro) para um arquivo, adicionando o texto ao final do arquivo,
caso ele j exista;
1 # ls /
2 boot lost + found mnt repo srv var cdrom etc
lib media opt root sys home sbin
tmp bin dev lib64 proc selinux usr
1 # ls / > raiz
No aparece nada na tela porque o comando foi executado sem erros e sua sada
redirecionada para o arquivo raiz, confira:
1 # cat raiz
1 # cat raiz
1 # set -o noclobber
e para voltar:
1 # set +o noclobber
5.1.4 O direcionador
1 # ls / >> hoje
O direcionador < utilizado para passar um stdin para um comando, ele geralmente
utilizado para passar o contedo de arquivos como parmetros de comandos.
Alguns comandos precisam que seja passado o stdin para eles serem executados,
vamos ver o exemplo do comando tr, que traduz ou deleta caracteres:
Voc tambm pode utilizar o comando tr para deletar caracteres, vamos deletar as
vogais do arquivo:
1 # cat ls_naoexiste
Agora sim, nenhuma mensagem de erro foi exibida na tela, porque ela foi enviada
para o arquivo ls_naoexiste.err, vamos verificar o contedo dele:
5.1.7 O direcionador 2
Podemos usar os direcionadores > e 2> em conjunto, para gerar um arquivo com a
sada padro e outro com a sada de erros, dessa forma:
1 # cat / etc /*
A sada mostra tanto o contedo dos arquivos quanto os erros por tentar ler
um diretrio com o comando cat.
1 # cat msg_correto
2 # cat msg_errado
1 # cat msg_total
Podemos usar os direcionadores > e 2> em conjunto, para gerar um arquivo com a
sada padro e outro com a sada de erros, dessa forma:
1 # cat / etc /*
A sada mostra tanto o contedo dos arquivos quanto os erros por tentar ler
um diretrio com o comando cat.
1 # cat msg_ok
2 # cat msg_error
1 # cat ls_out
Assim como o redirecionador &> ele redireciona tanto a sada de stdout quanto a
sada de stderr para um nico arquivo, a diferena que, caso o arquivo no exista
ele ser criado e caso j exista ser adicionado a sada com comando ao final do
arquivo. Visualize o arquivo ls_out:
1 # cat ls_out
1 # cat ls_out
5.1.11 O direcionador |
Conhecido como pipe, ele envia o stdout de um comando para o stdin do prximo
comando para dar continuidade ao processamento, os dados enviados sero proces-
sados pelo prximo comando trazendo assim um resultado esperado.
Vamos usar novamente o comando tr para exemplificar, mas desta vez utilizando o
pipe:
A sada foi o stdout do comando. Vamos agora redirecionar este stdout para o co-
mando tr:
Quando usado junto com o pipe |, o tee permite que a sada padro do comando
seja exibida na tela e enviada para um arquivo ao mesmo tempo. Veja a sada de um
comando e envie-a para um arquivo qualquer, caso o arquivo no exista, ser criado
e caso j exista ser sobrescrito, caso queira adicionar um arquivo j existente use
tee -a :
A sada aparece na tela e tambm foi direcionada para o arquivo arquivo.tee, visualize-
o:
5.1.13 O direcionador
Voc pode editar um novo arquivo com o comando cat ou at mesmo adicionar con-
tedo nele, veja:
Onde: EOF - indica que a edio do arquivo terminar quando em uma linha con-
tiver apenas a sequncia EOF.
> arquivo_novo - direciona o que for digitado no arquivo para arquivo_novo. Ex:
1 # cat arquivo_novo
5.1.14 dd
Sintaxe:
Onde:
zero", "0", 0x30) forem lidos dele. O fluxo de caracteres nulos gerado por este dispo-
sitivo pode, por exemplo, ser utilizado para sobrescrever informaes ou para gerar
um arquivo limpo de certo tamanho.
5.1.15 Contagem: wc
Grande parte dos arquivos de configurao e de dados usa uma linha por registro. A
contagem destas linhas pode nos fornecer informaes muito interessantes.
1 # wc / etc / passwd
Indica que o arquivo contm X linhas, Y blocos (palavras) e Z caracteres. Caso seja
necessrio apenas o nmero de linhas, o comando wc pode ser usado com o
parmetro -l, como abaixo:
1 # wc -l / etc / passwd
1 # wc -w / etc / passwd
1 # wc -c / etc / passwd
5.1.16 split
GB 1000*1000*1000, G 1024*1024*1024
Verifique que foram gerados vrios arquivos com o prefixo x, veja tambm o tama-
nho deles:
1 # ls -lh xx *
Podemos dividir o arquivo por nmero de linhas e mudar seu prefixo tambm:
Verifique que foram gerados vrios arquivos com o prefixo pref, veja tambm o
nmero de linhas de cada um:
1 # wc -l pref *
Visualize o arquivo:
1 # file /
2 # file / bin / cat
3 # file / dev / sda1
4 # file / etc / passwd
5 # file / usr / sbin / adduser
5.1.18 who
1 # who
2 fabiano tty7 2011 -08 -11 23:01 (:0)
3 fabiano pts /0 2011 -08 -12 21:32 (:0.0)
Onde:
fabiano - usurio logado tty7 - terminal em que o usurio est logado 2011-08-11
23:01 - hora e data de login (:0) - Display
5.1.19 w
Mostra tempo que o sistema est ligado, mdia de carga do sistema, usurios loga-
dos.
1 # w
2 21:43:12 up 22:42 , 2 users , load average : 0 ,55 , 0 ,45 , 0 ,37
3 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
4 fabiano tty7 :0 Thu23 22:41 m 6:27 0.53 s
gnome - session
5 fabiano pts /0 :0.0 21:32 0.00 s 0.22 s 0.02 s w
5.1.20 ln
O comando ln permite criar links. Existem dois tipos de links suportados pelo Linux,
os hard links e os links simblicos. Os links simblicos tm uma funo parecida
com os atalhos do Windows: eles apontam para um arquivo, mas se o arquivo
movido para outro diretrio, o link fica quebrado. Os hard links por sua vez so
5.1.21 Inodes
O inode exclusivo somente para o dispositivo (partio) dentro do qual ele est
contido. Portanto, para identificar unicamente um arquivo, o kernel deve ter o nmero
de dispositivo e o inode do arquivo.
Um arquivo possui um nico inode, no importa por quantos nomes este arquivo
identificado no sistema. Logo, o conjunto de inodes que indica o nmero de
arquivos/diretrios que o sistema possui.
5.1.22 stat
Onde:
possvel criar links simblicos de arquivos e/ou diretrios mesmo que estejam em
parties diferentes, j que o nmero de inodes do arquivo original e do link simblico
so diferentes, mas se o arquivo original for apagado o link quebrado, tornando-
se intil. Tambm no possvel determinar a permisso olhando o link simblico,
somente olhando o original.
1 # vim arquivo
2 Este arquivo para teste !
1 # ls -i arquivo
2 11927685 arquivo
Onde:
1 # ls -1 il arq *
2 11927715 lrwxrwxrwx 1 root root 7 2011 -08 -11 18:04 arq . simb lico ->
arquivo
3 11927685 -rw -r - -r - - 1 root root 0 2011 -08 -11 17:52 arquivo
Onde:
Crie um diretrio:
1 # mkdir diretorio
1 # ls -di diretorio
2 11935762 diretorio
Onde:
1 # ls -1 dil dir *
2 11935762 drwxr - xr - x 2 root root 4096 2011 -08 -11 18:12 diret rio
3 11927717 lrwxrwxrwx 1 root root 10 2011 -08 -11 18:14 dir . simb lico
-> diret rio /
Onde:
No possvel criar Hark links de arquivos e/ou diretrios que estejam em parties
diferentes, pois o range de nmeros de inodes mudam de uma partio para outra,
ou seja, os Hark links no tero o mesmo nmero de inode, e tambm no possvel
criar Hard links de diretrios da mesma partio.
1 # ls -1 -i arq *
Onde:
5.1.25 nl
Existe um outro comando que tambm visualiza arquivo e numera as linhas, este
Comando o nl:
1 # nl / etc / passwd
2 # grep sys / etc / passwd | nl
3 # ls -l / etc | nl
4 # ls -l / etc | tail | nl
1 # vim bagun a
2 Gabriela
3 Barbara
4 Bruno
5 Victor
6 Alexandre
7 Bruno
8 Alfredo
9 Bruno
1 # cat bagun a
1 # sort bagun a
-n - classificao numrica;
1 # man sort
Remove linhas desnecessrias ou duplicadas, ou seja, ele faz uma espcie de lista-
gem de cada linha nica do arquivo;