Perguntei algo bastante semelhante no Unix & amp; Linux: Como desfazer mudanças no histórico de comandos? .
% bl0ck_qu0te%Eu tenho notado que quando eu subio meus comandos usando as teclas de seta, UP e DOWN , se eu edito um comando, ele o edita no histórico , e eu posso até mesmo remover um comando assim, porém eu não quero que isso tenha efeito nos comandos do histórico, não quero que ele realmente os apague no histórico, só me permita editar o que estou digitando , mas na verdade não modifica a história através disso. Então, como posso fazer isso para que isso não modifique realmente o histórico, mas apenas o comando que eu executo?
Perguntei algo bastante semelhante no Unix & amp; Linux: Como desfazer mudanças no histórico de comandos? .
% bl0ck_qu0te%Encontrei o mesmo problema e enquanto estava brincando e tentando entender o que estava acontecendo, descobri o seguinte:
Se você chamar a partir da linha de comando history
a que você digitou anteriormente na mesma sessão de terminal atual e depois editá-la (talvez excluí-la), interrompa a edição deixando (history-) linha de comando usando por exemplo a Down
arrow para voltar ao prompt da linha de comando atual, depois quando você sair do terminal as edições serão gravadas no arquivo .bash_history
.
Esse comportamento não acontece se você editar e interromper sua edição em uma linha de comando que já tenha sido registrada no arquivo .bash_history
antes de iniciar a sessão de terminal.
Em outras palavras, enquanto uma sessão de terminal é aberta, as linhas de comando recém-digitadas são mantidas apenas na memória, não no .bash_history
. Você pode recuperá-los usando a up
ou chamar os comandos history
e editá-los enquanto a sessão estiver aberta (ao chamar o comando history
, as linhas de comandos modificados serão indicadas por um asterisco% código%). É somente quando você sai da sessão que os comandos da sessão são gravados "como estão" no arquivo *
, mantendo assim as últimas edições feitas antes de sair da sessão.
Veja também a resposta do falconer lá .