Vou apresentar alguns comandos que facilitam o meu trabalho no Linux. O objetivo deste texto não é trazer um guia definitivo sobre os comandos, mas apresentá-los com exemplos de uso para o leitor. Para mais informações sobre eles, consulte suas manpages ou websites.

O Laço for
“for” (para) é um laço utilizado em [quase] todas as linguagens de programação. Seu objetivo é realizar uma sequência definida de comandos por um número determinado de vezes. Apesar de ser mais útil e legível dentro de Shell Scripts, ele pode ser usado tranquilamente como um comando regular — assim como outras estruturas de controle, como if e while.
$ for pic in *.png; do convert $pic "$(basename "$pic" png)jpg"; done; rm *png
No exemplo acima, o for itera sobre todos os arquivos com extensão “.png” do diretório corrente (*.png), convertendo-os para JPEG e trocando sua extensão. Depois de executado, o comando rm apaga todos os arquivos png do diretório. De fato, utilizar o comando convert (integrante do pacote ImageMagick) dentro de um laço é muito útil para tratar imagens em massa.
O “Farejador” find
O find é quase que um Google no Bash. Busca tudo dentro do padrão e do escopo especificados e ainda pode executar ações quando encontrar algo.
$ find ~/Music -name *mp3 -type f -exec mpg321 {} -w {}.wav \;
O comando acima busca todos os arquivos (-type f) com extensão “mp3″ dentro do diretório ~/Music e executa o programa mpg321 para convertê-los para Wave. Perceba que isso poderia ser resolvido com o for, apresentado anteriormente. Contudo, o find em detrimento do for pode ser considerado uma solução mais Shell-Scriptista, além de ser de mais fácil utilização às vezes.
Imagine que você queira apagar todos os arquivos com a extensão THM do seu diretório de vídeos — incluindo sub-diretórios. Com o comando abaixo isso é resolvido:
$ find ~/Videos -name *.THM -type f -exec rm {} \;
Perceba que dentro do parâmetro exec, o par {} será substituído por cada ocorrência do padrão que for encontrada. Note também que colocar *.THM ou *THM tem poucas mudanças. As extensões em sistemas Unix existem apenas para o usuário se organizar melhor. Para o sistema, não faz diferença ter um arquivo AVI com extensão JPG. Dessa forma, a colocação do ponto antes da extensão, durante a busca, é facultativa e muitas vezes não altera o resultado.
Neste caso, se fosse usado apenas *THM, poderia casar tanto com RHYTHM quanto com RHYTHM.THM — se RHYTHM fosse um arquivo sem extensão. Lembre-se também que em Shell Script o caso dos caracteres conta. Então arquivo.thm não se encaixaria na busca realizada. Para ignorar o caso no find, troque -name por -iname.
O “Canivete” de Vídeos mencoder
Não conheço muito sobre o funcionamento desse camarada, mas ele é muito eficiente. O mencoder tem a manha de juntar vários vídeos em um só, com apenas uma linha de comando e ainda funciona com vários tipos de arquivos. A seguir, dois exemplos para concatenar as entradas video1 e video2 em video_final, nos formatos FLV e MP4:
# FLV $ mencoder -forceidx -of lavf -oac copy -ovc copy -o video_final.flv video1.flv \ video2.flv # MP4 $ mencoder video1.mp4 video2.mp4 -o video_final.mp4 -of lavf -lavfopts format=mp4 \ -vf harddup -oac lavc -ovc lavc
O Narcisista narkissos
Narkissos é uma ferramenta que eu mesmo desenvolvi e que uso bastante. Trata-se de um Shell Script que trabalha sobre uma ou várias imagens, ajustando o nome do arquivo, normalizando as cores, redimensionando e alterando a data de modificação. Antes eu levava cerca de 1 minuto para fazer isso em uma imagem. Com o Narkissos, isso é feito em menos de 5 segundos, um ganho de 55 segundos por foto. Se multiplicarmos isso por 100 fotos, teremos um ganho de 5500 segundos, que equivalem a 91,6 minutos — mais de 1 hora e meia!
$ narkissos.sh -p ~/Images -s 800 -r -v
O comando acima trabalha dentro do diretório Images (-p ~/Images) e seus subdiretórios (-r), tratando todas as imagens suportadas pelo programa (GIF, JPG e PNG, na versão atual), sendo que elas serão redimensionadas para 800 px — base ou altura, o que for maior — (-s 800). Tudo isso é mostrado na tela para o usuário (-v). Esse é o comando que eu uso normalmente para configurar imagens em massa para publicação na Web.
Você pode ler mais sobre o Narkissos aqui e obter sua última versão aqui. :-)
Se você é novo no Linux, saiba que há muito tempo o usuário não precisa saber sobre os comandos do sistema. Distribuições como Ubuntu possuem várias aplicações gráficas que resolvem a maioria dos problemas. Muito disso se deve amadurecimento dos ambientes gráficos — como GNOME e KDE — e ao crescente número de aplicativos gráficos para o sistema do pinguim. Contudo, conhecer comandos ajuda a realizar tarefas mais rapidamente e sem muitas das restrições impostas por aplicações gráficas.

Marcos Qual erro está dando? Desculpe pela demora. Estou com vários projetos em paralelo. Entre eles, a
Hi Jeff! I'm planning to update Weback in the next few months. Unfortunately, I figured out
Hello José! Thanks for your excellent script! I've been using it for about 3 months
Muito Show, seu post, me esclareceu muitas dúvidas, mais não consegui bloquer minha adm usando
Essa história é muito triste, imagine só ser lembrado como azar. Mas isso acontece muito,