Pipe
Podemos usar o símbolo especial
|
para fazer o que chamamos de pipe, que nada mais é do
que a conexão da saída de dois programas.
Neste exemplo, eu vou procurar em todos os processos do
sistema pelo que contém o texto "init":
$ ps aux | grep init
Ou seja, a saída de
ps aux
funciona como o arquivo para o
grep init
. É como fazer
ps aux
e gravar sua saída num arquivo chamado
teste
, por exemplo. E depois fazer
grep init teste
. Só que o pipe faz tudo automático, conectando a
saída do
ps
com a entrada do
grep
neste exemplo (sem a necessidade de um arquivo
intermediário).
Outro exemplo:
$ ls -l | more
Neste exemplo a saída do
ls
é usada pelo
more
. Ou seja, o
ls -l
é impresso na tela pausadamente, como se fosse um
arquivo usado pelo
more
.
Redirecionamento
Além do pipe, podemos usar o redirecionamento. Para
isso, usamos os símbolos
<
e
>
, significando entrada e saída respectivamente.
Vamos a um exemplo. Imagine que eu queira guardar o
resultado do
ls
na tela. Então faria assim:
$ ls > teste
O arquivo
teste
foi criado com o que o
ls
imprimiria na tela.
Usando o Bash
Agora vamos ver algumas facilidades do bash.
O bash possui história, ou seja, cada vez que
apertamos a tecla que representa uma seta para cima, temos um
comando já executado anteriormente. Se apertamos uma
vez, temos o último comando executado. Se apertamos duas
vezes, temos o penúltimo comando executado. E assim por
diante.
Quando estamos digitando um diretório ou arquivo, ao
apertarmos a tecla TAB, nos aparece o nome do arquivo todo.
Ou seja, ele é completado automaticamente para
você. Caso não seja, o bash emite um som via
speaker. Se você apertar o TAB e sair este som, aperte
de novo o TAB que ele irá lhe mostrar as
opções de complemento de nome.
Por exemplo, imagine que no diretório atual eu tenho
dois arquivos:
teste1.txt
e
teste2.txt
. Agora digito (sem apertar ENTER):
$ cat t
Agora aperto TAB e ele completa o nome e emite o som:
$ cat teste
Então aperto TAB novamente e me aparecem as
opções (pois ele não sabe qual eu quero):
$ cat teste
teste1.txt teste2.txt
Basta eu digitar mais um caractere (1 ou 2):
$ cat teste1
E apertar TAB novamente:
$ cat teste1.txt
Agora aperto ENTER e pronto.
Conclusão
Bom, por essa semana é só. Treinem os comandos
de shell pois são muito importantes.
Qualquer dúvida escrevam no
fórum
ou por email. Sugestões e críticas também
são bem vindas.