二 命令历史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 变量名 = “值”
变量赋值:把赋值符号后面的数据存储于变量名指向的内存空间