Bash的应用
二、命令历史记录
Bash支持命令历史记录,这意味着Bash保留了一定数目的、先前在Bash中输入过的命令。这个数目取决于一个名为HISTSIZE的变量。
Bash将输入的命令文本保存在一个历史列表中。当用户登录后,历史列表将据一个历史文件来初始化。历史文件的文件名由名为HISTFILE的Bash变量指定,历史文件的默认名字为.bash_history。这个文件通常在用户目录中(注意该文件的文件名以“.”开头,这意味着它是隐含的,仅当用-a或-A参数的ls命令列目录时才可见)。
Bash提供了几种方法来调用命令历史记录。使用历史记录列表最简单的方法是用上方向键。按一下上方向键后,最后键入的命令将出现在命令行上,再按一下则倒数第二条命令会出现,以此类推。若上翻多了的话也可用向下的方向键来下翻。
另一个使用命令历史记录的方法是用Shell的内部命令history命令来显示和编辑历史命令。history命令有2种不同的使用方法。
格式一:history [n]
功能:查看Shell命令的历史记录。参数n的作用是仅仅列出最后n个历史命令。当不使用命令参数时,整个历史记录的内容都将显示出来。
如:1.显示最近执行过的3个历史命令。
[root@localhost ~]# history 3
1 ls -a
2 cd /home/user01
3 mkdir test
在每一个执行过的Shell命令行前均有一个编号,代表其在历史列表中的序号。若想执行其中某一条命令,可采用“!序号”的格式。
2.执行序号为1的命令。
[root@localhost ~]# ! 1
ls -a
格式二:history [-r | w | a | n] [文件名]
功能:修改命令历史列表文件的内容。
选项说明:
-r 读出命令历史列表文件的内容,且将它们当作当前的命令历史列表。
-w 将当前的命令历史记录写入文件,并覆盖文件原来的内容。
-a 将当前的命令历史记录追加到文件尾部。
-n[文件名]读取文件中的内容,并加入到当前历史命令列表中。若没有指定文件名,history命令将用变量HISTFILE的值来代替。