linux之history命令

亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述linux之history命令相关的知识,希望能为你提供帮助。
命令语法

history [-c] [-d offset] [n] history -anrw [filename] history -ps arg [arg...]

命令功能
  • 显示历史列表。
  • 操作历史列表。
命令选项
-a将当前内存的历史记录追加(append)到历史文件中 -n从历史文件中读取当前内存记录里未读取的行输出 -r从历史文件中读取所有记录附加到内存历史记录 -w 从内存历史中读取数据覆盖到历史记录文件中,可以指定文件保存记录 -p将参数输出为列表,但不保存 -s将参数保存成命令历史记录中,可以以此伪造命令记录

命令参数
  • n:可选,只列出最近的 n 条记录。
  • filename:可选,表示历史文件;默认调用顺序为filename、环境变量HISTFILE~/.bash_history
返回值
使用 history 命令显示最近使用的 10 条历史命令
> history 10

清空历史记录
> history -c

通过修改环境变量来控制history的保存属性
  • $HISTSIZE历史记录最大条数
  • $HISTFILE历史记录存放文件
  • $HISTFILESIZE历史文件条目最大数
  • $HISTTIMEFORMAT="%F %T"在命令历史显示时输出时间等格式
  • $HISTIGNORE="str1; str2; str3*" 表示不记录str1、str2命令和以str3开头的命令
> vim /etc/bashrc export HISTTIMEFORMAT=\'%F %T \' #让历史命令记录操作时间 export HISTSIZE=1000000 #设置保存历史命令条数 export HISTFILESIZE=1000000 #设置保存历史命令的文件大小 shopt -s histappend #多个终端同时操作时,避免命令覆盖,采用追加方式 PROMPT_COMMAND=\'history -a\' #实时记录历史命令,防止丢失> source /etc/bashrc

把操作过的命令保存到文件
方法1
vim /etc/bashrc export HISTORY_FILE=/var/.history/date +\'%y-%m-%d\'.log #自定义历史命令保存文件 export PROMPT_COMMAND=\' { date "+%Y-%m-%d %T - USER:$USER IP:$SSH_CLIENT PS:$SSH_TTY - $(history 1 | { read x cmd; echo "$cmd"; })"; } > > $HISTORY_FILE\'

方法2
> vim /etc/bashrc export PROMPT_COMMAND=\'history -a { command=$(history 1 | { read x y; echo $y; } ); logger -p local1.notice -t bash -i "user=$USER,ppid=$PPID,from=$SSH_CLIENT,pwd=$PWD,command:$command " }\'> vim /etc/syslog.conf local1.notice /var/log/cmd.log

【linux之history命令】原文链接:https://rumenz.com/rumenbiji/linux-history.html
微信公众号:入门小站

    推荐阅读