18 Mar
Outro dia desses um amigo meu me mostrou o command line fu, um site de comandos bash. A princípio eu achei besteira, até ver a riqueza dos comandos que eu não conhecia. Seguem alguns exemplos:
1) Esqueci do sudo…
Você está lá, mudando as permissões de arquivos de vários diretórios, e digita:
$ chown fabsn Java/ Perl/ Ruby/
chown: Java/: Operation not permitted
chown: Perl/: Operation not permitted
chown: Ruby/: Operation not permitted
Aí você pensa: “putz, esqueci do sudo!”. O que você faz?
$ sudo !!
Sim. O comando ! é o histórico, experimente digitar !ls, ele vai rodar o seu último ls, ou por exemplo !cd, e ele vai rodar seu último comando cd. Digitando !! ele roda seu ultimo comando.
2) Digitei errado
Você está fazendo um branch bzr, e digita:
$ bzr co bzr+svn://umdominio.qualquer.ALI/meubranch/essapasta/essearquivo.extensão
Mas então você se lembra que o branch está em umdominio.qualquer.AQUI. O que você faz, seta para cima? Não:
$ ^ALI^AQUI
bzr co bzr+svn://umdominio.qualquer.AQUI/meubranch/essapasta/essearquivo.extensão
Sim, ele acabou de rodar o último comando trocando a string ALI por AQUI. Mágico, não?
Bom, esses e outros comandos estão disponíveis em command line fu. Convido todos que acharem algum comando mais interessante lá a deixarem um comentário.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
Email This Post
3 Responses for "Truques do Bash"
$ cp filename{,.bak}
Cria um backup do arquivo.
$ du -h –max-depth=1
Mostra a ocupação em disco dos arquivos/pastas do diretório corrente.
$ nc -w 5 -v -l -p 80 < file.ext
disponibiliza o arquivo para download via web :o
Obrigado pela dica! Até mais…
!$ é o último parâmetro do comando anterior:
~$ mkdir Java
~$ cd !$
Java$
${variavel%ext} remove a extensão de uma variável:
~$ for i in *.html; do mv $i ${i%.html}.htm; done
renomeia arquivos com extensão .html para .htm
Abraço,
No zsh todos esses comandos funcionam também, mas a diferença é que quando você tecla TAB ele faz a expansão do dos atalhos de histórico que você digitou na hora.
Isso é bom porque evita de ficar fazendo coisas como isso:
http://www.commandlinefu.com/commands/view/209/check-command-history-but-avoid-running-it
O zsh é um superset do bash, então tudo que funciona em um, funciona no outro. Eu recomendo que quem ainda não conhece dê uma olhada.
Leave a reply