История Баш
Любые новые команды, которые были введены в активном терминале, могут быть добавлены к .bash_history
файл с помощью следующей команды:
history -a
Единственная хитрая концепция, которую нужно понять, это то, что каждый терминал имеет свою собственную историю bash. список (загружается из .bash_history
файл при открытии терминала)
Если вы хотите извлечь любую новую историю, которая была написана другими терминалами во время жизни этого активного терминала, вы можете добавить содержимое .bash_history
файл к активной истории Bash список
history -c;history -r
Это очистит текущий список истории, поэтому мы не получим повторный список и добавим файл истории в (теперь пустой) список.
Решение
Вы можете использовать переменную bash PROMPT_COMMAND
подавать команду с каждым новым приглашением (каждый раз, когда вы нажимаете ввод в терминале)
export PROMPT_COMMAND='history -a'
Это будет записывать каждую команду в историю файл как это оформлено.
Результат
Теперь любой новый терминал, который вы открываете, будет иметь историю других терминалов без необходимости exit
эти другие терминалы. Это мой любимый рабочий процесс.
Больше точности
Допустим (по какой-то причине) у вас есть два терминала, которые вы используете одновременно, и вы хотите, чтобы история отражалась между ними для каждой новой команды.
export PROMPT_COMMAND='history -a;history -c;history -r'
Основным недостатком здесь является то, что вам может потребоваться нажать Enter, чтобы повторно запустить PROMPT_COMMAND, чтобы получить последнюю историю из противоположного терминала.
Вы можете понять, почему этот более точный вариант, вероятно, излишний, но он подходит для этого варианта использования.