乐趣区

关于linux: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 结尾的命令

个别在 /etc/bashrc 中定义这些变量

> 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

记录到日志中,配合日志服务器,可把日志传送过来,安全性高

PROMPT_COMMANDbash 的环境变量,这个变量的中内容是作为一个一般的 bash 命令执行的,而且执行工夫是在 bash 显示 prompt(命令行前缀提示符) 之前。这个好了解,就是说每执行一个命令前,PROMPT_COMMAND外面先执行,而后是prompt(命令行前缀提示符)

原文链接:https://rumenz.com/rumenbiji/…
微信公众号: 入门小站

退出移动版