Pages

Wednesday, 28 October 2020

history命令详解

 history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。

该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。

历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。

Bash shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样能使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“.bash_history”文件。

Bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除:
第一步:
“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行确定所有用户的“.bash_history”文件中能保存的旧命令条数。强烈建议把“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行的值设为一个较小的数,比如30。编辑profile文件(vi/etc/profile),把下面这行改为:
HISTFILESIZE=30
HISTSIZE=30
这表示每个用户的“.bash_history”文件只能保存30条旧命令。
第二步:
网管还应该在"/etc/skel/.bash_logout" 文件中添加下面这行"rm -f $HOME/.bash_history" 。这样,当用户每次注销时,“.bash_history”文件都会被删除.

语法

history(选项)(参数)

选项

-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中。

参数

n:打印最近的n条历史命令。

实例
使用history命令显示最近使用的10条历史命令,输入如下命令:

[root@localhost ~]# history 10
92 ls
93 cd ..
94 ls
95 exit
96 ls -a
97 cd .ssh/
98 ls
99 cat known_hosts
100 exit
101 history 10

No comments:

Post a Comment