Copia o comando do histórico para o prompt do bash

3

Às vezes, gostaria de obter um comando de history output, copiá-lo para um prompt do bash, fazer algumas alterações e executá-lo. Existe uma maneira de copiar um comando de history output para um prompt bash sem envolver o mouse? Por exemplo, seria algum script para o qual eu poderia vincular um atalho.

Talvez eu não entenda fc o suficiente, mas parece que não consigo selecionar pastas ou arquivos via fc (como a Guia para o prompt de comando normal)

    
por Loom 10.02.2014 / 09:27

3 respostas

0

Digite o número do comando (como !1234 ) e pressione Alt + Deslocamento + X . Depois que o comando com o número 1234 será impresso no terminal e este comando é editável como de costume.

copy_line_from_history_to_prompt () {
  READLINE_LINE=$( history -p "$READLINE_LINE" ) ;
}
bind -x '"eX": copy_line_from_history_to_prompt' # Alt+Shift+X
    
por 13.03.2014 / 17:54
3

você precisa dar uma olhada no comando bash fc .

Se você quiser editar antes de reexecutar uma linha do histórico, faça exatamente assim

fc 123

onde 123 é o número da linha do histórico que você vê digitando o comando history .
Ele irá abrir o seu editor favorito e permitir que você modifique a linha, em seguida, saia e salve e ele será executado.

Você também pode fazer um intervalo de comando como este:

fc 123 135

Para trabalhar no histórico de comandos de 123 a 135.

Editar 1:
Se você precisar executar sem editar, considere assistir a postagem Execute novamente o comando fc do histórico

    
por 10.02.2014 / 09:51
3

Se você quiser reexecutar um comando do seu histórico, você pode usar ^ r (ctrl + r) no seu terminal. É uma pesquisa inversa que permite recuperar um comando e editá-lo antes de inseri-lo. Eu não sei se funciona com outro shell que o bash. Embora seja como uma das coisas mais úteis que eu já vi.

Na documentação do bash:

reverse-search-history (C-r)
Search backward starting at the current line and moving ‘up’ through the history as necessary. This is an incremental search.

Aqui está o manual.

    
por 10.02.2014 / 10:21