二  命令历史history

    history命令:查看或者设置命令历史相关参数,保存输入的命令历史。可以使用history来重复执行命令。

    登录shell时,会读取命令历史文件中记录下的命令 存放在文件~/.bash_history中。登录进shell后每次执行的命令都会记录在内存的缓存中,直到退出当前的终端后会被保存在命令历史文件当中。

查看历史命令,在home目录下有个隐藏的文件.bash_history文件,可以通过la –al 查看文件信息,并且可以通过文本编辑软件来进行修改。因此,命令的历史有两个存放位置,一是在登录进shell后新执行的命令只会记录在缓存当中;二是登录shell时,会读取命令历史文件中的记录的命令~/.bash_history。

  使用选项     选项说明

-a     追加本次会话执行的命令历史列表到历史文件当中

  -d     删除历史命令中指定的命令

  -c     清空历史命令缓存

#:      显示最近的#条历史

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

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

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

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

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

    在缓存中搜索命令Ctrl+r

调用历史中的命令

    !#:重复执行第#条命令

    !!:重复执行上一条命令

    !string:重复执行最近一string开头的命令

    !$  |  esc  .(先按esc,松开后按 . )  | Alt  +  .

    调用历史参数

    !n:^  调用第n条命令的第一个参数

    !n:$  调用第n条命令的最后一个参数

!m:n  调用第m条命令的第n个参数

!n:*  调用第n条命令的所有参数

!string:^    从命令历史中搜索以string 开头的命令,并获取它的第一个参数

!string:$     从命令历史中搜索以string 开头的命令,并获取它的最后一个参数

!string:n     从命令历史中搜索以string 开头的命令,并获取它的第n个参数

!string:*     从命令历史中搜索以string 开头的命令,并获取它的所有参数

notice:连续执行相同的命令,在历史记录中只显示一次,因为在控制命令历史记录方式的环境变量中有设置

history对应的几个环境变量

    HISTSIZE   命令历史记录的条数

    HISTFILE      ~/.bash_history

    HISTFILESIZE      命令历史文件记录的历史命令条数

控制命令历史的记录方式的环境变量

    HISTCONTROL,在/etc/profile配置文件中设置

    HISTCONTROL有三个选项:

       ignoredups:忽略重复的命令,连续且相同的为重复

       ignorespace:忽略以空格开头的命令

       ignoreboth = ignoredups+ignorespace

 

HISTSIZE=1000

if[ "$HISTCONTROL" = "ignorespace" ] ; then

              export HISTCONTROL=ignoreboth

else

              export HISTCONTROL=ignoredups

fi

 

修改环境变量值的方法

    修改配置文件/etc/bashrc(全局变量)或者~/.bashrc(用户个人变量),并且用户个人配置优先级大于全局配置

    在文本中增加 export 变量名 = “值”

    变量赋值:把赋值符号后面的数据存储于变量名指向的内存空间