Я хочу, щоб мій .bash_historyфайл був необмеженим. Наприклад, я завжди можу повернутися назад і побачити, як я щось створив / сконфігурував, або яка була ця витончена команда, або як якась команда зламала щось тижні тому. Як змінити цей параметр?
Я хочу, щоб мій .bash_historyфайл був необмеженим. Наприклад, я завжди можу повернутися назад і побачити, як я щось створив / сконфігурував, або яка була ця витончена команда, або як якась команда зламала щось тижні тому. Як змінити цей параметр?
Відповіді:
Встановіть HISTSIZEі HISTFILESIZE.bashrc у порожній рядок:
HISTSIZE=
HISTFILESIZE=
У bash 4.3 та пізніших версіях ви також можете використовувати HISTSIZE=-1 HISTFILESIZE=-1:
n. Setting HISTSIZE to a value less than zero causes the history list to be
unlimited (setting it 0 zero disables the history list).
o. Setting HISTFILESIZE to a value less than zero causes the history file size
to be unlimited (setting it to 0 causes the history file to be truncated
to zero size).
HISTSIZE= HISTFILESIZE=результатів повністю відключить історію баш, принаймні для мене.
HISTSIZE=-1 HISTFILESIZE=-1відключило мою історію, а HISTSIZE= HISTFILESIZE=трюк. Тут CentOS 7.
HISTSIZE= HISTFILESIZE=слідexport HISTSIZE= export HISTFILESIZE=
Після багатьох великих, потворних ітерацій та дивних випадків краю протягом багатьох років я маю стислий розділ свого .bashrc, присвячений цьому.
По-перше, ви повинні прокоментувати або видалити цей розділ свого .bashrc (за замовчуванням для Ubuntu). Якщо ви цього не зробите, то певні середовища (наприклад, запущені screenсеанси) все одно будуть скорочувати вашу історію:
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
# HISTSIZE=1000
# HISTFILESIZE=2000
По-друге, додайте це внизу вашого .bashrc:
# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
Примітка. Кожна команда пишеться відразу після її запуску, тому якщо ви випадково вставите пароль, ви не можете просто "вбити -9 %%", щоб уникнути написання історії, вам потрібно буде видалити його вручну.
Також зауважте, що кожен баш-сеанс буде завантажувати повний файл історії в пам'ять, але навіть якщо ваш файл історії зросте до 10 Мб (що займе багато часу), ви не помітите особливого впливу на час запуску вашої програми.
HISTFILESIZE=та HISTSIZE=порожнє замість -1 та переконайтесь, що у вас немає інших декларацій цих парам у .bashrc або .bash_profile чи .profile.
.bashrcмене було це налаштування після іншого файлу, завантаженого .bashrc ..., зараз працює! Дякую!
cat ~/.bash_history >>~/.bash_eternal_history
HISTFILESIZE(і можливо HISTSIZE) набуде негайного ефекту, неможливо переоцінити .
Як Йорг Бейер згадувалося вище, HISTSIZEі HISTFILESIZEє ключовими.
Крім того, ви обов'язково повинні перевірити змінну навколишнього середовища HISTCONTROL, яка дозволяє робити цікаві речі, такі як не зберігати дублікати команд історії ( HISTCONTROL=erasedups). Немає сенсу мати необмежену історію, якщо вам доведеться переглядати сотні рядків cd ..чи подібних.
Посилання: тут , і робота з історією баш . Також варто переглянути перегляд "bash Variable FAQ" .
Ctrl-rдеякі Ctrl-o Ctrl-o Ctrl-o Ctrl-o. Тому я зберігаю дублікати в історії.
Ctrl-o?
Ctrl-oзапускає команду підказки та показує команду відразу після попередньої в історії. Одна перевага полягає в тому, що після використання Ctrl-rстарої команди (можливо, використовуючи стрілку вгору та вниз для переходу до сусідніх команд історії), достатньо тримати Ctrlнатиснуті та натиснуті oкілька разів, щоб знову запустити попередню серію команд, навіть у нескінченному циклі якщо хочете. Дивіться також GNU Readline - Wikipedia
Тут є (принаймні) дві відповідні програми:
Я думаю, що ми можемо погодитись, що термін необмежений часто такий самий, як дуже великий (чи у вас є необмежене зберігання файлів?). Тому просто встановіть величини дуже великими.