一、命令概述shell
history命令用于显示用户之前执行过的历史命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
该命令单独使用时,仅显示历史命令,在命令行中,能够使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。
历史命令是被保存在内存中的,当退出或者登陆shell时,会自动保存或读取。在内存中,历史命令仅可以存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。vim
二、命令语法缓存
history【选项】 bash
三、命令选项spa
-a:将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
-c:清空当前历史命令列表
-d:删除历史命令列表中指定序号的命令
-n:从命令历史文件中读取本次Shell会话开始时没有读取的历史命令
-r:读取命令历史文件到当前的Shell历史命令内存缓冲区
-s:将指定的命令做为单独的条目加入命令历史内存缓冲区。在执行添加以前先删除命令历史内存缓冲区中最后一条命令
-w:把当前的shell历史命令内存缓冲区的内容写入命令历史文件命令行
!num:调用第num行的命令
!!:调用上一条命令
!cmd:调用离当前最近以改cmd开头的命令
!$或按住ESC键,而后松开按.:调用上条命令后面的参数code
四、命令示例blog
4.1 显示历史命令执行时间:内存
1 [root@lzg ~]# export HISTTIMEFORMAT='%F %T ' #设置显示历史命令执行时间 2 或者 3 [root@lzg ~]# export HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S ' 4 [root@lzg ~]# history 2 #显示最近执行的2条命令 5 21 2019-11-05 16:32:17 history 6 22 2019-11-05 16:33:16 history 2
以上这种方法只是临时生效,若是永久生效须要修改配置文件:
[root@lzg ~]# vim /root/.bash_history
添加:export HISTTIMEFORMAT='%F %T '
[root@lzg ~]# source /root/.bash_history #命令生效
4.2 显示最后num条执行的命令:cmd
1 [root@lzg ~]# history 3 2 5 2019-11-05 16:46:11 touch a.txt 3 6 2019-11-05 16:46:15 vi a.txt 4 7 2019-11-05 16:46:27 history 3
4.3 清除某一条的命令:
1 [root@lzg ~]# history -d 5 #清除第5条命令
4.4 查看history缓存存储数量:
1 [root@lzg ~]# echo $HISTSIZE 2 1000 #1000默认存储数量 3 [root@lzg ~]# cat /etc/profile | grep HISTSIZE #配置文件 4 HISTSIZE=1000 5 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
若是不想存储不少的历史命令,能够修改此配置文件,若是HISTSIZE=0,不存储历史记录
source /etc/porfile 使配置生效
4.5 使用最近一次使用的命令:
1 [root@lzg ~]# !!
4.6 调用第num条命令:
1 [root@lzg ~]# !12