Além da pesquisa do histórico de ^ r / ^ s:
alt . insere a última "palavra" do comando anterior no cursor. Repita para obter a última palavra dos comandos mais antigos. (Mas observe que um
& à direita conta como a última palavra para comandos em segundo plano).
Isso é muito útil para mkdir foo , cd alt-dot. Ainda mais rápido que a seta para cima, ^ a, alt-d (exclua a palavra para frente), cd .
Para obter a segunda e última palavra, use esc - 2 alt+. (use um argumento numérico no estilo emacs para alt+. . A contagem negativa começa a partir do final, a contagem positiva continua desde o início.) Mas isso geralmente é mais problemático do que vale a pena; em algum momento, é mais rápido acessar o mouse e copiar / colar, ou seta para cima e ^ w / ^ y parte dele (veja abaixo).
Se o seu terminal estiver configurado de forma adequada / adequada, ctrl-left e ctrl-right irá retroceder / avançar por palavras. Se não, esperamos que pelo menos o alt-b e o alt-f façam o mesmo.
ctrl- / é um desfazer. Você pode usar a repetição automática para excluir palavras com muito mais eficiência, se puder desfazer ao passar um pouco.
Uma mistura / combinação mais poderosa de comandos vem do uso do kill-ring, que funciona como no Emacs. ctrl-y para colar o último ctrl-w / ctrl-u / ctrl-backspace / alt-d. alt-y para percorrer o texto morto mais antigo.
Múltiplos ctrl-w ou o que for feito em uma linha na entrada do kill-ring. Use a seta para a esquerda e para a direita ou algo do tipo para dividir a entrada, se quiser remover duas coisas e colar apenas uma depois.
Combinando tudo isso junto, você pode
- comece a digitar um comando
- ctrl-r para voltar para um comando antigo e pegar parte dele com control-w ou similar.
- esc-r ou
alt+r para restaurar como era antes de excluir parte dele.
- alt-
> para ir até o final do histórico (ou seja, seta para baixo até o fim), para voltar ao comando no qual você estava no meio.
Outras dicas de uso interativo:
Ative o shopt -s globstar , para que você possa fazer **/*.c (recursivo, incluindo o diretório atual). Às vezes útil para uso interativo, mas geralmente find -name '*.c' -exec foo {} + é melhor.
Se você escrever scripts bash, você achará útil ter shopt -s extglob ativado em seus shells interativos também. Você irá algumas vezes encontrar um uso para coisas como *.!(c|h) para combinar arquivos que não terminem com .c ou .h.
Encontre os aliases que você gosta para ls -l , less e qualquer outra coisa que você faz muito. ( cp -i , mv -i e rm -I são bons. Não adquira o hábito de depender deles para fazer uma rm seletiva. GNU rm's - Eu pergunto de uma vez por todas os args .)
Eu gosto de alias m=less (m para "mais"). Eu tenho less configurado com , e . ligado ao arquivo anterior / próximo ( lesskey ). O padrão é uma seqüência de várias teclas que não pode ser usada com autorepeatação.
Eu gosto de fazer tudo dentro da tela do GNU. Eu acho mais fácil manter o controle de janelas de tela numeradas do que um carregamento de abas no Konsole (ou qualquer outro emulador de terminal que eu tentei). Se você ainda não conhece screen , aprenda o tmux porque é mais novo e menos crútico.
Para obter algo como a funcionalidade de abrir um novo shell com o mesmo cwd que outro shell, eu uso um gancho personalizado para cd / pushd / popd que me permite fazer cds 8 para cd para qualquer dir que meu shell na janela de tela 8 esteja usando. Isso funciona mesmo para shells fora da sessão de tela, contanto que haja apenas uma sessão de tela.