Некоторые случаи bash изменяют историю команд при повторном использовании и редактировании предыдущей команды, другие, по-видимому, этого не делают. Я искал и искал, но не могу найти ничего, что говорит о том, как предотвратить изменение команд в истории, когда они повторно используются и редактируются.
Есть вопросы, подобные этому , но, похоже, это говорит о том, как справиться с редактируемой историей. Я только недавно столкнулся с экземпляром bash, который редактирует историю при повторном использовании команды - все предыдущие оболочки bash, которые я использовал (насколько я заметил), были настроены так, чтобы не изменять историю при повторном использовании и отредактируйте команду. (Возможно, я просто не уделял должного внимания своей истории раковины в течение последних 15 лет или около того ...)
Так что это, пожалуй, лучший вопрос: могу ли я сказать bash НИКОГДА не изменять историю - и если да, то как?
set revert-all-at-newline on
в вопросе, который вы связываете, не решить вашу проблему? Можете показать как воспроизвести проблему? Обратите внимание, что вы также можете использовать zsh
для поведения более в соответствии с тем, что вы хотите.
history -p
нужно ли что-то делать для каждой команды, которую я хочу использовать повторно - это правильно? Если так, то это не совсем то, что я ищу. Как я уже упоминал, я использовал экземпляры bash, которые никогда не изменяют историю, когда команда повторно используется и редактируется.
revert-all-at-newline
это то, что мне нужно. Если я отредактирую команду и нажму CTRL-C, чтобы отменить ее, я также не хочу, чтобы это влияло на историю. Раньше мне никогда не приходилось настраивать bash, чтобы не изменять историю, что является одной из причин, по которой я запутался в том, почему иногда новая установка ведет себя так, а иногда - в другом. Кстати, в экземпляре, который не редактирует историю при повторном использовании команды, a bind -V | grep revert
указывает, что revert-all-at-newline
установлено значение «off».
bash
. Это все о readline. Существуют различные реализации readline
библиотеки, и она также имеет свой собственный набор настроек (их много) и собственный файл конфигурации. Я не уверен точно, является ли это настройкой или просто различием реализации, но вы должны искать в документации по readline, а не в bash.
history -p
для расширения истории, не затрагивая файл истории. Вы можете сделатьhistory -s
то же самое и добавить в историю без исполнения. Вы можете сделать,HISTIGNORE='start of a command I never want in history.*:command2.*'
чтобы сохранить некоторые команды из истории.