History用法详解


作用:显示或操作历史列表

用法:history[-c] [-d offset]

      history -anrw[filename]

      history -ps arg[arg...]

参数选项:

 

-c:清空历史记录

    清空的是内存中的历史,文件中历史还存在,重新登录后还能看到历史记录。

    要彻底清除历史记录有两种方法:

    1.清除所有用户的历史记录:在/etc/profile文件中加入HISTSIZE=0

  清除单个用户的历史文件:在该用户家目录下的.bash_profile文件中加

  入HISTSIZE=0.

2.删除存放历史记录的文件,再执行history -c命令

 

-d:删除历史中指定的命令

   history -d 3(删除第三条命令)

 

history+数字

   显示对应数量的历史命令

 

-a

  将内存中新添加的命令写入文档(.bash_history)中

 

-n:读历史文件中未读到的行到历史列表

  开启两个终端,将其中一个终端的历史列表写入(-a)历史文件(.bash_history)

  中,另一个终端执行history -n命令即可将命令历史显示在其终端上的历

  史列表中

 

-r:

读历史文件附加到历史列表

 

-w:

   保存历史列表到文件(若不存在文件,该文件将被创建;若文件有内容,

   内容将被覆盖)

 

-p:鸡肋功能!

   [root@localhost testdir]# history -p cat

   cat

 

-s:

   在历史中伪造命令,并不执行

命令历史相关环境变量

注:以下命令需退出系统重新登录后生效,直接键入命令退出系统后作用消失,写入.bash_profile永久有效

 

HISTSIZE:命令历史记录的条数

 

[root@localhost ~]# echo $HISTSIZE

1000

   

其定义文件在/etc/profile,输入

~]# nano /etc/profile

在其加入HISTSIZE=XXX,即可定义历史记录的条数

 

HISTFILE:指定历史文件,默认为/root/.bash_history

   

[root@localhost ~]# echo $HISTFILE

/root/.bash_history

 

可以在.bash_profile中修改HISTFILE的历史文件路径

 

HISTFILESIZE:命令历史文件记录历史的条数,默认为1000,可在.bash_profile中修改

[root@localhost ~]# echo $HISTFILESIZE

1000

在其加入HISTSIZE=XXX,即可定义命令历史文件记录的条数

 

HISTTIMEFORMAT:显示历史列表时间(初始值为空)

可nano编辑.bash_profile内容

加入HISTTIMEFORMAT=”%F%T “,其历史列表中就会显示时间

,加显主机名

 

HISTIGNORE:忽略显示历史命令

HISTIGNORE=”str1;srt2;……”

停止执行此命令:HISTIGNORE=” ”

 

控制命令历史记录方式

HISTCONTROL=ignoredups,忽略重复历史命令(连续相同)

HISTCONTROL=ignorespace,忽略空格开头的历史命令

HISTCONTROL=ignoreboth,上两个的合并

HISTCONTROL=erasedups,删除重复命令


转载于:https://blog.51cto.com/limuzi/1831813