Você está na página 1de 7

03/03/2011

LicaoCombinacaodeComandos < Grup


Pular para Busca English

GrupoLinux Iniciar sesso ou Registro


Pular para Busca English

Editar Voc est aqui: TWiki > Web GrupoLinux > LinuxEssencialFinal > LicaoCombinacaodeComandos

Anexar

Impresso

r12 - 23 Feb 2011 - 09:23:04 - PauloLima

, create new tag Anterior Trilha B Prximo comentar

Lio 8 - Combinao de Comandos


Objetivo(s): Orientar sobre as possveis Contedo combinaes de comandos para a melhor 8.1 Sequncia de comandos utilizao o sistema. 8.2 Redirecionamento e pipes Direitos autorais e licena: Veja notas de 8.3 Redirecionamento direitos autorais e licena no final da lio. 8.4 Pipe 8.5 tee 8.1 Sequncia de comandos 8.6 grep Muitas vezes necessrio digitar uma sequncia 8.7 Exerccios de Reviso de comandos porm alguns deles requerem uma 8.8 - Direitos autorais e licena grande quantia de tempo para finalizar e no 8.9 - Comentrios podemos esperar que terminem para entrar com os prximos comandos. Com essa ideia foi criado a sequncia de comandos que visa passar de uma nica vez uma lista de comandos para o sistema e, com isso, evitar que o prprio usurio digite-as, ganhando tempo, pois o sistema ao terminar um comando j sabe o que dever fazer. Os comandos devero ser separados por ";", pois assim o sistema saber onde quebrar os comandos antes de prosseguir. necessrio entender que a execuo dos comandos acontecem de forma independente e sequencial, apesar de estarem na mesma linha. Dessa forma o sistema espera que o ultimo comando antes de ";" termine para que execute o prximo. Se algum dos comandos estiver errado o sistema tentar execut-lo e se no conseguir, retornar um erro e continuar com a leitura dos outros comandos. Sintaxe:
comando1; comando2; comando3; comandox...

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

LicaoCombinacaodeComandos < Grup

8.2 Redirecionamento e pipes


O computador formado por diversos componentes, muitas vezes conhecidos como perifricos, tendo como principais o monitor e o teclado. Estes so normalmente as principais formas de entrada e sada de dados no sistema. Esses dois componentes formam o principal meio de comunicao entre usurio e o computador, com funes bem distintas entre eles. O teclado fornece a entrada de um determinado dado para o sistema, e o monitor a sada da informao. Existem ainda outros meios de comunicao entre o usurio e o computador que podem servir de entrada de dados como o mouse (em diversos programas, na maioria grfico), o scanner, a rede, o CD-ROM ou DVD; e como sada (alm do monitor) a impressora, a rede, o CD-ROM ou DVD. Os sistemas UNIX, incluindo o GNU/Linux, lidam com 3 dispositivos bsicos: Entrada padro, tambm conhecida por STDIN Sada padro, tambm conhecida por STDOUT Sada de erro padro, tambm conhecida por STDERR Os sistemas UNIX possuem um conceito interessante, no qual tudo um arquivo. Esse conceito permite escrever, em dispositivos externos, exatamente da mesma maneira que se escreve em arquivos. Consequentemente, os dispositivos bsicos mencionados acima so tambm arquivos. Programas UNIX, incluindo o shell, lidam com arquivos atravs de descritores, ou seja, nmeros que representam um determinado arquivo que est aberto para leitura e/ou escrita. A entrada padro, a sada padro e a sada de erro padro, tambm possuem esses descritores. Segue uma tabela com o resumo desses dispositivos, incluindo o nmero dos descritores de arquivo. Dispositivo Entrada padro Sada padro Sada de erro padro Apelido STDIN Nmero do Descritor de Arquivo 0 Mapeado por Padro Para Teclado Monitor Monitor

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

LicaoCombinacaodeComandos < Grup outras aplicaes. A seguir um exemplo de uso:


cat << MarcadorDeFim ?

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]

8.7 Exerccios de Reviso


1. Crie um arquivo listando o contedo do diretrio /etc dentro do /tmp. 2. Crie um arquivo parecido com o anterior, porm apresentando na sada padro o contedo conforme ele gravado. 3. Liste o contedo do diretrio /dev, incluindo os arquivos ocultos, e redirecione o resultado para a o arquivo dev.txt. 4. Crie uma pasta com o nome dir1, acesse a pasta, crie um arquivo chamado arq.txt. Faa uma cpia do arquivo e remova o original utilizando apenas 1 linha para realizar o comando.

8.8 - Direitos autorais e licena


Autor(es): Direito Autoral: Copyright Licena: Esta obra est licenciada sob uma Licena Creative Commons.

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

LicaoCombinacaodeComandos < Grup


DireitoAutoral Autoria PreRequisitos SoftwareUtilizado Objetivo Orientar sobre as possveis combinaes de comandos para a melhor utilizao o sistema. 8 B

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

Você também pode gostar