linux的bash内部命令history就可以显示命令行的命令历史,默认环境执行 history
命令后,通常只会显示已执行命令的序号和命令本身。如果想要查看命令历史的时间戳,那么可以执行:临时显示:
export HISTTIMEFORMAT='%F %T '
history | more
1 2019-03-05 19:02:39 service network restart
2 2019-03-05 19:02:39 exit3 2019-03-05 19:02:39 id永久显示:
需要编辑配置文件才能生效
vim ~/.bashrc
添加上“export HISTTIMEFORMAT='%F %T'”
再
source ~/.bashrc
使之立即生效。
本例中设置变量名为Display date, 并添加上“export HISTTIMEFORMAT='%F %T '”
这样显示的格式就变成,序号 - 时间 - 命令行。history的其他的一些基本功能:1、使用 HISTSIZE 控制历史命令记录的总行数将下面两行内容追加到 .bash_profile 文件并重新登录 bash shell,命令历史的记录数将变成 450条:# vi ~/.bash_profileHISTSIZE=450HISTFILESIZE=4502、使用 HISTFILE 更改历史文件名称默认情况下,命令历史存储在 ~/.bash_history 文件中。添加下列内容到 .bash_profile 文件并重新登录bash shell,将使用 .commandline_warrior 来存储命令历史:# vi ~/.bash_profileHISTFILE=/root/.commandline_warrior3、使用 HISTCONTROL 从命令历史中剔除连续重复的条目在下面的例子中,pwd 命令被连续执行了三次。执行 history 后会看到三条重复的条目。要剔除这些重复的条目,可以将HISTCONTROL 设置为 ignoredups:# export HISTCONTROL=ignoredups4、使用 HISTCONTROL 清除整个命令历史中的重复条目上例中的 ignoredups 只能剔除连续的重复条目。要清除整个命令历史中的重复条目,可以将 HISTCONTROL 设置成erasedups:# export HISTCONTROL=erasedups5、使用 -c 选项清除所有的命令历史如果你想清除所有的命令历史,可以执行:# history -c6、使用 HISTIGNORE 忽略历史中的特定命令下面的例子,将忽略 pwd、ls、ls -ltr 等命令:# export HISTIGNORE=”pwd:ls:ls -ltr:”附:history的语法
history(选项)(参数)
-N: 显示历史记录中最近的N个记录;
-c:清空当前历史命令;-a:将历史命令缓冲区中命令写入历史命令文件中;-r:将历史命令文件中的命令读入当前历史命令缓冲区;-w:将当前历史命令缓冲区命令写入历史命令文件中;-d<offset>:删除历史记录中第offset个命令-n<filename>:读取指定文件history 5 #查看历史执行记录后 5 条