linux查看历史命令可以使用history命令,该命令可以列出所有已键入的命令。
这个命令的作用可以让用户或其他有权限人员,进行审计,查看已录入的命令。
用户所键入的命令作为应保存的信息将记录在文件中,这个文件保存就是家目录中的一个隐藏文件~/.bash_history。
了解历史命令存放的位置,对后面的各项讨论十分重要。
我们对于前面用过的几个命令,可以通过方向键的上下按键来查看。这个很方便,但对于更前面的命令,将会加大难度,不好找到。只有用历史命令才便捷。
在终端中输入以下命令查看所有命令:
history
查看历史命令的帮助信息,可以更多了解选项与参数。
从上述信息中,我们介绍几个重要的历史命令操作。
一、保存历史命令
历史命令的保存有两种情况:bash自动保存:
当使用过当前的bash时,系统会自动保存历史命令在家目录的隐藏文件中。自动退出与强制退出都是如此何存。
当我们认为有必须及时保存历史命令时,可以执行如下命令:
history –w
w 是write的简写。命令的功能是保存当前的历史命令到默认文件中。
当我们需要保存历史命令到另外文件时,也可以重定向:
history > ./history.txt
二、清除历史命令
如果在服务器中干了不好的事情,可以通过“history -c”命令进行清除,那么其他人登录终端时就无法查看历史操作命令了。
但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_history文件中的记录。
我们刚才查看当前历史命令为13条,我们执行清除历史命令,再查看:
history -c
按向上方向键,没有反应。执行history命令,也没有内容。
三、删除某一条历史命令
我们重新执行几条命令。
查看文件中保存的原来的历史命令(打开bash时,已存在的历史命令),在执行history –c后,仍然存在。此命令清除的是缓存区的历史命令。
我们执行删除某一条历史命令:
history –d 5
d 是delete命令的简写,5 是缓存区中的第5条命令。
执行结果:
四、执行历史命令
1.!n
通过查看历史命令,我们可以重新执行一次原来执行过的历史命令,方法就是,用!+ 历史命令顺序号
我们执行第12条命令:
!12
执行后如下(因为这个命令是前两个,当然可以按向上方向键执行)
2.ctrl+r
我们想执行原来执行过的历史命令,也可以用快捷键调出原命令,再执行一次。
如再执行passwd命令:
按完快捷键后,录入一个p,会自动出来原来所有以p开头的命令(本案例命令比较少,含p开头的命令只有一个,我们很好选择。如果p开头的命令多时,可再录入一个字符,或用上下方向键进行选择)。
五、调整历史命令最大条数
在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量 HISTSIZE进行控制。
使用 echo $HISTSIZE
可以查看历史命令最多条数。
可以重新设置最大条数,如
HISTSIZE=2000
六、history其他选项
-N: 显示历史记录中最近的N个记录;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中;
-n<filename>:读取指定文件
案例:打印最近的n条历史命令。
默认情况下,history并不记录命令的执行时间,但我们可以使用HISTTIMEFORMAT在历史中显示TIMESTAMP。
小结
历史命令应用广泛,熟练掌握,可以查看并快速执行相关命令。