Eu procurei, mas não encontrei nada sobre isso. Estou procurando uma funcionalidade no bash, usando um terminal.
Na época, eu tinha um usuário em um sistema debian e um amigo me configurou com um recurso conveniente de pesquisa de histórico (acredito que usei o tcsh na época), onde digitava o início de um comando anterior, pressionava a seta para cima, e faria uma pesquisa, com base na string parcial.
Por exemplo, se minha história é:
./script.pl
./script.pl arg1
cat output
cat output | grep yada
E eu digite .
e pressione seta para cima, ele iria me mostrar: ./script.pl arg1
. Pressione novamente e mostrará ./script.pl
, etc.
Muito parecido com um grep
.bash_history. Existe uma maneira de obter essa funcionalidade?
Respostas:
Coloque as seguintes linhas no seu
~/.inputrc
:As linhas que começam com
#
são comentários. Não me lembro o que é atrasado e o que encaminhar. Experimente com isso. Talvez você precise mudar para trás e para frente.Um pouco de informações básicas:
O Bash está usando o readline para lidar com o prompt.
~/.inputrc
é o arquivo de configuração para o readline. Observe que isso também terá efeito em outro software usando a biblioteca readline, por exemplo, IPython .Leia o manual do bash para obter mais informações sobre o readline. Lá você também pode encontrar mais comandos readline relacionados ao histórico .
Para obter os códigos de escape das teclas de seta, você pode fazer o seguinte:
cat
em um terminal (apenascat
, sem mais argumentos).^[[A
seta para cima e seta^[[B
para baixo.^[
por\e
.fonte
$include /etc/inputrc
, adicione , de preferência na primeira linha.Crie um arquivo chamado setup_readline.sh com o modo 644 em /etc/profile.d/ com o seguinte conteúdo, faça o login e verifique suas chaves preferidas:
Eu acho que é a melhor maneira de fazer isso. Principalmente se você estiver usando sistemas de gerenciamento de configuração, como chef, fantoche, etc.
E configuração do sistema ainda intocada!
fonte
screen
. O estranho é que outros atalhos .inputrc funcionam, mas não esses. Então, eu uso as duas soluções agora.Ctrl + R fornecerá esse tipo de funcionalidade. Comece a digitar um comando parcial e ele aparecerá com os antigos que você pode navegar com as setas para cima e para baixo. Mais informações: http://www.nuxified.org/blog/ctrl_r_in_the_bash_shell
fonte
Ctrl+r
Para concluir a resposta da lesmana sobre "~ / .inputrc" que devo criar no meu Trusty 14.04, verifique / adicione "~ / .bashrc" (a primeira linha já existe no meu "~ / .bashrc"):
Já foi explicado em francês em https://doc.ubuntu-fr.org/terminal?&#pour_completer_les_commandes_a_partir_de_l_historique .
fonte
Talvez você queira tentar https://github.com/dvorka/hstr, que fornece uma filtragem simples e simples de várias linhas do histórico do Bash que, com base em métricas (quando, com que frequência e tamanho dos comandos importa) - você pode usar teclas de seta para navegar facilmente pelo histórico:
Ele pode ser facilmente ligado a Ctrl-re / ouCtrl-s
fonte
A solução a seguir combina e estende algumas das abordagens mencionadas acima: adicione as seguintes linhas ao seu
~/.bash_aliases
arquivo (não é necessário~/.inputrc
) para obter o seguinte comportamento:Faça login novamente no shell (ou execute
source ./bash_aliases
) para aplicar as alterações.fonte