Algumas instâncias do bash alteram o histórico de comandos quando você reutiliza e edita um comando anterior, outras aparentemente não. Estive pesquisando e pesquisando, mas não consigo encontrar nada que diga como impedir que os comandos no histórico sejam modificados quando reutilizados e editados.
Existem perguntas como essa , mas isso parece dizer como lidar com o histórico que está sendo editado. Recentemente, deparei-me com uma instância do bash que edita o histórico quando você reutiliza um comando - todos os shells anteriores do bash que usei foram (até onde eu notei) configurados para não alterar o histórico quando você reutiliza e edite um comando. (Talvez eu não tenha prestado a devida atenção ao meu histórico de conchas nos últimos 15 anos ou mais ...)
Então essa é provavelmente a melhor pergunta: Posso dizer ao bash NUNCA para modificar a história - e se sim, como?
set revert-all-at-newline on
pergunta que você vincula não resolve o seu problema? Você pode mostrar como reproduzir o problema? Observe que você também pode usar zsh
para um comportamento mais alinhado com o que deseja.
history -p
é algo que eu teria que fazer para cada comando que eu quero reutilizar - está certo? Nesse caso, não é exatamente o que estou procurando. Como mencionei, usei instâncias do bash que nunca modificam o histórico quando um comando é reutilizado e editado.
revert-all-at-newline
é exatamente o que eu preciso. Se eu editar um comando e pressionar CTRL-C para cancelá-lo, também não quero que isso afete o histórico. Eu nunca tive que configurar o bash para não modificar o histórico, o que é parte da razão pela qual estou confuso sobre o motivo pelo qual, às vezes, uma nova instalação se comporta de uma maneira e às vezes da outra. A propósito, em uma instância que não edita o histórico na reutilização de comandos, a bind -V | grep revert
indica que revert-all-at-newline
está definido como 'off'.
bash
. É tudo sobre readline. Existem diferentes implementações de readline
biblioteca e também possui seu próprio conjunto de configurações (MUITAS) e seu próprio arquivo de configuração. Não tenho certeza exatamente se essa é uma configuração ou simplesmente uma diferença de implementação, mas você deve procurar na documentação relacionada à linha de leitura, não no bash.
history -p
para fazer expansões do histórico sem afetar o arquivo do histórico. Você pode fazer ohistory -s
mesmo e anexar ao histórico sem execução. Você pode fazerHISTIGNORE='start of a command I never want in history.*:command2.*'
para manter certos comandos fora do histórico.