Возможное дублирование:
можно ли объединить файлы истории в bash?
Я использую Ubuntu Server 9.10, и я хотел бы иметь возможность просматривать историю моего bash для более чем одного сеанса терминала. Т.е. мои последние 200 команд или около того, даже если я вышел из системы между ними.
Когда я использую, history
я просто вижу все команды из моего реального сеанса терминала. Как я могу увидеть больше истории команд из Bash? Есть ли какие-то особые настройки для bash, которые я должен изменить по сравнению со значениями по умолчанию в Ubuntu?
У меня нет ~/.bash_history
файла. Но у меня есть ~/.bashrc
с HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
иHISTCONTROL=ignoreboth
echo $HISTFILE
/home/sanoj/.bash_history
echo $HISTSIZE
500
echo $HISTFILESIZE
500
echo $HISTCONTROL
ignoreboth
ОБНОВЛЕНИЕ: я сейчас пробую Ubuntu Server 10.10 в VirtualBox. Если я просто отключу VirtualBox без команды выключения, то при следующей загрузке команды из последнего сеанса не сохранятся в файле истории.
Команды сохраняются, только если я выключаю машину с помощью команды выключения. Например, отключение -P 0.
Это должно быть причиной моей проблемы. Поэтому я должен выяснить, как чаще сохранять историю команд. Например, после каждой команды.
источник
echo $HISTSIZE
иecho $HISTFILESIZE
? У My (Ubuntu)~/.bashrc
есть те жеHISTCONTROL
строки, что и у вас, у которых мозг умер, так как второй переопределяет первый, а значения должны быть разделены двоеточиями, а не запятыми. Если вы делаетеset -o
, это показывает строку, которая говорит "история на"?500
сecho
обеими переменными иhistory on
Ответы:
Вы можете использовать
немедленно добавить историю в памяти в файл истории. Одна терминальная сессия не может видеть другую, пока это не будет сделано или другой не завершен.
Вы можете использовать
чтобы увидеть это количество записей.
Кроме того, чтобы
HISTSIZE
увидеть запись в справочной странице Bash относительноHISTFILESIZE
.источник
history -a´ doesn't do anything for me, and not
история 200 | less`, но я обновил свой вопрос, добавив больше информации. Спасибо, в любом случае.После выхода история добавляется в файл
~/.bash_history
. Загляни туда.По умолчанию он запомнит ваши последние 500 команд. Если вы хотите сохранить больше, установите переменную
HISTSIZE
в~/.bashrc
.Я также добавить
ignoredups
кHISTCONTROL
(сHISTCONTROL=$HISTCONTROL:ignoredup
). Это позволяет дублировать последовательные команды для сохранения только один раз.Посмотрите на
man 1 bash
то, что еще вы можете настроиться на историю.источник
~/bash_history
файл, и нетHISTSIZE
в~/.bashrc
но у меня естьHISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
иHISTCONTROL=ignoreboth
и это Ubuntu Server, если этот вопрос..
в~/.bash_history
. И дляHISTSIZE
этого будет просто использоваться значение по умолчанию 500 записей.~/.bash_history
файла в моей системе. Я раньшеls -a
проверял.$HISTFILE
переменной, поэтомуecho $HISTFILE
скажу вам, где искать.echo $HISTFILE
дает мне/home/sanoj/.bash_history
- странно. Может быть, это не активировано по соображениям безопасности?История bash обычно загружается, когда запускается оболочка, и сохраняется при нормальном выходе. Вы можете использовать
history -a
иhistory -n
для переопределения этого, но не автоматически, если вы не злоупотребляете$PROMPT_COMMAND
или что-то подобное.источник
Саной, это действительно должно "просто работать"; Я не думаю, что должно быть что-то особенное, что вам нужно сделать, чтобы это сделать. Похоже, что-то мешает нормальному ходу событий.
Я бы посмотрел в / etc / profile, / etc / bashrc (или, возможно, /etc/bash.bashrc в соответствии с некоторыми источниками), ~ / .bash_profile, ~ / .bashrc, ~ / .bash_login, ~ / .bash_logout, чтобы увидеть если есть что-то, что может повлиять на историю (возможно,
grep -i hist
на каждый из вышеуказанных файлов).... В частности, мне интересно, есть ли в ~ / .bash_logout что-то, что удаляет файл.
В качестве альтернативы, возможно, что-то переопределяет
$HOME
переменную?источник