v 保存你输入的命令历史。可以用它来重复执行命令
v 登录shell时,会读取命令历史文件中记录下的命令
~/.bash_history
v 登录进shell后新执行的命令只会记录在缓存中;这些命
令会用户退出时“追加”至命令历史文件中
v 重复前一个命令,有4种方法:
重复前一个命令使用上方向键,并回车执行。
按 !! 并回车执行。
输入 !-1 并回车执行。
按 Ctrl+p 并回车执行。
v !字符串:重复前一个以“字符串”开头的命令
v !num:按照history命令输出中的序号重复对应命令
v !?字符串:重复前一个包含abc的命令
v !-n :重复n个命令之前的那个命令
v 使用up(向上)和down(向下)键来上下浏览从前输入
的命令
v 键入ctrl-r来在命令历史中搜索命令
Ø (reverse-i-search)`’ :
v 要重新调用前一个命令中最后一个参数:
Ø !$ 表示
Ø Esc, .(点击Esc键后松开,然后点击 . 键)
Ø Alt+ .(按住Alt键的同时点击 . 键)
v #cmd !^ : 利用上一个命令的第一个参数做cmd的参数
v #cmd !$ : 利用上一个命令的最后一个参数做cmd的参数
v #cmd !* : 利用上一个命令的全部参数做cmd的参数
v #cmd !:n : 利用上一个命令的第n个参数做cmd的参数
v !n:^ 调用第n条命令的第一个参数
v !n:$ 调用第n条命令的最后一个参数
v !m:n 调用第m条命令的第n个参数
v !n:* 调用第n条命令的所有参数
v !string:^ 从命令历史中搜索以 string 开头的命令,并获取
它的第一个参数
v !string:$ 从命令历史中搜索以 string 开头的命令,并获取它
的最后一个参数
v !string:n 从命令历史中搜索以 string 开头的命令,并获取
它的第n个参数
v !string:* 从命令历史中搜索以 string 开头的命令,并获取
它的所有参数
v history [-c] [-d offset] [n]
v history -anrw [filename]
v history -ps arg [arg…]
-c: 清空命令历史
-d: 删除历史中指定的命令;
#: 显示最近的#条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-n: 读历史文件中未读过的行到历史列表
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开历史参数成多个行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
命令历史相关环境变量
v HISTSIZE:命令历史记录的条数;
v HISTFILE:指定历史文件,默认为~/.bash_history;
v HISTFILESIZE:命令历史文件记录历史的条数;
v HISTTIMEFORMAT=“%F %T“ 显示时间
v HISTIGNORE=“str1:str2:… “ 忽略string1,string2历史
v 控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令
ignoreboth:ignoredups, ignorespace
erasedups:删除重复命令
v export 变量名="值“
v 存放在 /etc/profile 或 ~/.bash_profile