Я хочу, чтобы мой .bash_history
файл был неограниченным. Например, я всегда могу вернуться и посмотреть, как я что-то построил / сконфигурировал, или какова была эта изящная команда, или как какая-то команда сломала что-то несколько недель назад. Как мне изменить этот параметр?
350
Ответы:
Установите
HISTSIZE
иHISTFILESIZE
в .bashrc пустую строку:В Bash 4.3 и позже вы также можете использовать
HISTSIZE=-1 HISTFILESIZE=-1
:источник
HISTSIZE= HISTFILESIZE=
приводит к полному отключению истории bash, по крайней мере, для меня.HISTSIZE=-1 HISTFILESIZE=-1
отключила мою историю, в то время какHISTSIZE= HISTFILESIZE=
сделала трюк. CentOS 7 здесь.HISTSIZE= HISTFILESIZE=
выexport HISTSIZE=
export HISTFILESIZE=
После многих больших, уродливых итераций и странных крайних случаев за эти годы у меня теперь есть краткий раздел моего .bashrc, посвященный этому.
Во-первых, вы должны закомментировать или удалить этот раздел вашего .bashrc (по умолчанию для Ubuntu). Если вы этого не сделаете, то определенные среды (например, запущенные
screen
сеансы) будут все еще обрезать вашу историю:Во-вторых, добавьте это в конец вашего .bashrc:
Примечание: каждая команда пишется сразу после запуска, поэтому, если вы случайно вставите пароль, вы не сможете просто «убить -9 %%», чтобы избежать записи в историю, вам придется удалить его вручную.
Также обратите внимание, что каждый сеанс bash загружает полный файл истории в память, но даже если ваш файл истории увеличивается до 10 МБ (что займет много времени), вы не заметите большого влияния на время запуска bash.
источник
HISTFILESIZE=
иHISTSIZE=
пустым вместо -1, и убедитесь , что у вас нет никаких других заявлений тех Params в .bashrc или .bash_profile или .profile..bashrc
меня была эта настройка после другого файла, загруженного .bashrc ..., теперь работает! Спасибо!cat ~/.bash_history >>~/.bash_eternal_history
HISTFILESIZE
(и , возможноHISTSIZE
) будет принимать непосредственное влияние не может быть переоценена .Как упомянул выше Йорг Бейер
HISTSIZE
иHISTFILESIZE
являются ключевыми.Кроме того, вы обязательно должны проверить переменную среды
HISTCONTROL
, которая позволяет вам делать классные вещи, такие как не хранить дублирующиеся команды истории (HISTCONTROL=erasedups
). Нет смысла иметь неограниченную историю, если вам приходится просматривать сотни строкcd ..
или что-то подобное.Ссылки: здесь и работа с bash history . Часто задаваемые вопросы по bash Variable также стоит посмотреть .
источник
Ctrl-r
SomecharsCtrl-o
Ctrl-o
Ctrl-o
Ctrl-o
. Вот почему я храню дубликаты в истории.Ctrl-o
?Ctrl-o
запускает команду в командной строке и сразу показывает команду сразу после предыдущей в истории. Одним из преимуществ является то, что после использованияCtrl-r
для поиска старой команды (возможно, используя стрелки вверх и вниз для перехода к соседним командам в истории), достаточно удерживатьCtrl
нажатой и нажиматьo
несколько раз, чтобы снова запустить предыдущую серию команд, даже в бесконечном цикле если вы хотите. Смотрите также GNU Readline - ВикипедияЗдесь есть (по крайней мере) два релевантных варианта env:
Я думаю, что мы можем согласиться с тем, что термин « неограниченный» часто совпадает с очень большим (или у вас есть неограниченное хранилище файлов?). Так что просто установите значения очень большие.
источник