一、基础操作
1. 清空历史记录
**-c / --clear**
清空当前 Shell 的历史命令缓存,但不会删除持久化存储的历史文件(如 ~/.bash_history)。
示例:
bash
history -c # 清空内存中的历史记录
2. 删除指定命令
**-d <偏移量>**
删除历史列表中指定序号的命令。例如,删除第3条命令:
bash
history -d 3 # 删除内存中的第3条命令1,6
3. 查看历史命令
n
显示最近的 n 条命令(默认显示全部)。例如:
bash
history 5 # 显示最近5条命令1,6
二、高级功能
1. 历史文件读写
**-a / --append**
将当前会话新增的命令追加到历史文件(如 ~/.bash_history)。
适用场景:多终端同步历史记录。
示例:
bash
history -a # 追加当前会话命令到文件
**-n / --read**
读取历史文件中未读的命令到当前会话。
适用场景:跨终端恢复历史记录。
示例:
bash
history -n # 读取未读的历史命令
**-r / --reverse**
将历史文件内容追加到当前会话历史列表。
示例:
bash
history -r # 读取历史文件内容到内存
**-w / --write**
将当前会话历史列表强制写入历史文件,覆盖原有内容。
示例:
bash
history -w # 覆盖历史文件
2. 命令操作
**-p / --print**
展开命令参数并显示结果,但不存储到历史列表。
示例:
bash
history -p “ls -l” # 显示 ls -l
的结果,不记录命令
**-s / --shell**
将命令追加到历史列表并立即执行。
示例:
bash
history -s “echo ‘Hello’” # 执行命令并记录
三、配置管理
1. 时间戳显示
HISTTIMEFORMAT
在历史记录中添加时间戳(需在 .bashrc 或 .bash_profile 中配置):
bash
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " # 显示精确到秒的时间3,5,8
2. 忽略敏感命令
HISTCONTROL
ignorespace:命令前加空格不记录。
ignoredups:忽略连续重复命令。
ignoreboth:合并上述两种行为。
示例:
bash
export HISTCONTROL=ignorespace # 忽略带空格的命令
3. 历史记录限制
HISTSIZE
控制内存中保存的命令数量(默认1000条)。
示例:
bash
export HISTSIZE=5000 # 内存保存5000条命令
HISTFILESIZE
控制历史文件的最大长度(默认1000条)。
示例:
bash
export HISTFILESIZE=10000 # 文件保存1万条命令
四、典型操作示例
1. 批量执行历史命令
bash
#执行第100~105条命令
for i in {100…105}; do history -s $i; done
2. 安全审计
bash
#查找最近所有删除操作
history | grep -E ‘rm|mv|del’
3. 导出历史为脚本
bash
history | awk ‘{$1=“”; print $0}’ > my_script.sh # 生成无序号的脚本
五、注意事项
权限问题
修改历史文件需确保用户对 ~/.bash_history 有读写权限。
清空历史记录需谨慎,可能导致重要操作丢失。
配置生效
环境变量修改需执行 source ~/.bashrc 或重启 Shell。
跨会话同步
使用 export PROMPT_COMMAND=‘history -a’ 可实时同步历史记录。
六、完整选项速查表
选项 功能说明 来源
**-c** 清空当前历史缓存
**-d** 删除指定序号的命令
**-a** 追加当前会话命令到历史文件
**-n** 读取未读的历史命令到当前会话
**-r** 读取历史文件内容到当前会话
**-w** 强制写入当前会话历史到文件
**-p** 展开命令参数并显示结果,不存储
**-s** 追加命令到历史列表并立即执行
引用来源:
基础操作与选项说明:
配置与环境变量:
实战技巧与安全防护: