有效地使用命令历史机制将会使效率获得极大提升。
history:
保存你输入的命令历史。 可以用它来重复执行命令。
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg…]
-c: 清空命令历史
-d offset: 删除历史中指定的第offset个命令
n: 显示最近的n条历史
-a:append, 追加本次会话新执行的命令历史列表至历史文件
-n: 读历史文件中未读过的行到历史列表
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后(伪造命令历史)
1、四种方法快速执行之前的命令
1)用向上键查看上条命令,按回车执行。
2)在命令行中输入!!并按回车。
3)在命令行中输入!-1并按回车。
4)按Ctrl+p显示上条命令,按回车执行
2、用Ctrl + r搜索历史命令
按下Ctrl +r然后输入关键字。
在命令行提示符下按下Ctrl+r,终端将显示如下提示reverse-i-search:
(reverse-i-search)red
: cat/etc/redhat-release
当看到你要的命令后按回车键,就可以重新执行这条命令了
ctrl+g 从历史搜索模式中退出
3、执行历史命令中的特定命令
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
4、使用特定字符执行历史命令
!string 重复前一个以“ string” 开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!$:p 打印输出上一个命令的内容而不执行
!:p 打印输出 !( 所有参数) 的内容(?)
^string 删除上一条命令中的string
^string1^string2 将上一条命令中的第一个string1替换为string2
!!:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
5、命令历史相关的环境变量
HISTSIZE: 命令历史记录的条数(默认最多1000条)
HISTFILE: 指定历史文件, 默认为~/.bash_history(当前家目录下)
HISTFILESIZE: 命令历史文件记录历史的条数(默认最多1000条)
HISTTIMEFORMAT=“%F %T “ 显示时间
HISTIGNORE=“str1:str2:… “ 忽略包含string1,string2历史
控制命令历史的记录方式:
环境变量: HISTCONTROL
ignoredups 默认, 忽略重复的命令, 连续且相同为“ 重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups, ignorespace的组合
erasedups 删除重复命令
export 变量名=”值“(定义系统变量或者环境变量)
存放在 /etc/profile 或 ~/.bash_profile
6、要重新调用前一个命令中最后一个参数
1)!$ 表示
2)Esc, .( 点击Esc键后松开,然后点击 . 键)
3)Alt+ .( 按住Alt键的同时点击 . 键)
7、注意
1)登录shell时,会读取命令历史文件(~/.bash_history)中记录下的命令;
2)登录进shell后新执行的命令只会记录在缓存中,这些命令会用户退出时“ 追加” 至命令历史文件中。
原创文章,作者:张 洁,如若转载,请注明出处:http://www.178linux.com/71733
评论列表(1条)
history的用法写的很详细,包括一些调用命令历史的方法都写的挺详细的,不过排版可以再好一些