bash基础特性之历史命令

  • Post author:
  • Post category:其他




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



版权声明:本文为weixin_45415432原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。