Além da história da ^ r / ^ s, i-search:
alt.insere a última "palavra" do comando anterior no cursor. Repita para obter a última palavra dos comandos mais antigos. (Mas observe que um final &
conta como a última palavra para comandos em segundo plano).
Isso é super útil para mkdir foo
, cd
alt-ponto. Ainda mais rápido que a seta para cima, ^ a, alt-d (excluir palavra para frente) cd
,.
Para obter a penúltima palavra, use esc
-
2
alt+.
(por exemplo, use um argumento numérico no estilo emacs para alt+.
. Contagens negativas a partir do final, contagens positivas a partir do 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 maneira adequada / correta, as teclas Ctrl-Esquerda e Ctrl-Direita retrocederão / avançarão. Se não, espero que pelo menos alt-be alt-f façam a mesma coisa.
ctrl- / é um desfazer. Você pode usar a repetição automática para excluir palavras com muito mais eficiência, se puder desfazer quando exceder um pouco.
A mistura / combinação de comandos mais poderosa vem do uso do kill-ring, que funciona exatamente 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.
Ctrl-w múltiplo ou o que for seguido em seguida na entrada do anel de interrupção. Use as setas esquerda e direita ou algo para interromper a entrada se desejar remover duas coisas e colar apenas uma depois.
Combinando tudo isso, você pode
- comece a digitar um comando
- ctrl-r para retornar a um comando antigo e pegar parte dele com control-w ou similar.
- esc-r ou
alt+r
para restaurá-lo como estava antes de excluir parte dele.
- alt-
>
para ir até o fim da história (ou seja, seta para baixo até o fim), voltar ao comando em que você estava no meio.
Outras dicas de uso interativo:
Ative 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, também será útil ter shopt -s extglob
ativado seus shells interativos. Você vai , por vezes, encontrar um uso para o material como *.!(c|h)
para coincidir com arquivos que não terminam com .c ou .h.
Encontrar aliases que você gosta de ls -l
, less
e qualquer outra coisa que você faz um monte. ( cp -i
,, mv -i
e rm -I
são legais. Não use o hábito de depender deles para fazer uma empresa seletiva. GNU rm's -I pede uma vez todos os argumentos.)
Eu gosto alias m=less
(m para "mais"). Eu less
configurei ,e .vinculei ao arquivo anterior / seguinte ( lesskey
). O padrão é uma sequência de pressionamento de teclas múltiplas que não pode ser usada com repetição automática.
Eu gosto de fazer tudo dentro da tela GNU. Acho mais fácil acompanhar as janelas de tela numeradas do que um monte de guias no Konsole (ou qualquer outro emulador de terminal que eu tentei). Se você ainda não sabe screen
, aprenda o tmux porque é mais novo e menos sujo.
Para obter algo parecido com 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 o cds 8
cd para qualquer dir que meu shell na janela 8 da tela estiver usando. Isso funciona mesmo para shells fora da sessão de tela, desde que haja apenas uma sessão de tela.
fish
;) #