history 命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
语法
history [options] [file]
options
-a:缓冲区追加写入文件
-w:缓冲区覆盖写入文件
-r:读取历史文件到缓冲区
-c:清空缓冲区
n:打印最近n条历史
执行历史记录中的命令
!n:执行第 n 条命令
!!:执行上一条命令
!-n:执行倒数第 n 条命令
!str:执行最后一个以 str 打头的命令
上(Ctrl+P)下键:切换历史命令
Ctrl + r:搜索
获取历史命令中参数(! 或 !! 打头)
格式:
! (^ $ * ) : 第m个参数
! 第n条命令 : (^ $ * m)
用法:
!^ 第一个参数
!:m 第m个参数
!n:^ 第n条命令的第一个参数
!n:m 第n条命令的第m个参数
!string:^ 以 string 开头的命令的第一个参数
!string:n 以 string 开头的命令的第n个参数
实例:
ls /usr/local/etc
#如同执行 cd /usr/local/etc
cd !*
环境变量
HISTTIMEFORMAT="`hostname` %F %T " :配置格式化的时间 命令历史前加入 主机名 、日期、时间等信息
HISTSIZE=500 :指定最大记录条数
HISTIGNORE="ls:ll:pwd:history" :指定不记录到历史中的命令,不能带参数
HISTFILE :指定存放的文件(~/.bash_history)
HISTCONTROL="ignoredups":控制记录方式
ignoredups:不记录连续重复的命令
ignorespace:不记录空格开头的命令
ignoreboth:不记录连续重复和空格打头的命令
erasedups:重新记录并删除之前完全相同的命令
示例:
#选择写入 bashrc 是因为每当打开新的终端,修改自动生效
vim /etc/bashrc
#添加内容
alias add-path="vim /etc/bashrc"
alias clear-history="history -c && history -w"
export HISTSIZE=500; HISTTIMEFORMAT="%F "; HISTCONTROL="ignoredups"
export HISTIGNORE="ls:ll:pwd:history"