History:
1、 命令行历史:保存你输入的命令历史,可以用它来重复执行命令;当登陆shell时,系统会读取命令行历史文件中记录下来的命令,保存命令历史记录的文档存放于 ~/.bash_histoty;登陆进shell后新执行的命令只会记录在缓存中,这些命令会在用户退出时“追加”至命令历史文件中。
(1)查看缓存中的命令行历史记录:
(2)查看命令行历史文件中的命令行历史记录:
2、 命令行历史记录的使用:
2-1、重复使用前一个命令:
(1)使用上方向键
(2)按!!
(3)按!-1
(4)按Ctrl+p
2-2、!字符串:重复前一个以“字符串”开头的命令
2-3、!num:按照history命令输出中的序号重复对应命令
2-4、!?字符串:重复前一个包含abc的命令
2-5、!-n:重复n个命令之前的那个命令
如果是忘记了前面执行过的命令,可以进行搜索:
方法:按住Ctrl+r ,再输入相应的字符进行搜一搜,结果如下
3、 重复调用前一个命令的最后一个参数:
(1)!$
(2)Esc , (点击ESC键后松开,然后点击.键).
(3)Alt+.(按住Alt键的同时点击.键)
4、 调用历史参数:
(1)利用上一个命令的第一个参数做cmd的参数:#cmd !^
(2)利用上一个命令的最后一个参数做cmd的参数:#cmd !$
(3)利用上一个命令的全部参数做cmd的参数:#cmd !*
(4)利用上一个命令的第n个参数做cmd的参数:#cmd !:n
(5)调用第n个命令的第一个参数:!n:^
(6)调用第n个命令的第一个参数:!n:$
(7)调用第n个命令的第一个参数:!m:n
(8)调用第n个命令的第一个参数:!n:*
(9)从命令史中搜索以string开头的命令,并获取它的第一个参数:!string:^
(10)从命令史中搜索以string开头的命令,并获取它的最后一个参数:!string:$
(11)从命令史中搜索以string开头的命令,并获取它的第n个参数:!string:n
(12)从命令史中搜索以string开头的命令,并获取它的所有参数:!string:*
5、 History的选项使用:
History
-c 清空命令历史(完全清除命令历史记录:先删除/.bash_history
,再清空历史)
-d 删除历史中指定的命令
# 显示最近的#条命令
-a 追加本次会话新执行的命令历史列表至历史文件中
-n 读取历史文件中未读过的行到历史列表(让另外一个虚拟终端同账号下使用的命令追加到历 史文件里面的命令更新到当下的终端)
-r 读取历史文件附加到历史列表(将历史文件全部再次读取一次,会出现重复)
-w 保存历史列表到指定的历史文件
-p 展开历史参数成多个行,但不存在历史列表中
-s 展开历史参数成一行,附加在历史列表后(相当于伪造命令)
6、 命令历史相关环境变量:
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT:”%F %T ” 显示时间
HISTINGNORE:”str1:str2:……”忽略string1,string2历史(如果想带str1或str2等所有执行的命令都不显示,则在其后添加*)
修改配置文件,让其永久生效:/etc/profile(所有用户共用);/home/.bash_profile(个人用户配置)
7、 控制命令历史的记录方式:
环境变量:HISTCONTROL
Ignoredups:忽略重复的命令;连续且相同为重复“”
Ignorespace:忽略所有以空白开头的命令
Ignoreboth:Ignoredups、Ignorespace
erasedups:删除重复的命令
export变量名=“值”
存放在/etc/profile(修改配置文件,永久生效) 或~/.bash_history(个人用户配置)
转载于:https://blog.51cto.com/11888240/1831436