shell进程会在其会话中保存此前用户提交执行过的命令,可以用它来重复执行命令;包括关机之前的指令。在exit之前,你所操作的历史命令都是储存在内存中,所以你只需要history就能找到在这之前的命令,exit之后,内存中的历史命令会保存在.bash_history中,以便再次登录能够查看之前操作的历史命令。 现在就让我们看看history命令的具体用法 history [-c] [-d offset] [n] history -anrw [filename] history -ps [arg]

-c 清空历史命令
-d offset 删除历史命令中的第offset个命令
n 显示最近的n条命令
-a 追加本次会话新执行的命令历史列表中至历史文件
-r  读取历史文件附加到历史列表
-w 保存历史列表到指定的历史文件
-n 读取历史文件中未度过的行到历史列表
-p 展开历史参数成多行,但不存在历史列表中
-s 展开历史参数或行附加到历史列表后

还有历史命令相关的环境变量
	HISTSIZE 历史命令记录的数量
	HISTFILE 指定历史命令文件(默认为~/.bash_history)
	HISTFILESIZE 命令历史文件记录历史的数量
	HISTGNORE="str1:str2*" 忽略str1,str2开头的历史
	HISTCONTROL
					ignoredups(默认) :忽略重复的命令,注:连续相同的为重复
					igonrespace :忽略所有空白开头的命令
					igonreboth :二者合一
					erasedips :删除重复命令

基于历史命令的一些命令,及用法 重复前一个命令 1、向上方向键 2、!! 3、! -1 4、ctrl +p !:0 执行前一条命令(去除参数) ctrl+n 显示当前历史命令中的下一条命令 ctrl+j执行当前命令 !n 执行历史命令中第n条历史命令 !-n 执行历史命令中倒数n条历史命令 !string 重复前一个一“string”开头的命令 !?string 重复前一个包含“string”的命令 !string:p 仅打印历史命令但不执行 !$:p 打印输出!$(上一个命令的最后一个参数)的内容 ! :p 打印输出!(上一条命令所有参数)的内容 ^string 删除上一条历史命令中第一个string ^string1^string2 将上一条历史命令中的第一个string1替换为string2 !:gs/string1/string2 将上一条历史命令中所有的string1替换为string2 ctrl + r 搜索历史命令 ctrl + g 退出历史搜索模式 重新调用前一个命令中最后一个参数:!$