De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 16 de julho de 2010
Em tempos de Google, ficou muito fácil consultar o oráculo para saber a sintaxe de comandos especialmente complicados. O problema é que o Google sempre traz diversas alternativas e nem todas funcionam. Não dá para abandonar o Google, mas uma vez que tenhamos acertado a forma correta de fazer, é melhor guardar a receita em outro lugar. Vejamos um exemplo. Para converter um arquivo de vídeo, do formato rmvb para o formato avi, usamos o comando ffmpeg, com a seguinte sintaxe:
ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
Entender tudo isto, todas estas opções, é um trabalho para o SuperHomem ou para a Mulher Maravilha. Temos que usar como receita mesmo, não dá para entrar em todos os detalhes destas opções. O mais conveniente é termos este comandinho guardado em algum lugar, onde possamos consultá-lo sempre que for necessário. Para isto, temos o histórico do Bash, que guarda os comandos executados no arquivo .bash_history
. Na dica do dia 14 de julho explicamos como preservar de maneira mais eficiente o histórico de comandos do bash. Vamos agora aprender um pouco mais, vendo como preservar um número maior de comandos e, mais importante, como pesquisar de forma rápida e eficiente este histórico.
A primeira coisa a fazer, é aumentar o número de comandos que serão armazenados. Isto é feito acrescentando em seu arquivo .bashrc
a seguinte linha:
export HISTSIZE=1000000 HISTFILESIZE=1000000
Com isto, eu defino que serão guardados em meu arquivo .bash_history
um milhão de comandos. Se o Roberto Carlos tem um milhão de amigos, em alguns anos, eu posso ter um milhão de comandos (hehehehe).
Na prática, grande parte dos comandos que emitimos são duplicados, como por exemplo, o campeão de todos, o comando ls
. Para evitar que comandos duplicados consecutivos sejam armazenados, eu defino, também no arquivo .bashrc,
a seguinte diretiva:
export HISTCONTROL=ignoreboth
Não é perfeito, mas já ajuda. Eu prefiro a opção:
export HISTCONTROL=erasedups
Este sim, é melhor, ele apaga do arquivo de histórico os comandos duplicados.
Agora, vamos ver como consultar este histórico. Para recuperar o comando citado acima, do ffmpeg, eu digito alguma coisa do comando emitido e em seguida pressiono simultaneamente as teclas CTRL + R
:
(reverse-i-search)`ff': ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
Eu digitei ff
e em seguida CTRL+R
. Logo em seguida apareceu o comando ffmpeg completo. Para executar, basta teclar ENTER
. A busca realizada foi reversa, ou seja, o arquivo de histórico é consultado de trás para a frente, buscando dos comandos mais recentes para os mais antigos. Mas eu posso também realizar uma busca usando as teclas de navegação (seta acima e seta abaixo). Com estas setas, eu posso navegar para cima e para baixo, um comando por vez, no arquivo de histórico. Se eu quiser modificar o comando, posso usar as teclas CTRL+E
, para ir ao final da linha, ou CTRL+A
para ir ao começo da linha. No meu sistema pessoal, a combinação CTRL+E
abre a gaveta do DVD, o que é outro inconveniente. Preciso desativar este atalho no Gnome, pois estou sempre abrindo a gaveta do DVD por engano :-(
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários