Ao executar comandos, às vezes vou querer executar um comando com os argumentos anteriores. Para fazer isso, você pode usar este atalho:
$ mkdir /tmp/new
$ cd !!:*
Ocasionalmente, em vez de usar o find, separarei um loop de uma linha se precisar executar vários comandos em uma lista de arquivos.
for file in *.wav; do lame "$file" "$(basename "$file" .wav).mp3" ; done;
Configurar as opções do histórico da linha de comando no meu .bash_login (ou .bashrc) é realmente útil. A seguir, é apresentado um quadro de configurações que eu uso no meu Macbook Pro.
Definir o seguinte faz com que o bash apague comandos duplicados no seu histórico:
export HISTCONTROL="erasedups:ignoreboth"
Também elevo o tamanho da minha história bem alto também. Por que não? Parece não retardar nada nos microprocessadores atuais.
export HISTFILESIZE=500000
export HISTSIZE=100000
Outra coisa que faço é ignorar alguns comandos da minha história. Não há necessidade de lembrar o comando exit.
export HISTIGNORE="&:[ ]*:exit"
Você definitivamente deseja definir o histappend. Caso contrário, o bash substituirá seu histórico quando você sair.
shopt -s histappend
Outra opção que eu uso é o cmdhist. Isso permite salvar comandos de várias linhas no histórico como um comando.
shopt -s cmdhist
Por fim, no Mac OS X (se você não estiver usando o modo vi), convém redefinir <CTRL> -S para parar a rolagem. Isso impede que o bash possa interpretá-lo como pesquisa direta.
stty stop ""