В обычном пользовательском .bashrc (debian8) есть две строки.
cat /home/debian8/.bashrc
export HISTTIMEFORMAT="%F %T `tty` "
export PROMPT_COMMAND="history -w"
При первом входе в систему с пользователем debian8 и вводе tty
pwd
, чтобы не закрывать его.
При втором входе в систему с пользователем debian8 и вводе tty
ls
.
Теперь перезагрузим компьютер и получим информацию журнала с помощью команды history.
Я получаю следующее:
debian8@hwy:~$ history
1 2017-03-02 22:48:25 /dev/pts/0 tty
2 2017-03-02 22:48:28 /dev/pts/0 pwd
3 2017-03-02 22:48:38 /dev/pts/0 tty
4 2017-03-02 22:48:40 /dev/pts/0 ls
5 2017-03-02 22:48:38 /dev/pts/0 tty
6 2017-03-02 22:48:40 /dev/pts/0 ls
7 2017-03-02 22:48:25 /dev/pts/0 tty
8 2017-03-02 22:48:28 /dev/pts/0 pwd
9 2017-03-02 22:48:55 /dev/pts/0 history
Почему не могу получить следующую информацию? Как получить следующую информацию журнала?
debian8@hwy:~$ history
1 2017-03-02 22:48:25 /dev/pts/0 tty
2 2017-03-02 22:48:28 /dev/pts/0 pwd
3 2017-03-02 22:48:38 /dev/pts/1 tty
4 2017-03-02 22:48:40 /dev/pts/1 ls
5 2017-03-02 22:48:55 /dev/pts/0 history
Чтобы заменить
export HISTTIMEFORMAT="%F %T `tty` "
export PROMPT_COMMAND="history -w"
на
export HISTTIMEFORMAT="%F %T `tty` "
export PROMPT_COMMAND="history -a"
, а не '% F% T tty
' .
Я получаю
debian8@hwy:~$ history
1 2017-03-02 22:48:25 /dev/pts/0 tty
2 2017-03-02 22:48:28 /dev/pts/0 pwd
3 2017-03-02 22:48:38 /dev/pts/0 tty
4 2017-03-02 22:48:40 /dev/pts/0 ls
5 2017-03-02 22:48:55 /dev/pts/0 history
Нет возможности получить такую информацию, как следующая?
debian8@hwy:~$ history
1 2017-03-02 22:48:25 /dev/pts/0 tty
2 2017-03-02 22:48:28 /dev/pts/0 pwd
3 2017-03-02 22:48:38 /dev/pts/1 tty
4 2017-03-02 22:48:40 /dev/pts/1 ls
5 2017-03-02 22:48:55 /dev/pts/0 history
Мое решение - это фактическое обходное решение путем установки PROMPT_COMMAND
переменной окружения в ~/.bash_profile
или в ~/.bashrc
, которая создает дополнительный журнал.
Файл ~/.bash_history
хранит только временную метку и команду, подобную этой:
#1488631365
ls -lah
#1488631367
history
#1488631380
cat ~/.bash_history
переменная окружения HISTTIMEFORMAT
- это только установка того, как #1488631380
должно быть переведено/отображено.
Ниже будет создан сегодняшний лог-файл - ~/bash-history-2017-03-04.log
export PROMPT_COMMAND='echo -e "$(tty)\t$(history 1)" >> ~/bash-history-$(date "+%Y-%m-%d").log'
пример вывода (в зависимости от того, как настроен HISTTIMEFORMAT
)
/dev/pts/1 541 [04/03 14:02:37] tty
/dev/pts/1 542 [04/03 14:02:45] echo "hi from tty1"
/dev/pts/0 523 [04/03 13:55:07] cat ~/.bash_history
/dev/pts/0 524 [04/03 14:02:53] tty
/dev/pts/0 525 [04/03 14:02:58] echo "hi from tty 0"