Bash基础特性(1)-命令历史

概述:

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'

原文地址:https://www.cnblogs.com/Donquixote-Corazon/p/11629993.html