Neste primeiro artigo, vamos aprender como concatenar, fazer conexão e recursividade de comandos no
GNU/Linux.
Agenda do artigo, veremos o seguinte:
- Concatenação de comandos;
- Conexão de comandos;
- Recursividade;
- Conclusão.
Concatenação de comandos
Podemos concatenar comandos no GNU/Linux usando o ponto e vírgula (;). Este conceito de concatenar (ou podemos dizer: sequenciar comandos) faz com que vários comandos sejam executados um após outro.
Exemplo:
comando 1 ; comando 2 ; comando 3 ; comando 4
Veja um exemplo real:
# cd /etc ; cat hosts ; ls -l ; mkdir teste
Esta sequência executaria o seguinte:
- Entraria no diretório /etc,
- Mostraria o conteúdo do arquivo hosts (/etc/hosts);
- Listaria detalhadamente o diretório /etc;
- E criaria dentro deste diretório o diretório "teste".
Veja a imagem:
Não deu para listar a saída completa destes comandos, mas no terminal de vocês verão toda a saída, podemos usar outros comandos caso vocês queiram. E antes que me perguntem, não sei o limite de comandos, creio que não haja limite.
Outro exemplo:
# apt-cache policy ; apt-get update ; apt-get -y upgrade
Conexão de comandos
Este conceito é fazer com que o resultado gerado por um comando seja processado por outro, sendo que teremos que aplicar o caractere pipe (|).
comando1 | comando2 | comando3 | comando4
Exemplo:
cat /etc/hosts | grep localhost
Neste primeiro comando, ele iria ler o conteúdo do arquivo
/etc/hosts. O resultado deste comando, em vez de ser mostrado na tela, será enviado para o comando
grep localhost, que irá filtrar somente as linhas que contém a palavra "localhost". Veja a imagem abaixo:
Um dos grandes desafios na história do
Unix, era fazer a concatenação funcionar. Este conceito de conexão foi criado por
Douglas McIlroy, na década de 1950, e implementado no Unix por
Ken Thompson.
O próprio Douglas nunca conseguira implementá-lo em nenhum sistema e ficou maravilhado quando Thompson conseguiu em apenas uma noite.