Я работал с несколькими открытыми терминалами. По какой-то причине мой компьютер перезагрузился, и после того, как я выполнил команду 'history', я мог видеть только список команд, связанных с конкретным терминалом.

Есть ли способ получить все истории всех открытых терминалов.

1 ответ1

0

Вы не можете получить другие истории обратно. Все ваши терминалы записали в ваш файл истории, и, похоже, у вас либо слишком мало установленного значения HISTFILESIZE либо у вас не установлено значение shopt -s histappend для добавления в HISTFILE вместо его перезаписи. В любом случае каждый терминал записывал в HISTFILE по порядку, и список команд, которые вы оставили, поступает из последнего терминала для этого.

Если вы хотите избежать этого в будущем, вы можете установить (в вашем .bashrc)

shopt -s histappend #append to history file instead of overwriting
HISTFILESIZE=10000 #increase number of stored commands in HISTFILE

Это сохранит все ваши команды, сгруппированные по терминальному сеансу при перезапуске. Если вы хотите, чтобы они были упорядочены по времени, вы также можете использовать это:

#logs every command as it is written to the history file, 
#and updates local terminal history to match
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .