作用:用于显示历史记录和执行过的指令命令
当登录shell或者是退出的时候会自动进行读取和存储
语法:
# history 选项 参数
#参数
-n #显示最近的n条记录
-a #将历史命令缓冲区中命令写入历史命令文件中
-c #将目前的shell中的所有 history 内容全部消除 实际为假删除
-r #将历史命令文件中的命令读入当前历史命令缓冲区
-w #将当前历史命令缓冲区命令写入历史命令文件中
-d #删除历史记录中指定的行
[root@localhost ~]# history 2
342 cd
343 history 2
这种方式获取的最新两条记录,也会把最后一条命令算上
[root@localhost ~]# !!
history 2
342 cd
343 history 2
-c 参数是清空所有历史记录
[root@localhost ~]# history -c
[root@localhost ~]# history
1 history
这种方式类似于clear,并不会文件中的历史记录删除,如果要真正的历史记录,需要用文本中第3条关于history的配置文件.
[root@localhost ~]# history -w
删除第25行历史记录
[root@localhost ~]# history -d 25
[root@localhost ~]# !30
cd /etc/sysconfig/network-scripts/
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost ~]# !cd
cd /etc/sysconfig/network-scripts/
在终端中按捉 [Ctrl] 键的同时 [r] 键,出现提示:(reverse-i-search),
此时你尝试一下输入你以前输入过的命令,当你每输入一个字符的时候,终端都会滚动显示你的历史命令。
当显示到你想找的合适的历史命令的时候,直接 [Enter],就执行了历史命令。
[root@localhost ~]# export HISTTIMEFORMAT='%F%T'
[root@localhost ~]# ping -c2 www.baidu.com
[root@localhost ~]# history 3
12 2023-01-1417:32:07export HISTTIMEFORMAT='%F%T'
13 2023-01-1417:32:20ping -c2 www.baidu.com
14 2023-01-1417:32:51history 3
[root@localhost ~]# echo %HISTSIZE
1000
[root@localhost ~]# echo HISTSIZE=100
[root@localhost ~]# echo "export HISTSIZE=10000" >> ~/.bash_profile
[root@localhost ~]# source ~/.bash_prosile
想要隐藏某条命令,会用到set +o
set +o history 表示开始隐藏
set -o history 表示结束隐藏
#举例:
[root@localhost ~]# set +o history #命令不会记录到历史记录中
[root@localhost ~]# mysql -uroot -p789789
[root@localhost ~]# set -o history #命令不会被记录到历史中
[root@localhost ~]# history
1 history
2 echo "i am lisi\thelloworld"
3 echo -e "i am lisi\thelloworld"
4 set =o
5 set +o
6 set +o history
7 history