Como posso adicionar um comando ao histórico do Bash sem executá-lo?

30

De vez em quando, seria útil adicionar um comando diretamente ao histórico no Bash sem realmente executá-lo. Até agora, a coisa fechada que encontrei é adicionar um # na frente dele e atingir o retorno. Existem maneiras melhores?

    
por Grumbel 28.04.2010 / 19:52

3 respostas

38

history -s comando

    
por 28.04.2010 / 20:23
8

history -s comando

Você pode até mesmo ligar um toque de tecla para fazer isso por você. Você pode inserir isso em um prompt do Bash:

bind '"\C-q": "\C-a history -s \C-j"'

ou adicione isso ao seu ~/.inputrc :

"\C-q": "\C-a history -s \C-j"

então você pode digitar algo e pressionar Ctrl - q e ele será adicionado ao histórico sem ser executado. O espaço antes de "history" faz com que o comando history em si seja não adicionado ao histórico se a variável HISTCONTROL contiver ignorespace ou ignoreboth . Outro toque de tecla pode ser escolhido em vez de "\ C-q".

    
por 29.04.2010 / 10:42
3

É difícil chegar a algo menor do que um "comando" de um caractere, então precisamos ir ao nível de tecla. Com minha configuração bash e um teclado dos EUA, o que você faz agora:

  1. Ir para o início da linha: CTRL Uma : instrução +1, + pressionamentos de tecla
  2. Adicione # (precisa de SHIFT ): instrução +1, tecla +2
  3. Anexando-o ao histórico com ENTER : instrução +1, pressionamento de tecla +1

so no total de 3 instruções, 5 pressionamentos de tecla.

Usando ALT # faz o mesmo em 1 instrução, 2 pressionamentos de tecla.

YMMV, dependendo do layout do teclado e da configuração do bash.

    
por 28.04.2010 / 20:21