зберігати історію баш, регулярно


9

Я створив bash, щоб зберегти історію, у файл. Це робиться кожен раз, коли баш виходить [належним чином]. Оскільки іноді баш не виходить належним чином, історія втрачається.

Тож питання полягає в тому, чи можу я налаштувати баш для збереження історії більш регулярно?


Я запускаю Debian Gnu (версія 6, Squeeze) з ядром Linux.

версія bash: GNU bash, версія 4.1.5 (1) -випуск (i486-pc-linux-gnu)

Відповіді:


8

збережіть це у вашому bash_profile чи bashrc

shopt -s histappend

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"


Це все-таки правильна відповідь? У моїй системі є запис shopt -s histappendпід /etc/bash/bashrc. Але будь-який нечистий вихід запущених оболонок втрачає історію командного рядка.
Нікос Олександріс

-1

Можливо, ваш $ HISTFILE належить root. Якщо припустити, що ви використовуєте bash в якості оболонки для входу. Ось як це перевірити:

$ [ -z $HISTFILE ] && echo need to set HISTFILE || ls -l $HISTFILE
-rw------- 1 root root 36639 May 21 19:48 /home/joeb/.bash_history

Типовим для HISTFILE має бути ~ / .bash_history, якщо ви бачите помилку "потрібно встановити HISTFILE" або якщо $ HISTFILE не ~ / .bash_history, то слід перевірити ~ / .profile або ~ / .bash_profile або ~ /. bashrc, щоб переконатися, що він не встановлений або скинуто неправильно.

Зазвичай, він просто належить root, тому просто скиньте його:

$ chown joeb.joeb $HISTFILE
$ ll $HISTFILE
-rw------- 1 joeb joeb 36639 May 21 19:48 /home/joeb/.bash_history

Потім вийдіть із системи.

$ history

Потрібно показувати останній набір команд, введених до того, як файл належав root, а за ним команди, введені після зміни власності на файл.


3
Оскільки ОП говорить, що історія зберігається, коли баш нормально виходить, його питання не має нічого спільного з дозволами. Можливо, ваша відповідь все ж може бути корисною для того, хто має проблеми з історією баш.
Дмитро Григор’єв
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.