history命令-->用来记录执行过的历史命令,灵活运用可用来提高我们工作效率
【命令作用】
对于系统管理而言,尽量如何减少用户能查看历史命令,无疑是安全的!
对于普通用户而言,尽量利用历史以前输入过的命令行,无疑是方便的!
而能同时满足系统管理员和普通用户这两个需求的,有一个命令就是history
【常用设置】
通过命令行来设置:
$ export HISTCONTROL=ignoredups # 消除命令历史中的连续重复条目
$ export HISTSIZE=0 # 禁用history命令
$ export HISTCONTROL=erasedups # 在整个历史中去除重复命令
$ export HISTFILESIZE=1000000 # 设置历史文件大小
$ export HISTTIMEFORMAT='%F %T' # 设置时间戳,执行后生效
$ export HISTTIMEFORMAT="%F %T `whoami`" # 显示执行用户,对管理员很有用
$ export HISTIGNORE=“pwd:ls:” # 忽略特殊命令,只忽略ls并不忽略ls -lart
$ export HISTCONTROL=ignorespace # 忽略某条特定命令
$ export HISTFILE=/root/history.txt # 设置历史文件的存储目录
通过改文件来设置:
【调用方法】
1) 使用上、下箭头调用
2) 使用“!n”重复执行第n条历史命令
3) 使用“!!”重复执行上一条历史命令
4) 按Ctrl+P 并回车执行
5) 使用 “!字符串”重复执行最后一条以该字串开头的命令
6) Ctrl+R 按关键字反向查询历史命令
7) Tab键自动补齐,即可以提高效率,还可以防止出错
8) Esc + . 重新调用前一个命令中的参数
9) 执行^str1^str2^ 快速代换,重复上条命令,用str2替换str1
【详细参数】
$ !! # 前一条命令;$ !:0 # 不带参数的前一条命令名;
$ !^ # 前一条命令的第一个参数;
$ !:n # 前一条命令的第n个参数;
$ !$ # 前一条命令的最后一个参数;例如 $ mkdir test; cd !$
$ !* # 前一条命令的所有参数,命令名除外;
$ !n # 第n条命令;
$ !-n # 倒数第n条命令;
$ !str # 最近一条以str开头的命令;
$ !?str # 最近一条包含str的命令;
$ ^a^b # 将上一条命令名中的a替换为b;
$ !:gs/a/b # 将上一条命令的所有a替换为b(包含命令名和参数)。
$ !:3 # 第三个参数数
$ !:2-4 # 第2到4个参数
$ !:-3 # 从第0个到第三个参数
$ !* # 第一个到最后一个参数
$ !:2* # 第2个到最后一个
$ !:2- # 从第2个开始,但不要结尾参数