概述
在输入命令时,linux默认将命令历史存储在内存当中,当用户退出系统或注销时,将内存中的命令历史写入磁盘文件~/.bash_history中。
history命令
history:显示历史命令
命令参数:
-N: 显示历史记录中最近的N个记录
-c:清空当前历史命令
-a:将历史命令缓冲区中命令写入历史命令文件中
-r:将历史命令文件中的命令读入当前历史命令缓冲区
-w:将当前历史命令缓冲区命令写入历史命令文件中
-d<offset>:删除历史记录中第offset个命令
-n<filename>:读取指定文件
相关系统变量:
HISTSIZE,命令历史记录条数/etc/profile
HISTFILE:存放历史的文件,~/.bash_history
HISTFILESIZE:历史文件记录历史条数
HISTTIMEFORMAT:历史时间
HISTIGNORE:忽略相关命令
HISTCONTROL:
ignoredups:默认,忽略重复命令(连续且相同)
ignorespace:忽略所有以空白开头的命令
ignoreboth:相当于ignoredups+ignorespace
eraseduos:删除重复命令
快捷键:
Ctrl+r:搜索历史(ctrl+g从历史搜索命令中退出)
重复前一个命令:上方向键+回车,!!+回车,!-1+回车
!:0执行前一条命令(去除参数)
Ctrl+n显示当前历史中下一条命令但不执行
Ctrl+j执行当前命令
!n执行history中第n条命令
!-n执行history历史中倒数第n个命令
!string重复前一个以string开头的命令
!?string重复前一个包含string的命令
!string:p仅打印命令历史不执行
!$:p打印输出上条命令的最后一个参数!$
!*:p打印输出上条命令的所有一个参数!*
^string:删除上一条命令中的第一个string
^str1^str2:将上条命令中的第一个str1替换成str2
!:gs/str1/str2:将上条命令中的所有str1替换成str2
*删除历史记录(用于破坏-_-)
先进入/etc/profile文件将HISTSIZE设置为0,清理~/.bash_history文件,再清理内存中的历史记录