Обработка истории bash с несколькими терминалами

Я использую в основном Терминатора, и он'ы, как правило, открыт с 3 сплит терминалов Windows. Я также использую терминал GNOME по разным причинам. Я'м удивлены, как история Баш обрабатываются в этом случае, как я иногда скучаю ранее выданные команды при запуске "история"

Например, мой запрос показывает текущую Баш истории строки (\!) и если я запускаю Терминатор с 3 сплит терминалов Windows я вам же линия истории (пусть's отмечают 100) на всех терминалах. Какие истории будут сохранены?

Также запускаем терминал GNOME после использования Терминатор я Линия 100 при запуске независимо от всех команд, прежде чем в Терминаторе

Комментарии к вопросу (1)
Решение

На сессии bash, который сохраняется на терминале, который закрыл последний. Если вы хотите сохранить команды для каждой сессии, вы можете использовать трюк объяснил здесь.

экспорт PROMPT_COMMAND='история- '

цитировать страницу: “если установлено, то значение выполняется как команда до выпуска каждый основной запрос.”

так что каждый раз, когда моя команда не будет завершена, он добавляет неписаный элемент истории ~/.bash_history перед отображением подсказки (только $ПС1) снова.

так что после ввода этой линии в `/etc/Баш.bashrc и я не считаю себя изобретать колеса или потерять ценные секунды повторно набрав вещи просто потому, что я ленивый с моей терминалов.

В любом случае, вы'll необходимо учитывать, что команды из разных сессий будут смешаны в файле истории, поэтому он выиграл'т быть так просто, чтобы прочитать его позже.

См. также:

Комментарии (6)

После нескольких чтений человек Баш, я использую отдельные файлы истории для каждого корпуса. Я сделал `команды mkdir -м 0700 ~/.история потом добавил

[[ -d ~/.history ]] || mkdir --mode=0700 ~/.history
[[ -d ~/.history ]] && chmod 0700 ~/.history
HISTFILE=~/.history/history.$(date +%y%b%d-%H%M%S).$$
# close any old history file by zeroing HISTFILESIZE  
HISTFILESIZE=0  
# then set HISTFILESIZE to a large value
HISTFILESIZE=4096  
HISTSIZE=4096  

в моем~/.bashrc следующее`. Каждый сейчас и потом, я помню до дю-СК .истории и очистить его. Это's хороший, чтобы иметь каждую команду я'вэ набирается сохранили для меня.

Я просто использовал, чтобы увидеть, что я'd и занимаюсь в последнее время: резать -Ф1 " по-д " и .история/* | СНП | тр -з |сорт-н-р |меньше или резать -Ф1-2 " по-д " и .история/* | СНП | тр -з |сорт-н-р |меньше (в том числе 1-го аргумента, например, судо горы в цепи рода).

Комментарии (7)

Чтобы показать "историю" из всех терминалах:

Добавить экспорт PROMPT_COMMAND='истории; История -Р' для ваших .файл bashrc.

Источник: http://northernmost.org/blog/flush-bash_history-after-each-command


Комментарии (3)

См. также " всохранении стойких историей в bash" и другой вариант. Это буровые установки ваш запрос послать всех команд, когда-либо введенные в любой терминал в "Мои постоянные истории с" файл (наряду с тем, что'ов обычно делается для обычного.история`).

Комментарии (2)