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.