Bash :история теряется после сброса ssh-подключения пиром :как сохранить историю?

Журналы изменений основной ветки не импортируются специально, они обрабатываются как файл в исходном коде основной ветки. Существует помощник debhelper, dh_installchangelogs, который обрабатывает специфичные для Debian -журналы изменений и журналы изменений вышестоящего уровня. Конечно, сопровождающие пакетов не должны использовать это, они обычно обрабатывают журналы изменений другими способами.

Пакеты всегда создаются изолированно, они не могут сравнивать файлы с предыдущей версией.

0
10.12.2020, 21:36
1 ответ

Вы можете использовать специальную переменную PROMPT_COMMANDдля запуска history -aкаждый раз, когда вы вводите команду.

PROMPT_COMMAND="${PROMPT_COMMAND:+${PROMPT_COMMAND/%;};}history -a"

Это приведет к перепутыванию команд из параллельных сеансов, что может привести к запутанной прокрутке.

Чтобы преодолеть это, вот немного более сложная версия, которая должна создавать файл с отметками времени, tty и pid в вашем домашнем каталоге для каждого сеанса.

SESSION_HISTORY_FILE="${HOME}/bash_history_$(date -d "$(ps -olstart= -p$$ | awk '{print $2,$3,$5,$4}')" +%F_%H-%M-%S)$(tty | tr / _)_$$"
PROMPT_COMMAND="${PROMPT_COMMAND:+${PROMPT_COMMAND/%;};}history -a '${SESSION_HISTORY_FILE}'"

Идея состоит в том, чтобы создать правильно контекстуальную запись выданных команд.

Вы не увидите их при прокрутке назад для завершенного сеанса (, если не добавите;history -a).

3
18.03.2021, 22:43

Теги

Похожие вопросы