Histórico de comandos seletivo no terminal?

9

Dentro de um terminal, quando você pressiona o seu teclado, você pode ver os comandos anteriores que você deu a ele antes na ordem. Eu queria saber se havia uma maneira de ver apenas os comandos no início, começando com, por exemplo, "ls -l". Dessa forma, se a lista de comandos for:

  1. ls -l -a
  2. cmake
  3. cd ~ / Desktop
  4. cmake

Uma maneira de escrever apenas "ls" e tabulação ou qualquer combinação de pressionamentos de tecla necessários para abrir o comando passado, entrando no terminal começando com "ls"

Obrigado,

    
por jlo 27.02.2012 / 11:05

5 respostas

13

Ele não mostrará as coisas apenas começando com ls , mas você pode fazer Ctrl-R ls para fazer uma pesquisa retroativa no histórico. Repita Ctrl-R para encontrar a próxima partida.

    
por poolie 27.02.2012 / 11:34
8

Às vezes é útil ter isso ...

Exemplo

Conectando-se a outra máquina usando ssh:

comece a digitar

ssh

Use a tecla PgUp e o seu ssh termina com o último usado ... pressione PgUp novamente e ele lhe dará o próximo e assim por diante. Gosta?

Você pode usar isto:

Edite seu .bashrc ( vi /home/<yourfolder>/.bashrc ) e adicione isto:

$if Bash
    # Search history back and forward using page-up and page-down
    "\e[5~": history-search-backward
    "\e[6~": history-search-forward

    # Completion
    set match-hidden-files off
    set page-completions off
    set completion-query-items 350
    set show-all-if-ambiguous on

$endif

Isso adiciona apenas ao terminal do seu usuário essa função. Você terá que editar também o da raiz para ter o mesmo: você pode seguir este tutorial do wiki não há maneira que você pode fazer errado, também há um monte de coisas extras para melhorar a sua experiência de terminal ...

    
por maniat1k 27.02.2012 / 11:37
5

Para ver o histórico de comandos, use:

$ history

Se você quiser apenas ver o comando passado começar com, por exemplo, "ls", na minha opinião eu uso:

$ history | grep ls

Certamente, a saída conterá algo que não é um comando, mas contém caracteres "ls", mas acho que pode ajudar.

    
por neo0 27.02.2012 / 11:16
2

A maneira mais fácil de alcançar o que você deseja é por !<whatever-command> . Por exemplo, para executar o ls que você realizou por último, você pode fazer um !ls . Dê uma olhada no seguinte log para ver se é isso que você precisa:

nits@nits-excalibur:~$ ls /mnt/Storage_1/Music/
Music I  Music II  Music III  Music IV  Music V  Music_VI
nits@nits-excalibur:~$ cd Documents/
nits@nits-excalibur:~/Documents$ top
nits@nits-excalibur:~/Documents$ !ls
ls /mnt/Storage_1/Music/
Music I  Music II  Music III  Music IV  Music V  Music_VI
    
por Nitin Venkatesh 27.02.2012 / 11:28
1

A história está localizada ~ / .bash_history Além disso, para um truque interessante para pesquisar seu histórico bash, pressione ctrl + r e digite o início do comando que você está procurando.

e link para aliases e truques de linha de comando úteis

    
por Ringtail 27.02.2012 / 11:23