$  export HISTTIMEFORMAT='%F %T ' #时间格式
$ history 100 | more #查看最近100条命令,包括重复命令
其他方法

1.可以按一下上\下方向键,命令行就会显示相对于当前命令的上一条或下一条历史记录.

2.和方向键相同功能的就是组合键Ctrl+ p (前面执行过的命令),Ctrl +n(后面执行过的命令).

2.上面两个都是相对于当前命令查询上一条或者下一条命令的历史记录.如果搜索命令历史记录,

就用Ctrl+ r 组合键进入历史记录搜寻状态,然后,键盘每按一个字母,当前命令行就会搜索出命令历史记录.

1. history作用

linux的history命令的作用是,记录执行过的命令。
用法:
history [n] n为数字,列出最近的n条命令
-c 将目前shell中的所有history命令消除
history [-raw] histfiles
-a 将目前新增的命令写入histfiles, 默认写入~/.bash_history
-r 将histfiles内容读入到目前shell的history记忆中
-w 将目前history记忆的内容写入到histfiles

$ history 3
 1006  2019-05-22 14:19:06 head ~/.bash_history 
 1007  2019-05-22 14:20:16 echo $HISTSIZE
 1008  2019-05-22 14:21:08 history 3

使用! 执行历史命令。
! number 执行第几条命令
! command 从最近的命令查到以command开头的命令执行
!! 执行上一条

$ history 3
 1006  2019-05-22 14:19:06 head ~/.bash_history 
 1007  2019-05-22 14:20:16 echo $HISTSIZE
 1008  2019-05-22 14:21:08 history 3
 
$ !1008
history 3
 1011  2019-05-22 14:22:50 ! 1010
 1012  2019-05-22 14:22:54 history
 1013  2019-05-22 14:23:19 history 3
 
$ !!
echo $HISTSIZE
1000
2. history配置修改

history记录的行数

$ echo $HISTSIZE
1000

默认记录1000行
配置文件在/etc/profile中修改

HISTSIZE=1000
export  HISTSIZE

历史命令文件记录在 ~/.bash_history中

想要让linux的history命令显示时间,history是默认不带时间,
在/etc/profile 中增加

export HISTTIMEFORMAT="%y-%m-%d %H:%M:%S "

查看.bash_history

$ head ~/.bash_history 
ls
#1552977201
cd /data/
#1552977203
cd snappydata-1.0.2.1-bin/
#1552977204
ls
#1552977209
mkdir udf
#1552977211
3. 同一账号同时多次登录写入history

普通情况下, 当以bash登录系统时,系统会从~/.bash_history读取以前运行的命令
当注销时,把最新的1000(HISTSIZE)条命令更新到~/.bash_history文件中。
也可以使用history -w强制立刻写入,仅保留最新的。

当同一账号,同时登录多个bash时,只有最后一个退出的会写入bash_history,其他的都被覆盖了。

4. Ctrl+r 反向查询历史命令

使用Ctrl+r反向查询历史命令,将匹配的最新一条显示出来
如果还想继续向上查询,继续按Ctrl+r
shell > history 3
1048 14-11-02 16:35:52 history 3
1049 14-11-02 16:36:11 head ~/.bash_history
1050 14-11-02 16:41:05 history 3
(reverse-i-search)`his’: head ~/.bash_history

Logo

更多推荐