1.history 显示历史命令
-
作用:用于显示历史记录和执行过的指令命令
-
当登录shell或者是退出的时候会自动进行读取和存储
1.常用参数
语法:# history 选项 参数#参数-n #显示最近的n条记录-a #将历史命令缓冲区中命令写入历史命令文件中-c #将目前的shell中的所有 history 内容全部消除 实际为假删除-r #将历史命令文件中的命令读入当前历史命令缓冲区-w #将当前历史命令缓冲区命令写入历史命令文件中-d #删除历史记录中指定的行
2.常用范例
1.获取历史记录的最新2两条
[root@localhost ~]# history 2 342 cd 343 history 2这种方式获取的最新两条记录,也会把最后一条命令算上
2.执行最后一次命令
[root@localhost ~]# !!history 2 342 cd 343 history 2
3.清空当前历史记录(只是清空缓存中的历史记录,伪删除)
-c 参数是清空所有历史记录
[root@localhost ~]# history -c[root@localhost ~]# history 1 history
这种方式类似于clear,并不会文件中的历史记录删除,如果要真正的历史记录,需要用文本中第3条关于history的配置文件.
4.将当前缓存中的历史记录写入文件(缓存中的记录是空的-用空的数据写入文件,将文件内部删除)
[root@localhost ~]# history -w
5.删除某行历史记录(这样可以有针对性的保留历史记录)
删除第25行历史记录[root@localhost ~]# history -d 25
6.!+数字 代表执行历史中第n条命令
[root@localhost ~]# !30cd /etc/sysconfig/network-scripts/
7.!+字符串 代表搜索历史命令最近一个以xxxx字符开头的命令
[root@localhost ~]# cd /etc/sysconfig/network-scripts/[root@localhost ~]# !cdcd /etc/sysconfig/network-scripts/
8.crtl+r 输入某条命令的关键字,找出对应的命令,按右光标键
在终端中按捉 [Ctrl] 键的同时 [r] 键,出现提示:(reverse-i-search),
此时你尝试一下输入你以前输入过的命令,当你每输入一个字符的时候,终端都会滚动显示你的历史命令。
当显示到你想找的合适的历史命令的时候,直接 [Enter],就执行了历史命令。
3.关于history的配置文件
- 所有我们用history命令看到的历史记录,都默认保存在:~/.bash_history;
- 如果是root用户就是在/root/.bash_history文件里;
- 直接删除这个文件会清除历史记录,再登陆系统会自动重新生成这个文件
- Linux命令的历史记录,会持久化存储,默认位置是当前用户家目录的 .bash_history 文件中,读取历史记录,存储在相应内存的缓冲区中
- 我们平时操纵的Linux命令,都会记录在缓冲区中,包括history命令所执行的历史命令管理,都是在操纵缓冲区,而不是直接操纵.bash_history文件
- 当我们退出shell时,比如按下 Ctrl+D 时,shell进程会把历史记录缓冲区的内容,写回到.bash_history 文件中
4.Linux命令审计
1.显示历史记录时间
- export HISTTIMEFORMAT=‘%F%T’
[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
2.控制历史记录的总数
- echo $HISTSIZE 查看历史记录总数
[root@localhost ~]# echo %HISTSIZE1000[root@localhost ~]# echo HISTSIZE=100
- 做审计的时候我们适当把记录总数台调大
1.想要永久生效
[root@localhost ~]# echo "export HISTSIZE=10000" >> ~/.bash_profile[root@localhost ~]# source ~/.bash_prosile
2.使用 set 命令隐藏历史记录
-
想要隐藏某条命令,会用到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
3.Linux快捷键
- Ctrl+a #光标快速到行首
- Ctrl+e #光标快速移到行尾
- ctrl+b #光标左移一个字母
- Ctrl+F #光标右移一个字母
- Ctrl+z #把命令放入后台
- Ctrl+c #强制终止当前命令
- ctrl+d #退出当前登录,等同于exit logout
- Ctrl+l #清屏
- Ctrl+左右方向键 #跳转单词
来源地址:https://blog.csdn.net/m0_67159981/article/details/128699244