1. bash基础特性之历史命令:
shell进程会在其会话中保存此用户提交执行过的命令,shell进程启动后所有当前执行过的命令都会保存在shell进程的内存中;只有用户登出时才保存到文件中。
(1)history命令:用于查看已经运行过的命令
1.[root@localhost ~]# history
2. 1 ifconfig
3. 2 service network restart
4. 3 yum install net-tools
5. 4 ifcoonfig
6. 5 ifconfig
注意:在正常关机时shell进程内存中缓存的历史命令会保存在/root/.bash_history文件中
(2)定制history功能:可通过环境变量实现
- HISTSIZE:shell进程可保留的命令历史条数
- HISTFILE:持久保存命令历史的文件——即历史命令保存的文件位置
- HISTFILESIZE:文件中命令历史文件能保存的大小
(3)history格式:
history -c :清空shell内存中缓存的历史命令
history -d n:指定删除第n条历史命令
history -a:将历史命令缓冲区中命令写入历史命令文件中
history -r:将历史命令文件中的命令读入当前历史命令缓冲区
history -w:将当前历史命令缓冲区命令写入历史命令文件中
history number:显示最近number条的命令
(4)调用命令历史列表中的命令
1.!number:再执行历史命令行中的第number条命令
2.!!:再一次执行上一条命令
3.! string:再一次执行命令历史列表中最近一次以string开头的命令
注意:命令重复执行依赖于幂等性
幂等性:对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的
(5)调用上一条命令的最后一个参数
1.先按ESC再按·号
2.字符串:! $
(6)控制命令历史记录方式由环境变量HISTCONTROL变量记录其方式,记录方式有以下几种
1.ignoredups:忽略重复命令
2.ignorespace:忽略以空白字符开头的命令
3.ignoreboth:以上两者同时生效
(7)修改变量的值
1.[root@hu lib]# echo $HISTCONTROL
2.ignoredups
3.[root@hu lib]# HISTCONTROL=ignoreboth
4.[root@hu lib]# echo $HISTCONTROL
5.ignoreboth