Linux 的 history 命令使用大全
history命令:用于显示历史记录和执行过的指令命令。history命令读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件linux命令。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。
redis慢查询保存在内存中,最多保存slowlog-max-len(默认128)个慢查询命令,当慢查询命令日志达到128个时,新慢查询被加入前,会删除最旧的慢查询命令。比如上面例子中 如果一个线程在执行 i = i +1,如果在执行这段代码的过程中,在总线上发出了lcok#锁的信号,那么只有等待这段代码完全执行完毕之后,其他cpu才能从变量i所在的内存读取变量,然后进行相应的操作。类的状态,也就是类之间共享的变量,是存储在主内存中的,每次java线程用到这些主内存中的变量的时候,会读一次主内存中的变量,并让这些内存在自己的工作内存中有一份拷贝,运行自己线程代码的时候,用到这些变量,操作的都是自己工作内存中的那一份。
选项:
-N: 显示历史记录中最近的N个记录;
-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中;
-d<offset>:删除历史记录中第offset个命令
-n<filename>:读取指定文件
参数:
n:打印最近的n条历史命令。
实例:
#查看历史执行记录
[ljs@vm ~]$
[ljs@vm ~]$ history #查看历史执行记录
#查看历史执行记录后 5 条
[ljs@vm ~]$
[ljs@vm ~]$ history 5 #查看历史执行记录后 5 条
# 使用! 执行历史命令。 # ! number 执行第几条命令 [ljs@vm ~]$ [ljs@vm ~]$ !10 #执行历史记录第 10 条命令 # !! 执行上一条 [ljs@vm ~]$ [ljs@vm ~]$ !! #执行上一条命令
显示执行历史记录时间:
1、默认情况下,history并不记录命令的执行时间,分析起来很困难。我们可以使用HISTTIMEFORMAT在历史中显示TIMESTAMP。
2、把上面的 export HISTTIMEFORMAT="%F %T " 命令加入到~/.bashrc中即可在登录后自动开启history时间戳了。添加完成后,执行source .bashrc 让其生效。仅针对当前账号有效。
3、其实HISTTIMEFORMAT的格式就是 strftime函数的格式,比如上面的"%F %T ",%F表示显示出Y-M-D格式的日期,%T表示显示出H-M-S这样格式的时间。
4、用Ctrl+R搜索历史命令;当你执行了一串相当长的命令之后,你只要用关键字搜索一下历史命令然后重新执行这条命令而不需要将整条命令再输一遍。方法是:按下Ctrl+R然后输入关键字。如搜索”date”,则显示历史的命令中含有”date”的命令?date "+今天是:%F,%A,时间是:%T.准备吃饭去"。按回车,就可以重新执行这条命令了,而按左箭头键或右箭头键则可以直接修改,改完之后按回车执行,非常方便!
【注:在命令行提示符下按下Ctrl+R,终端将显示如下提示reverse-i-search】
#配置HISTTIMEFORMAT环境变量,给history记录添加上时间戳
[ljs@vm ~]$
[ljs@vm ~]$ export HISTTIMEFORMAT="%F %T " #配置HISTTIMEFORMAT环境变量,给history记录添加上时间戳
上一个教程:Linux基础入门
下一个教程:一个linux命令(6/12):cat 命令