Académique Documents
Professionnel Documents
Culture Documents
Linux Essentials
www.4linux.com.br
Contedo
5 Comandos Avanados I
5.1
Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1
. . . . . . . . .
5.1.2
Alterando os redirecionamentos . . . . . . . . . . . . . . . .
5.1.3
O direcionador > . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.4
O direcionador . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.5
O direcionador < . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.6
O direcionador 2> . . . . . . . . . . . . . . . . . . . . . . . .
5.1.7
O direcionador 2 . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.8
O direcionador 2>&1 . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.9
O direcionador &> . . . . . . . . . . . . . . . . . . . . . . . . 12
O direcionador | . . . . . . . . . . . . . . . . . . . . . . . . . 14
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
Linux Essentials
Pgina 3
Captulo 5
Comandos Avanados I
5.1 Introduo terica
No mundo GNU/Linux, a maioria das operaes so realizadas por meio de comandos escritos. Em geral, eles permitem um maior controle e flexibilidade de operaes,
alm de poderem ser includos em scripts. Neste captulo iremos aprender alguns
comandos avanados.
4Linux www.4linux.com.br
Linux Essentials
Pgina 5
4Linux www.4linux.com.br
# ls /
boot
lost + found
lib
tmp
bin
mnt
media
dev
repo
opt
lib64
proc
srv
root
selinux
var
sys
cdrom
home
etc
sbin
usr
# ls / > raiz
No aparece nada na tela porque o comando foi executado sem erros e sua sada
redirecionada para o arquivo raiz, confira:
# cat raiz
Pgina 6
Linux Essentials
4Linux www.4linux.com.br
# cat raiz
Ao realizar o comando acima, a primeira interpretao do bash executar o comando: > raiz, ou seja, se no existe o arquivo, ele ser criado, e se j existe
sobrescrito. No caso ele sobrescreve o arquivo raiz, deixando-o em branco, e quando
o comando cat raiz executado, no h sada, pois o arquivo est zerado, no redirecionando nada.
Para evitar este problema execute o comando:
# set -o noclobber
# set +o noclobber
Linux Essentials
Pgina 7
4Linux www.4linux.com.br
5.1.4 O direcionador
O direcionador direciona a sada padro de um comando para um arquivo. Caso o
arquivo exista, a sada adicionada ao final do arquivo.
# ls / >> hoje
Voc tambm pode utilizar o comando tr para deletar caracteres, vamos deletar as
vogais do arquivo:
Pgina 8
Linux Essentials
4Linux www.4linux.com.br
2
3
# 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:
Linux Essentials
Pgina 9
4Linux www.4linux.com.br
5.1.7 O direcionador 2
Quando utilizamos o direcionador 2 ele redireciona apenas as mensagens de erro,
caso o arquivo no exista ser criado e caso j exista ser adicionada a sada ao
final do arquivo.
# cat
ls_naoexiste . err
Pgina 10
Linux Essentials
4Linux www.4linux.com.br
# cat / etc /*
A sada mostra tanto o contedo dos arquivos quanto os erros por tentar ler
um diretrio com o comando cat.
Vamos enviar a sada deste comando para arquivos diferentes:
# cat msg_correto
# cat msg_errado
# cat
msg_total
Linux Essentials
Pgina 11
4Linux www.4linux.com.br
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:
# cat / etc /*
A sada mostra tanto o contedo dos arquivos quanto os erros por tentar ler
um diretrio com o comando cat.
Vamos enviar a sada deste comando para arquivos diferentes:
# cat msg_ok
# cat msg_error
Pgina 12
Linux Essentials
4Linux www.4linux.com.br
# 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:
# cat ls_out
# cat ls_out
Linux Essentials
Pgina 13
4Linux www.4linux.com.br
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 processados pelo prximo comando trazendo assim um resultado esperado.
Vamos usar novamente o comando tr para exemplificar, mas desta vez utilizando o
pipe:
Primeiro visualize o contedo do arquivo /etc/passwd:
A sada foi o stdout do comando. Vamos agora redirecionar este stdout para o comando 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 :
Pgina 14
Linux Essentials
4Linux www.4linux.com.br
A sada aparece na tela e tambm foi direcionada para o arquivo arquivo.tee, visualizeo:
5.1.13 O direcionador
Temos ainda o direcionador , utilizado para marcar o fim de exibio de um bloco.
Um dos usos mais frequentes desse direcionador em conjunto com o comando
cat.
Voc pode editar um novo arquivo com o comando cat ou at mesmo adicionar contedo nele, veja:
Onde: EOF - indica que a edio do arquivo terminar quando em uma linha contiver apenas a sequncia EOF.
> arquivo_novo - direciona o que for digitado no arquivo para arquivo_novo. Ex:
2
3
Este
meu arquivo !
EOF
Linux Essentials
Pgina 15
4Linux www.4linux.com.br
# cat arquivo_novo
5.1.14 dd
O comando dd dos sistemas baseados em Linux e Unix, um programa para copiar
e converter arquivos de um local para outro, servindo at para clonar dispositivos ou
reas de discos fixos ou removveis como CD(s), DVD(s), disquetes, HD(s), dispositivos USB entre outros.
Sintaxe:
Onde:
If - Input File = arquivo de origem
of - Output File = arquivo de destino
bs - Block Size = tamanho do bloco
count - nmero de blocos
Em sistemas operacionais do tipo Unix, /dev/zero um arquivo especial que fornece
quantos caracteres nulos (o NULL da tabela ASCII, 0x00; e no o caractere "dgito
Pgina 16
Linux Essentials
4Linux www.4linux.com.br
zero", "0", 0x30) forem lidos dele. O fluxo de caracteres nulos gerado por este dispositivo 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.
Por exemplo, a sada abaixo:
# 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:
# wc -l / etc / passwd
# wc -w / etc / passwd
# wc -c / etc / passwd
Linux Essentials
Pgina 17
4Linux www.4linux.com.br
5.1.16 split
O comando split usado para dividir determinado arquivo em pedaos menores,
muito til quando se tem um arquivo maior do que um espao de armazenamento
como por exemplo um cd, voc pode dividir o arquivo para que ele caiba em dois ou
mais cds, por exemplo.
Vamos dividir o arquivo gerado pelo dd em partes de 300Kb:
# 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:
# wc -l pref *
Pgina 18
Linux Essentials
4Linux www.4linux.com.br
# cat
Visualize o arquivo:
# file /
5.1.18 who
Determina quais usurios esto logados.
Linux Essentials
Pgina 19
4Linux www.4linux.com.br
# who
fabiano
tty7
fabiano
pts /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 logados.
# w
21:43:12 up 22:42 ,
USER
TTY
FROM
fabiano
tty7
:0
Thu23
22:41 m
:0.0
21:32
0.00 s
2 users ,
IDLE
JCPU
PCPU WHAT
6:27
0.53 s
0.22 s
0.02 s w
gnome - session
5
fabiano
pts /0
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
Pgina 20
Linux Essentials
4Linux www.4linux.com.br
5.1.21 Inodes
5.1.22 stat
Linux Essentials
Pgina 21
4Linux www.4linux.com.br
Size : 3020
Access : (0644/ - rw -r - -r - -)
Blocks : 8
IO Block : 4096
Inode : 4995196
arquivo comum
Links : 1
Onde:
Pgina 22
Linux Essentials
4Linux www.4linux.com.br
# vim arquivo
# ls -i arquivo
11927685 arquivo
Onde:
-i - mostra nmero de inode do arquivo/diretrio
Criando o link simblico:
Linux Essentials
Pgina 23
4Linux www.4linux.com.br
# ls -1 il arq *
11927715 lrwxrwxrwx 1 root root 7 2011 -08 -11 18:04 arq . simb lico ->
arquivo
Onde:
-1 - mostra um arquivo por linha -i - mostra nmero do inode do arquivo/diretrio -l modo estendido
Verifique que no possvel determinar qual a permisso olhando o arq.simblico.
Crie um diretrio:
# mkdir diretorio
# ls -di diretorio
11935762 diretorio
Onde:
-d - mostra informaes do diretrio -i - mostra nmero de inode do arquivo/diretrio
Criando o link simblico:
Pgina 24
Linux Essentials
4Linux www.4linux.com.br
# ls
-1 dil dir *
11935762 drwxr - xr - x 2 root root 4096 2011 -08 -11 18:12 diret rio
Onde:
-1 - mostra um arquivo/diretorio por linha -d - mostra informaes do diretorio -i mostra nmero do inode do arquivo/diretrio -l - modo estendido
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.
Criando o Hard link:
# ln
Linux Essentials
Pgina 25
# ln
4Linux www.4linux.com.br
# ls -1 -i arq *
Onde:
-1 - mostra um arquivo por linha -i - mostra nmero do inode do arquivo/diretrio
5.1.25 nl
Existe um outro comando que tambm visualiza arquivo e numera as linhas, este
Comando o nl:
# nl / etc / passwd
# ls -l / etc | nl
# ls -l / etc | tail | nl
Pgina 26
Linux Essentials
4Linux www.4linux.com.br
# vim bagun a
Gabriela
Barbara
Bruno
Victor
Alexandre
Bruno
Alfredo
Bruno
# cat bagun a
# sort bagun a
Linux Essentials
Pgina 27
4Linux www.4linux.com.br
-n - classificao numrica;
-r - classifica na ordem invertida.
Para saber mais parmetros:
# man sort
Pgina 28
Linux Essentials