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基础特性-命令历史的主要内容,如果未能解决你的问题,请参考以下文章

08-bash基础特性及基础命令

Linux 基础学习bash特性

bash的基础特性

Linux命令之bash的基础特性(命令历史命令补全路径补全命令行展开。)

2017.10.15 bash基础特性及基础命令

Bash shell 相关特性