Linux(入门基础):56---历史命令的更新与记录(history)

一、~/.bash_history文件

  • 功能:bash记录了你曾经使用过的命令,不同的用户使用过的历史命令也不同,这些历史命令都记录在自己家目录下的.bash_history文件中
  • 注意事项:~/.bash_history记录的是你上一次登录系统所执行过的命令,而至于这一次所执行过的命令都被缓冲在内存中,当你系统关机/重启后才会更新到~/.bash_history文件中

二、HISTSIZE、HISTFILESIZE变量

  • HISTSIZE变量:代表当前shell最多能记录多少条记录
  • HISTFILESIZE变量:代表~/.bash_history记录文件最多能记录多少条数据

Linux(入门基础):56---历史命令的更新与记录(history)_第1张图片

二、历史命令是如何读取和记录的

  • 第一步:以bash登录Linux主机之后,系统会主动的由家目录的~/.bash_history读取以前曾经执行过的命令
  • 第二步:上图中我们HISTFILESIZE为2000,代表~/.bash_history文件最多能记录多少条历史记录。假设我们这次登录主机之后,执行了100次命令。等我注销时,系统就会将101~2100这2000条记录更新到~/.bash_history文件中(因为最多能保存2000条,所以会删除旧的,更新最新的)
  • 当然,我们也可以使用history  -w强制更新

三、history命令

1.功能

  • 可以查询自己在终端下执行过的命令
  • 还可以将使用过的历史命令进行存储

2.格式

  • history   数字
  • history   -c
  • history   [-raw]     历史记录文件

相关选项含义

  • 数字:查询列出最近使用过的几条命令
  • -c:将目前正在使用的shell中的所有history命令记录全部清除
  • -r:将历史记录文件的内容读取到目前这个shell的history记录中
  • -a:将目前新增的命令新增到后面的历史记录文件中。如果文件不存在默认写入到~/.bash_history文件中
  • -w:将目前所有的history记录内容写入到历史记录文件中

3.注意事项

  • 历史记录文件是自己创建使用的
  • 注意-r与-w参数的区别:-w是将所有的history记录都写入到历史记录文件中。-r是记录最新的

4.使用案例

  • 查看最近使用的5条命令

Linux(入门基础):56---历史命令的更新与记录(history)_第2张图片

  • 建立一个history.txt文件,将最新的历史命令记录到其中并cat查看

Linux(入门基础):56---历史命令的更新与记录(history)_第3张图片

四、其他操作

1.其他命令操作

  • !数字 ==>执行第几条历史命令(每个命令都有数字编号)
  • !字符串 ==>执行最近使用过的以对应字符串开头/符合字符串的命令
  • !!  ==>执行上一条命令

2.使用案例

  • 执行编号为100的历史命令:可以看出我们的第100条命令应该是ls -l

Linux(入门基础):56---历史命令的更新与记录(history)_第4张图片

  • 执行最近使用过的以ca开头的命令:可以看出我最近使用的是cat

Linux(入门基础):56---历史命令的更新与记录(history)_第5张图片

  • 执行上一条命令

Linux(入门基础):56---历史命令的更新与记录(history)_第6张图片

五、历史命令的重要注意事项

  • 安全问题:由于历史命令记录文件(~/.bash_history等)十分的重要,里面包含曾经执行过的命令。如果这些文件被其他人所获取/解析,那么很多信息就会泄漏
  • 同一账号同时多次登录的history写入问题:如果我们同时开启多个bash界面,这些bash都是相同的身份。那么等到注销时,最后注销的那个bash里是命令才会更新到历史命令记录文件中,其它的bash的命令操作就不会被记录下来。为了避免这种情况可以使用单一bash登录,再用任务管理来切换不同的任务
  • 如何记录时间:普通的历史命令记录文件不会记录时间,在查询方面会有不方便。如果可以,可自行建立一个~/bash_logout文件并配合date来增加时间参数记录

你可能感兴趣的:(Linux(入门基础))