it-swarm-pt.com

Conclusão da linha de comandos a partir do histórico de comandos

Então, eu olhei para a história e para Ctrl+R, mas eles não são o que eu pensava que sabia. Existe uma maneira de digitar o início de um comando e percorrer as correspondências do meu histórico com algum atalho do bash?

# mysq(some shortcut key)

Dá-me:

# mysqldump  --add-drop-table -e -q -n -C -u 
(some shortcut key)
#  mysql -u ben.dauphinee -p
89
Ben Dauphinee

Pressionando Ctrl+R abrirá a pesquisa de histórico reverso. Agora comece a digitar seu comando, isso dará a primeira correspondência. Pressionando Ctrl+R novamente (e novamente), você pode percorrer a história.

mysq(Ctrl+R)

Daria:

mysqldump  --add-drop-table -e -q -n -C -u 

Ctrl+R novamente:

mysql -u ben.dauphinee -p
93
wag

Para expandir o que Gilles disse, tenho o seguinte no meu .inputrc para vincular a tecla de seta para cima/para baixo a history-search-backward e history-search-forward:

# Key bindings, up/down arrow searches through history
"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward

Basta digitar algo (opcional) e pressionar a tecla de seta para cima/baixo para pesquisar no histórico os comandos que começam com o que você digitou.

Para fazer isso em .bashrc ao invés de .inputrc, você pode usar:

bind '"\e[A": history-search-backward'
68
raychi

Você também pode pressionar o botão PAGEUP para concluir automaticamente um comando. Ele basicamente pesquisa o bash_history Arquivo.

7
0aslam0

Você pode usar os comandos readline history-search-backward e history-search-forward para navegar entre as linhas de comandos que começam com o prefixo que você já digitou. Nenhum desses comandos está vinculado às chaves na configuração padrão.

Zsh (zle) possui comandos semelhantes history-beginning-search-backward e history-beginning-search-forward, também não vinculado a chaves por padrão. Há também history-search-backward e history-search-forward, que usa a primeira palavra do comando atual como prefixo para pesquisar, independentemente da posição do cursor.

5

Se você quiser uma boa visão geral de comandos muito semelhantes, poderá obter uma lista com:

history|grep KEYSTRING

Em seguida, copie e cole com o botão do meio do mouse.

Rgds - Joe

4
joe_zeroh