在/etc/bashrc配置history的变量:

#vim /etc/bashrc
export HISTTIMEFORMAT="%Y-%m-%d:"
#source /etc/bashrc
#history
1006 2021-05-19:vim /etc/bashrc
1007 2021-05-19:history
1008 2021-05-19:source /etc/bashrc
1009 2021-05-19:history

或者:

#vim /etc/bashrc
export HISTTIMEFORMAT="%F %T:"
#source /etc/bashrc
#history
1009 2021-05-19 22:35:24:history
1010 2021-05-19 22:36:40:vim /etc/bashrc
1011 2021-05-19 22:37:02:source /etc/bashrc
1012 2021-05-19 22:37:07:history

或者:

#vim /etc/bashrc
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S `whoami`"
#source /etc/bashrc
#history
1012 2021-05-19 22:37:07 root:history
1013 2021-05-19 22:37:41 root:vim /etc/bashrc
1014 2021-05-19 22:38:06 root:source /etc/bashrc
1015 2021-05-19 22:38:08 root:history

或者:

#vim /etc/bashrc
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S `who am i | awk '{print $1,$5}'`"
#source /etc/bashrc
#history
1021 2021-05-19 22:42:59 root (171.43.176.3):history
1022 2021-05-19 22:43:03 root (171.43.176.3):source /etc/bashrc
1023 2021-05-19 22:43:06 root (171.43.176.3):vim /etc/bashrc
1024 2021-05-19 22:43:19 root (171.43.176.3):source /etc/bashrc
1025 2021-05-19 22:43:21 root (171.43.176.3):history

history设置历史命令记录数

#vim /etc/bashrc # 保存1000条记录

export HISTSIZE=1000
#source /etc/bashrc

指定不同终端执行的命令都存储在同一个文件中

#vim /etc/bashrc
export HISTFILE=/var/log/.cmd_log
#source /etc/bashrc

忽略重复命令

#vim /etc/bashrc
export HISTCONTROL=ignoredups
#source /etc/bashrc

多个终端同时操作时,避免命令覆盖,采用追加方式

#shopt -s histappend

实时写入

实际上history的历史命令是写入.bash_history 中的。 ~/.bash_history 记录的是前一次登陆所运行过的命令,而本次登陆所运行的命令都被缓存在内存中,当退出系统后,本次的命令记忆才会记录到 .bash_history 中。

#PROMPT_COMMAND='history -a'

完全清除命令执行操作的历史记录

清理历史记录(只是清理了表层,可在.bash_history找到回)

清理记录历史的记录文件内容

#echo " " > .bash_history

关于history的小技巧

  • !number 执行第几条命令
  • !command 从最近的命令查到以command开头的命令执行
  • !! 执行上一条