普通用户.bashrc(debian8)中有两行。
cat /home/debian8/.bashrc
export HISTTIMEFORMAT="%F %T `tty` "
export PROMPT_COMMAND="history -w"
第一次使用debian8用户登录并输入tty
pwd
,不要关闭它。
现在重新启动电脑并使用历史命令获取日志信息。
我得到的如下:
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
答案1
我的解决方案是实际的解决方法通过设置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"