Terminal Mac: Como imprimir um comando de histórico no prompt de comando sem executá-lo?

2

Eu digito history , em seguida, teco Enter para exibir os comandos mais recentes, e posso imprimir um comando usando algo como !123:p , mas isso imprime depois que o prompt de comando mostra um prompt de comando vazio.

Eu quero executar um comando para colocar uma determinada linha do histórico no prompt de comando para que eu possa editá-la ou pressionar Enter para executá-la.

    
por Dave Sky 27.06.2018 / 19:39

3 respostas

2

Acho que você está procurando a opção histverify :

Não me lembro quais arquivos saem da caixa no Mac, mas tenho:

$ cat ~/.bash_profile
[[ -f ~/.bashrc ]] && source ~/.bashrc

$ cat ~/.bashrc
...
shopt -s histverify
...

Com essa opção ativada, ao usar a substituição de histórico, você terá a opção de editar o comando antes de executá-lo. Na página bash man:

histverify
If set, and readline is being used, the results of history substitution are not immediately passed to the shell parser. Instead, the resulting line is loaded into the readline editing buffer, allowing further modification.

    
por 27.06.2018 / 19:57
1

A seta para cima irá percorrer os comandos, começando com o último. Eu recomendo que você use isso com comandos que foram executados muito recentemente para que você não tenha que ficar louco com a seta para cima.

Você também pode usar:

CTRL +r

Comece a digitar o comando depois e ele aparecerá de acordo com sua entrada. Você pode então pressionar ESCAPE para obtê-lo no prompt sem executá-lo ou executar com a tecla Enter , se desejar.

    
por 27.06.2018 / 19:57
0

Se você digitar histórico na linha de comando, uma lista de comandos anteriores será listada, precedida por um número. se você digitar um ponto de exclamação seguido pelo número de um comando, esse comando será repetido. Por exemplo! 12 listará o 12º comando da lista de histórico e executará esse comando.

    
por 18.07.2018 / 22:55

Tags