目录

history命令介绍

history 命令常用参数

history 命令被用于列出以前输入的命令和Bash 日志。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
-c 删除所有的记录
-d 删除指定的行,如: history -d 1008
-a 增补当前会话中的历史记录到~/.bash_history
-n i do not know
-r 读取历史文件中的内容并加载到历史列表里
-w 写入当前历史到文件并加载到历史列表里
-p 命令历史不记录到历史,有点像echo,history -p $HISTSIZE可打印出变量
-s 不执行命令,但是加入到历史记录里,相当于伪造历史

$HISTFILESIZE 历史文件保存的最大历史文件
$HISTFILE 用户登出时,命令持久保存的历史文件~/.bash_history
$HISTSIZE shell进程可保留的历史条数

history技巧

1
2
3
4
5
6
7
8
ESC. :返回上一条输入的参数,对于长的参数很方便。如 ls /usr/share/nginx,cd 按ESC.,效果就是 cd /usr/share/nginx
!# :执行第多少行的命令,如!1008
!STRING :执行最近一条以STRING开头的命令,如果!df
!! :执行上一条命令
!?abc :重复执行之前包含abc的命令
!-n :执行命令历史列表中的倒数第n条命令,!-1代表上一条命令
!$ :引用上一个命令的最后一个参数
$_ :引用前一个命令的最后一个参数

!$ $_一个是前一个命令一个是上一个命令

例如:

1
mkdir -p testdir && cp -r  /opt "$_"

注: 历史扩展只能用在交互shell,不能用在shell脚本中