Escolar Documentos
Profissional Documentos
Cultura Documentos
Editar Voc est aqui: TWiki > Web GrupoLinux > LinuxEssencialFinal > LicaoCombinacaodeComandos
Anexar
Impresso
Web GrupoLinux Criar Novo Tpico ndice Busca Alteraes Notificaes Estatsticas Preferncias Webs BrOffice EaD GrupoJava GrupoLinux GrupoLogica GrupoWeb Main Ruby SGBD SO Sandbox TWiki Wikeditora WikiEdu
Exemplo:
/$ls; cd /home; cd /tmp; ls teste[123] tmp teste2 /tmp$ /$ls; cd /root; ls; cd /tmp; ls teste[123] tmp bash: cd: /root: Permisso Negada tmp teste2 /tmp$
Nesse exemplo, primeiramente foi executado o comando "ls". Logo aps o usurio tentou entrar na pasta do super-usurio, sendo, por falta de permisses, barrado. O segundo comando "ls" deveria listar o contedo da pasta do super-usurio, mas como o comando anterior (cd) falhou, o "ls" listou o contedo da pasta, anterior ao comando (a do prprio usurio). Logo aps, o comando cd /tmp mudou o diretrio corrente para /tmp, listando o contedo que tivesse nome conforme o padro especificado. O retorno do shell permite observar que o comando foi finalizado, e que ficar dentro da pasta /tmp.
sintectus.com//LicaoCombinacaode
1/7
03/03/2011
STDOUT 1 STDERR 2
8.3 Redirecionamento
O uso do redirecionamento muito simples. Mesmo monitor sendo a forma padro de sada de informaes, e o teclado a forma padro de entrada, podemos alterar a sada e entrada padro para utilizarmos por exemplo um arquivo ou outro dispositivo. Executar determinadas operaes e direcionar o resultado para um arquivo pode ser bem mais conveniente que ter de copi-las manualmente da tela para um arquivo. O contedo desses arquivos (o resultado gerado por determinado comando), pode ento ser manipulado normalmente, sendo possvel, por exemplo, a pesquisa de algum valor. Algo que bastante usado o redirecionamento do comando dpkg -l, que ir listar todos os pacotes instalados no sistema (isto um exemplo, a funcionalidade de dpkg -l ser explanada em tpicos a seguir). Esse comando, quando digitado no interpretador de comandos, gerar na tela uma listagem dos pacotes instalados, geralmente com velocidade bem superior nossa capacidade de leitura. O redirecionamento permitir que em vez de escrever na sada padro (monitor) o mesmo possa ser redirecionado para outras sadas (arquivo ou impressora). O inverso tambm valido, sendo possvel no momento da leitura do contedo do arquivo
sintectus.com//LicaoCombinacaode
2/7
03/03/2011
LicaoCombinacaodeComandos < Grup redirecionar sua sada para outro arquivo (um arquivo servir de entrada de dados para outro arquivo).
Sintaxe:
comando redirecionamento arquivo [redirecionamento] [arquivoX]
Comando: a opo a ser realizada pelo sistema, podendo o mesmo gerar informaes de entrada ou sada do sistema. Redirecionamento: pode ser representado pelos sinais invertidos de maior (>) ou menor (<), sendo que o lado maior ir representar o fornecedor da informao e o lado menor o receptor. Arquivo: a sada gerada pelas informaes, sendo que o arquivo ser gerado no momento do redirecionamento. Mltiplos redirecionamentos simultneos so possveis, como por exemplo, redirecionamento de entrada e de sada, ou de sada e sada de erro padro. Exemplo:
#dpkg -l > pacotes.txt
No exemplo, a sada gerada pelo comando dpkg -l foi redirecionado para o arquivo chamado pacotes.txt. possvel fazer o redirecionamento do arquivo gerado para um outro arquivo, por exemplo, coloc-lo em ordem alfabtica:
#sort < pacotes.txt > pacotesordenados.txt
Ao trmino desse comando, ser criado um novo arquivo chamado pacotesordenados.txt, tendo ainda o seu contedo ordenado em relao ao originrio pacotes.txt. NOTA: nunca utilize o redirecionamento para o mesmo arquivo, pois o mesmo deve ser comparado linha por linha antes de ser escrito, e se for o mesmo arquivo todas as informaes geradas dentro dele sero perdidas. Somente os erros que esto acontecendo em um determinado arquivo podero ser redirecionados. Por exemplo, um programa ao ser chamado, gera algumas informaes, e uma delas pode ser de erro o que torna importante para o administrador saber capturlas. A sada de erro padro, nos interpretadores bash e ksh, pode ser redirecionada utilizando o valor de seu descriptor de arquivo, ou seja, o nmero 2, antes do redirecionamento. Exemplo:
#./programaX 2> possvel_erro.txt
No exemplo acima o ./ serve para informar ao sistema que dever ser executado o programaX cujo executvel est no diretrio corrente. O 2> envia possveis mensagens de erro para o arquivo possvel_erro.txt. Alm do "<" e do ">" possvel tambm utilizar o "<<" e o ">>". O uso destes semelhante ao que vimos anteriormente. O ">>" redireciona a sada de um programa/comando/script para algum dispositivo ou final de arquivo. A diferena entre o redirecionamento duplo e o simples que, quando usado com arquivos, o redirecionamento duplo adiciona a sada do comando ao final do arquivo existente em vez de substituir seu contedo como faz o redirecionamento simples. No exemplo a seguir a sada do comando "ls" seria adicionada ao final do arquivo lista.txt.
#ls >> lista.txt
O "<<" especialmente usado em conjunto com o comando cat, mas possui, tambm,
sintectus.com//LicaoCombinacaode
3/7
03/03/2011
Logo aps digitar o comando, ser apresentado na tela (logo abaixo) o sinal de prompt para que voc digite qualquer texto. Escreva qualquer texto, linha aps linha. Quando voc quiser terminar, na ltima linha escreva MarcadorDeFIm. Esse marcador de fim pode ser qualquer sequncia de caracteres. usual usar EOF (End Of File), mas nada impede de usar outros marcadores. Ao pressionar a tecla ENTER, o shell vai apresentar na tela o que voc acabou de digitar nas linhas acima do texto MarcadorDeFim.
8.4 Pipe
A ideia principal do uso do comando pipe ("|") fazer com que os comandos trabalhem em conjunto. Um comando trabalhando sozinho geralmente limitado quanto a sua funcionalidade, revelando uma outra caracterstica dos sistemas operacionais UNIX: faa apenas uma coisa, mas faa-a bem. Os pipes facilitam o trabalho em equipe dos utilitrios UNIX. Nesse cenrio, cada aplicativo executa determinada operao no arquivo, e passa o resultado para o prximo utilitrio. Pense em pipes como uma linha de produo, onde as determinadas etapas so realizadas por diferentes utilitrios UNIX. Lembre-se da terminologia UNIX, na qual cada programa l de uma determinada entrada padro e escreve para uma sada padro. Com o uso dos pipes, a sada do primeiro programa automaticamente lanada para ser a entrada padro do segundo comando. Aps trabalhar nos dados que recebeu, o segundo programa joga esses resultados para sua sada padro, que na verdade a entrada padro do terceiro programa nessa linha de produo. Ao chegar no fim da linha, o ltimo programa simplesmente joga seus resultados para sua sada padro, exatamente igual aos demais. Essa sada, geralmente o monitor, mas nada nos impede de usar os recursos de redirecionamento que aprendemos, e termos o resultado de todo o processo armazenado em um arquivo. Sintaxe:
comando1 | comando2 | comando3 | ... | comandoX
Os comandos podem ser ligados em srie sem restrio de quantidade, mas com restrio quanto ao uso, pois uma sada gerada ser a entrada de outra. Exemplo:
# ls /etc | more CORBA DIR_COLORS LexmarkZ11 Muttrc TextConfig X11 adjtime aide.conf aliases aliases.db alternatives amd.conf amd.net apt at.deny atalk --Mais--
No exemplo acima, foi possvel interromper a listagem do contedo do diretrio /etc com
sintectus.com//LicaoCombinacaode
4/7
03/03/2011
LicaoCombinacaodeComandos < Grup uma parada quando a tela ficou cheia, sem ocorrer a perda de algum arquivo importante na busca.
8.5 tee
A ferramenta "tee" permite o redirecionamento em ambas direes, ou seja, enquanto que o redirecionamento comum feito ou para a sada padro ou para um arquivo, o tee permite realizar as duas coisas ao mesmo tempo. O comando "tee" permite que a sada de um comando seja gravada em um arquivo ao mesmo tempo em que exibida na tela. Sintaxe:
tee [opo] arquivo
Opo: -a - quando solicitada a entrada padro que for gerada para o arquivo, o "tee" dever ser posto ao final para evitar sobrescrever dados j existentes. O seu uso muito comum em tarefas do dia-a-dia, por exemplo, em teste de uso de alguma ferramenta, ou preparao de arquivo possibilitando ainda a sua leitura. Exemplo:
# dpkg -l > pacotes.txt
# cat pacotes.txt | sort | tee pacotesordenados.txt O exemplo acima teria quase o mesmo efeito de:
# dpkg -l > pacotes.txt # sort < pacotes.txt > pacotesordenados.txt
Para maiores detalhes sobre o comando "tee" leia o tpico sobre redirecionamento. A diferena entre os dois exemplos, que com o uso de "tee" possvel visualizar o que foi feito, e no segundo exemplo seria necessrio utilizar um comando de processamento de texto como o comando cat.
8.6 grep
O "grep" um comando que procura por um texto dentro de um arquivo ou no dispositivo de entrada padro. sintaxe:
grep [expresso] [arquivo] [opes]
Opes: -A [nmero] Mostra o [nmero] de linhas aps a linha encontrada pelo grep. -B [nmero] Mostra o [nmero] de linhas antes da linha encontrada pelo grep. -f [arquivo] Especifica que o texto que ser localizado, est no arquivo [arquivo]. -i, --ignore-case Ignora a diferena entre maisculas e minsculas no arquivo procurado. -n, --line-number Mostra o nome de cada linha encontrada pelo grep. -U, --binary Trata o arquivo que ser procurado como binrio. Exemplo:
$ grep root /etc/group root:x:0:
Combinado com o pipe o "grep" muito til para filtrar sada de comandos. No exemplo a
sintectus.com//LicaoCombinacaode
5/7
03/03/2011
LicaoCombinacaodeComandos < Grup seguir, a sada de ps aux direcionada para o comando "grep" para que seja filtrada. muito til pra se usar com outros comandos de localizao.
Exemplo:
$ ps aux | grep root root root root root root root root root root root root root root root 1 2 3 4 5 6 7 8 9 10 11 46 47 50 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2844 0 0 0 0 0 0 0 0 0 0 0 0 0 1688 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? Ss S< S< S< S< S< S< S< S< S< S< S< S< S< 13:00 13:00 13:00 13:00 13:00 13:00 13:00 13:00 13:00 13:00 13:00 13:00 13:00 13:00 0:02 /sbin/init 0:00 [kthreadd] 0:00 [migration/0] 0:00 [ksoftirqd/0] 0:00 [watchdog/0] 0:00 [migration/1] 0:00 [ksoftirqd/1] 0:00 [watchdog/1] 0:00 [events/0] 0:00 [events/1] 0:00 [khelper] 0:00 [kblockd/0] 0:00 [kblockd/1] 0:00 [kacpid]
Anterior Trilha B
Prximo
8.9 - Comentrios
Adicionar
LicaoForm Titulo LicaoAnterior NivelAcima LicaoPosterior Licenca Combinao de Comandos LicaoEditoresdeTexto LicaoLoginDesligamentoReinicializacaodoSistema LicaoLocalizandoArquivos LicencaCreativeCommonsBySA ?
sintectus.com//LicaoCombinacaode
6/7
03/03/2011
OrdemPadrao TrilhaPadrao
Editar | Anexar | Impresso | Texto Puro | Referncias: Web, Global | Histrico: r12 < r11 < r10 < r9 < r8 | Mais aes de tpico
Copyright 2003 - 2011, pelos autores colaboradores. Todo o contedo desta pgina pode ser utilizado segundo os termos da Licena Creative Commons: Atribuio, Uso no Comercial e Permanncia da Licena, salvo disposio em contrrio indicada de forma explcita no tpico correspondente.
sintectus.com//LicaoCombinacaode
7/7