history是用来查看命令历史记录的工具,系统默认保留1000条。该命令是通过shell自动记录在缓存中,退出后会自动保存在历史命令文件中。默认文件位置为 ~/.bash_history
[root@Centos7 ~]# history
1 who a i
2 who is sb
3 who
4 init 5
5 runlevel
6 tty
7 init 0
8 whoami
9 who am i
10 startx
11 ifconfig
- 格式:
history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
-
选项:
n: 显示最近的n条历史
-c: 清空命令历史
-d n: 删除历史中指定的命令,n表示命令号
-a: 追加本次会话新执行的命令历史列表至历史文件,因为多终端所以如果想看当前都发生了什么操作就可以执行-a进行查看
-n: 读历史文件(本地数据)中未读过的行到历史列表(内存数据)
-r: 读历史文件(本地数据)附加到历史列表(内存数据)
-w: 保存历史列表(内存数据)到指定的历史文件(本地数据)
-s: 展开历史参数成一行,附加在历史列表后。用于伪造命令历史。记录但不操作。
history -s
-p: 展开历史参数成多行,但不记录在历史列表中。操作但不记录历史

-
环境变量
HISTFILE 指定存放历史文件位置,默认位置在~/.bash_profile
(针对用户)
/etc/profile
(针对全局,如果~/.bash_profile
内没有相关环境变量内容则使用全局变量设置)HISTFILESIZE 命令历史文件记录历史的条数 修改方法同下
HISTSIZE 命令历史记录的条数,默认为1000
HISTSIZE
HISTTIMEFORMAT="%F %T" 显示命令发生的时间
HISTTIMEFORMAT
HISTIGNORE="str1:str2:..." 忽略string1,string2历史
HISTCONTROL 包含以下4项,让哪一项生效只需要让其=下面一项即可
ignoredups 忽略重复的命令;连续且相同方为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 同时启用ignoredups,ignorespace
erasedups 删除重复命令 -
快捷方式
!number
再次执行在history里记录number编号的命令
!!
执行刚刚执行的命令
!-1
同上
ctrl-p
同上
方向键上
同上
!:0
执行上一次命令中的单独命令
如:> ls -l /etc/motd, !:0
会执行ls!word
搜索历史中最近的以word开始的命令并执行
!?word
搜索包含word的
!$:p
打印并输入上一个命令的最后一个参数
!*
打印并输入上一个命令的所有参数
网友评论