linux+历史命令',Linux历史命令管理以及用法

# **history命令管理及用法总结**

**命令历史:**shell进程会在其会话中保存此前用户提交执行过的命令,可以用它来重复执行命令;包括关机之前的指令

~]# history

示例

![](https://s1.51cto.com/images/blog/201903/24/484dc1789ad194fb443ff3b1459a2cf4.png?x-oss-process=image/watermark,size_10,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

**定制history的功能,可通过改变环境变量的具体值来实现:**

| 环境变量 | 意义 |

| -------- | -------- |

|HISTSIZE | shell进程可保留的命令历史的条数 |

|HISTFILE | 持久保存命令历史的文件 |

| HISTFILESIZE | 命令历史文件的大小 |

| HISTTIMEFORMAT=“%F %T “ | 显示时间 |

|HISTIGNORE=“str1:str2:… “ | 忽略str1命令,str2开头的历史 |

***控制命令历史记录的方式:***

赋予环境变量 HISTCONTROL不同的值即可改变命令历史记录的方式;

修改变量的值的方式:NAME='VALUE',如HISTCONTROL=ignorespace

| 环境变量值 | 意义 |

| -------- | -------- |

|ignoredups | 忽略重复的命令 |

|ignorespace| 忽略以空白字符开头的命令 |

|ignoreboth| 以上两者同时生效 |

|erasedups| 删除重复命令 |

登录shell时,会读取命令历史文件中记录下的命令,命令历史文件路径为.bash_history

~]# cat.bash_history

登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中

**命令用法:**

**history [-c] [-d 偏移量] [n]**

| 选项 | 效果 |

| -------- | -------- |

|-c | 清空命令历史 |

|-d offset| 删除历史中指定的第offset个命令|

|n| 显示最近的n条历史 |

示例:

![](https://s1.51cto.com/images/blog/201903/24/2545784c10d8dc3d0c0bb3d8c9828a39.png?x-oss-process=image/watermark,size_10,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

![](https://s1.51cto.com/images/blog/201903/24/0605f40f1cf734b2c505110628c92e2c.png?x-oss-process=image/watermark,size_10,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

示例:

![](https://s1.51cto.com/images/blog/201903/24/2f643a4fbc29fce6be4c9c3b07e78297.png?x-oss-process=image/watermark,size_10,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

**history -anrw [文件名]**

| 选项 | 效果 |

| -------- | -------- |

|-a | 追加本次会话新执行的命令历史列表至历史文件 |

|-n| 读历史文件中未读过的行到历史列表|

|-r|读历史文件附加到历史列表 |

|-w| 保存缓存中的历史列表到指定的历史文件 |

**history -ps 参数 [参数...]**

| 选项 | 效果 |

| -------- | -------- |

|-p| 展开历史参数成多行,但不存在历史列表中 |

|-s|展开历史参数成一行,附加在历史列表后|

**调用命令历史列表中的命令或命令参数:**

| 按键(键入) | 效果 |

| -------- | -------- |

|↑或↓|上下浏览从前输入的命令 |

|!#|再一次执行历史列表中的第#条命令|

|!:0|执行前一条命令(去除参数)|

|!-n|执行history历史中倒数第n个命令|

|!!|再一次执行上一条命令|

|!STRING|再一次执行命令历史列表中最近一个以STRING开头的命令|

|!STRING:p|仅打印最近一个以STRING开头命令历史,而不执行|

|!?STRING|重复前一个包含STRING的命令|

|!:gs/string1/string2|将上一条命令中所有的string1都替换为 string2|

|Ctrl + p|翻出前一条命令|

|Ctrl + n |显示当前历史中的下一条命令,但不执行|

|Ctrl + j |执行当前命令|

|Ctrl + r|在命令历史中搜索命令|

|Ctrl + g|从历史搜索模式退出|

|!$或先按ESC,再按 .键或Alt+ .(按住Alt键的同时点击.键)|调用上一条命令的最后一个参数|

|!$:p|打印输出 !$ (上一条命令的最后一个参数)的内容|

|!*:p|打印输出!*(上一条命令的所有参数)的内容|

|^string|删除上一条命令中的第一个string|

|^string1^string2|将上一条命令中的第一个string1替换为string2|

*注:Alt+ .的调用方式需在XShell中设置Meta键仿真,如下图所示*

![](https://s1.51cto.com/images/blog/201903/23/185560cf9f9abfa6080c3ad787288f89.png?x-oss-process=image/watermark,size_10,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

示例:

!STRING和!STRING:p

![](https://s1.51cto.com/images/blog/201903/24/deadf6ba140c2c775f4f3f2242db6505.png?x-oss-process=image/watermark,size_10,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

!:gs/string1/string2

![](https://s1.51cto.com/images/blog/201903/24/a915b82e1338abf35f6b49b4ac0394f3.png?x-oss-process=image/watermark,size_10,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

!$:p

![](https://s1.51cto.com/images/blog/201903/24/4d719ca31af27b3c6360e41b16f48b91.png?x-oss-process=image/watermark,size_10,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](https://s1.51cto.com/images/blog/201903/24/4d719ca31af27b3c6360e41b16f48b91.png?x-oss-process=image/watermark,size_10,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

!*:p

![](https://s1.51cto.com/images/blog/201903/24/c49a489ac15ae5955b37dfff26dacac3.png?x-oss-process=image/watermark,size_10,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值