Дізнавшись, що це shopt -s histappend
означає , це здається дуже розумним налаштуванням, і я здивований, що це не за замовчуванням. Чому хтось хоче стерти свою історію на кожному виході з оболонки?
Дізнавшись, що це shopt -s histappend
означає , це здається дуже розумним налаштуванням, і я здивований, що це не за замовчуванням. Чому хтось хоче стерти свою історію на кожному виході з оболонки?
Відповіді:
Ну а коли histappend
не встановлено, це не означає, що історія стирається при кожному виході оболонки. Без histappend
bash читає історфіл при запуску в пам'ять - під час роботи додаються нові записи - і при виході з оболонки останні файли HISTSIZE записуються у файл історії без додавання, тобто замінюючи попередній вміст.
Наприклад, якщо історіал містить 400 записів, під час виконання bash додається 10 нових записів - hISTize встановлюється в 500, то новий histfile містить 410 записів.
Така поведінка є проблематичною лише в тому випадку, якщо ви використовуєте більше екземплярів bash паралельно. У цьому випадку файл історії містить лише вміст останньої вихідної оболонки.
Незалежно від цього: Є деякі люди, які хочуть стерти свою історію при виході з оболонки через причини конфіденційності.
histappend
має будь-яке відношення до того, чи досягла root
історія до диска? Знову ж, це впливає лише на те, що написано, а не якщо .
histappend
а також HISTCONTROL=ignoredups:erasedups:ignorespace
здається хорошим за замовчуванням для більшості людей.
histappend
ефективний безглуздий, якщо я маю HISTFILESIZE=
і HISTSIZE=
для нескінченної історії?
Для історичної сумісності, мабуть. histappend
Варіант не існував до Баша 2.0.
histappend
.
bash
"чистий" чи "дистрибутив".bashrc
. для колишнього, @Gilles, ймовірно, правильний. в останньому сенсі,-s histappend
це по умовчанням на, наприклад, Debian, починаючи з 2008 року: bugs.debian.org/cgi-bin/bugreport.cgi?bug=452459