Bash基础特性-命令历史
Posted donquixote-corazon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash基础特性-命令历史相关的知识,希望对你有一定的参考价值。
shell进程会在其会话中保存此前用户提交并执行过的命令
可以使用~]# history进行查看,history命令本身属于shell的内嵌命令
命令历史可分为内存中的历史命令以及历史文件中的历史命令,其容量默认大小均为1000条(可修改),从主机开机到关机的这段时间中所用到的命令会保存在内存中,关机后系统会自动将内存中的历史命令写入命令历史文件中(/root/.bash_history),若此时历史文件容量不够时会自动清除过去的命令。执行history-r后执行history的操作时,历史文件与内存的容量并不冲突,即使超过容量大小仍可以正常显示
history命令用法:
常用选项:
-c:清空历史命令(内存中的命令)
-d 偏移量:删除指定历史命令
-r:从历史文件中读取历史命令至历史列表(内存)中
-w:把历史列表中的命令追加之至历史文件中
history#:显示最近#条命令
若希望定制history的功能,可通过改变其环境变量来实现:
HISTSIZE:shell进程可保留的历史命令条数
HISTFILE:持久保持命令历史的文件
HISTFILESIZE:命令历史文件的大小
调用命令历史列表中的命令:
~]# !#:再一次执行历史列表中的第#条命令
~]# !!:再一次执行上一条命令
~]# !STRING:再一次执行命令历史中列表的最近一个以STRING开头的命令
注意:命令的重复执行有时需要依赖于幂等性,即命令可重复执行,如mkdir命令就不能重复执行
调用上一条命令的最后一个参数:
快捷键:按ESC后按.
字符串:!$
控制命令历史记录的方式:(仅对当前的shell进程有效)
通过控制环境变量HISTCONTROL来实现
HISTCONTROL可取值选项:
ignoredups:默认值,忽略重复命令
ignorespace:忽略以空白字符开头的命令
ignoreboth:忽略以空白字符开头的命令且忽略空白
通过设置HISTCONTROL设置其参数为ignorespace或ignoreboth可实现隐藏所输入的命令,即输入命令时以空白字符开头即可
修改变量值的方式:NAME=‘VALUE‘
以上是关于Bash基础特性-命令历史的主要内容,如果未能解决你的问题,请参考以下文章