# history - 显示或操作历史列表
history指令用来显示用户以前执行过的历史命令,也可以对历史命令进行追加和删除。
# 主要用途
- 显示历史列表。
- 操作历史列表。
# 适用范围
RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux
# 语法
history [n]
history -c
history -d offset
history -anrw [filename]
history -p arg [arg ...]
history -s arg [arg ...]
# 选项
-c # 清空当前历史命令
-d # 删除指定序号的历史命令
-a # 追加新的历史命令
-n # 从历史命令的文件中读取本次shell会话没有读取的命令
-r # 读取历史命令文件到当前的历史命令缓冲区
-s # 将指令作为单独的条目存储到历史命令缓冲区,并且在添加之前删除缓冲区中的最后一条命令
-w # 将当前shell历史命令缓冲区写入到历史命令文件
# 举例
显示当前历史命令
[root@localhost ~]$ history #显示当前所有历史命令
...
1008 hash -p /usr/bin/lsusb
1009 hash -p /usr/bin/tail
1010 hash -l
1011 hash -p /usr/bin/tail tail
1012 hash -l
1013 history
删除指定的历史命令
[root@localhost ~]$ history # 查看历史命令
992 hash -p /usr/bin/lsusb
993 hash -l
994 hash -p /usr/bin/tail
995 hash -l
996 hash -l
997 history
998 history -d 1008
999 history
1000 history -d 996
1001 history
[root@localhost ~]$ history –d 994 #删除指令的历史命令
[root@localhost ~]$ history #查看历史命令,已经删除
991 ls /usr/bin/
992 hash -p /usr/bin/lsusb
993 hash -l
994 hash -l
995 history
996 history -d 1008
997 history
998 history -d 996
999 history
# 注意
- 在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。
- 关闭终端后,历史列表将被写入历史文件~/.bash_history。
- 环境变量HISTSIZE决定了历史文件中命令的存储数量,默认存储1000条。
- 环境变量HISTTIMEFORMAT如果是非空值,则使用其值作为strftime(3)打印相关时间戳的格式字符串添加在每个显示的历史记录之前;否则不会打印时间戳。
- 该命令是bash内建命令,相关的帮助信息请查看help命令。