history命令

history命令

1. history的基础

1.相关文件

  ~/.bash_history   该文件存储已执行的命令
  /etc/profile   该文件存储一些变量,本文中用来配置history,使history更易读
文件位置 作用

2.history的理论常识

1. history的命令是实时的,即刚执行的命令,使用history就能查到

2. bash_history文件中存放的命令不是实时的,需要退出当前终端,或者执行 history -w命令

3. 同用户多终端执行命令,history命令只显示当前终端执行过的命令

4. 同用户多终端执行命令,最先关闭的终端最先将命令写入bash_history文件中,和命令执行先后顺序无关

2. history的应用及场景

1. history 命令参数

参数 解释
-a   命令将新增命令写入historyfile
-w   将目前history写入到historyfile
-r   将historyfile内容读入shell history记忆中
-c   将目前shell history中命令消除(暂时,退出终端后恢复)
[number]   例:history 12 ; 执行历史命令中的第12条命令
![number]   例:!12 ;执行历史命令中的第12条命令

疑问:

1. 先执行 history -c 然后执行 history -w 有什么效果?

2. 先执行 history -c 然后执行 history -r 有什么效果?

3. 已知 history -c 参数只能暂时清除命令,那么如何永久清除history?

2. 应用前的环境配置

先配置一下环境能让学习变得更加畅快

1. 记录history执行时间,history 默认不记录时间,记录时间方便学习,也方便自查

vim /etc/profile ,在文件尾部添加

export HISTTIMEFORMAT="%y-%m-%d %H:%M:%S "

export HISTTIMEFORMAT="%F %T " # 两个效果是一样的

添加完成后,source /etc/profile 使改动生效。
(后引号前要加空格,不加空格会挤成一团,改动后,source一下/etc/profile文件)

2. 改动 history 能存储的命令数量

编辑 /etc/profile 文件

vim /etc/profile

行尾加入
HISTSIZE=1000 # 一天一千行,来年秃头亮

保存退出后,执行
source /etc/profile

3. 应用

1. 查看刚才做了哪些操作

history

2. 查看最后20行命令

history | tail -n 20

3. 查看开始20行命令

history | head -n 20

4. 查看删除文件(rm)命令

histroy | grep rm

5. 清空执行命令的历史

history -c;history -w

6. 执行命令历史中,第20条命令

history 20 或者 !20

3. history的补充

来个奇技淫巧  ----  删除特定命令不留下痕迹

1. vim随便打开一个文件(建议是常用文件)
2. 设置vim 不记录命令 :set history=0
3. 用vim的分屏功能:vsp ~/.bash_history
4. 恢复 :set history=20
遗憾的是,会留下 vim编辑常用文件的历史

原文地址:https://www.cnblogs.com/deblr/p/11484875.html