ANALYSIS
Linux 每日一篇 - 33 - history
Linux 命令历史管理神器!掌握 history 命令,轻松查看和管理命令历史,让操作效率翻倍!
history 命令是什么?
history 命令是 Shell 内置功能,用于显示、搜索、管理用户在命令行中执行过的命令历史记录。它可以帮助用户快速找回之前执行的命令,提高工作效率。
基本用法
PRTCL // PLAINTEXT
# 显示命令历史history
# 显示最近 N 条命令history 10
# 清空历史记录history -c
# 将历史记录保存到文件history -w
# 从文件读取历史记录history -r
# 删除指定行的历史记录history -d 100
# 将当前会话的历史添加到历史文件history -a实用技巧
PRTCL // PLAINTEXT
# 在命令行中使用快捷键:# !! - 执行上一条命令# !n - 执行历史中第 n 条命令# !string - 执行最近以 string 开头的命令# !?string - 执行最近包含 string 的命令# ^string1^string2 - 执行上一条命令,将 string1 替换为 string2
# 搜索历史命令history | grep "pattern"
# 执行历史中倒数第 3 条命令!-3
# 使用 Ctrl+R 进行反向搜索# 按 Ctrl+R 然后输入关键词搜索历史命令
# 显示带时间戳的历史命令export HISTTIMEFORMAT="%F %T "history
# 设置历史记录保存数量export HISTSIZE=5000export HISTFILESIZE=5000
# 忽略重复命令export HISTCONTROL="ignorespace:ignoredups"# 或者export HISTCONTROL="ignoreboth" # 忽略空格开头和重复命令
# 忽略特定命令export HISTIGNORE="ls:pwd:history"
# 执行历史命令的一部分!!:0 # 执行上一条命令的命令名!!:$ # 执行上一条命令的最后一个参数!!:1 # 执行上一条命令的第一个参数常用场景
PRTCL // PLAINTEXT
# 查看最近执行的命令history
# 查找回滚数据库的命令history | grep rollback
# 重新执行复杂的命令!156 # 执行历史编号为 156 的命令
# 搜索包含特定关键词的命令history | grep "mysql"history | grep "ssh"
# 查看特定时间范围内的命令export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "history | grep "$(date +%Y-%m-%d)"
# 清理敏感信息(如密码)history | grep -v "password"
# 将历史命令导出到文件分析history > my_history.txt
# 查看今天执行的命令export HISTTIMEFORMAT="%F "history | grep "$(date +%F)"
# 重复执行修改文件权限的命令history | grep chmod | tail -5配置和优化
PRTCL // PLAINTEXT
# 在 ~/.bashrc 中添加以下配置来优化 history:
# 显示时间戳export HISTTIMEFORMAT="%F %T "
# 增加历史记录数量export HISTSIZE=5000export HISTFILESIZE=5000
# 忽略重复命令和以空格开头的命令export HISTCONTROL="ignoreboth"
# 忽略特定命令export HISTIGNORE="ls:pwd:history:clear:bg:fg:exit"
# 立即追加到历史文件(多终端共享)shopt -s histappend
# 记录完整命令(包括换行)shopt -s cmdhist
# 保存多行命令到单个历史条目shopt -s lithist
# 实时同步历史(在每个命令后)PROMPT_COMMAND="history -a; $PROMPT_COMMAND"高级用法
PRTCL // PLAINTEXT
# 使用 fc 编辑和执行历史命令fc -l # 列出历史命令fc 100 # 编辑历史编号为 100 的命令fc -s string # 重新执行最近以 string 开头的命令
# 统计最常用的命令history | awk '{print $2}' | sort | uniq -c | sort -nr | head -10
# 查看特定时间段的命令export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "history | awk '$3 ~ /12:00:00/,/13:00:00/'
# 导出历史命令为脚本history | sed 's/^[ ]*[0-9]*[ ]*//' > commands.sh
# 从历史中恢复命令行序列# 适用于重现操作步骤或教学演示
# 安全清除历史记录(删除敏感信息后)history -chistory -w安全注意事项
PRTCL // PLAINTEXT
# 避免在命令行输入密码等敏感信息# 好的做法是:mysql -u username -p # 系统会提示输入密码# 而不是:# mysql -u username -p password
# 清理已记录的敏感命令history | grep "sensitive_command"# 找到编号后使用:# history -d 编号
# 设置历史记录不保存某些命令export HISTIGNORE="*password*:mysql*:*secret*"
# 正确清理历史记录history -c # 清空内存中的历史history -w # 写入到历史文件(清空后)抖音文案
🎯 Linuxhistory 命令!
✅ 基本用法:history ✅ 常用参数:history -option ✅ 实用技巧:history —help
每天一个 Linux 命令,30 天变身 Linux 高手!
#Linux 入门 #Shell 命令 #程序员必备 #技术分享
关于我
全平台同名”汪多多是只猫”,专注分享实用技术教程,让你的 IT 学习之路更轻松!
关注我,每天一个 Linux 命令,轻松入门 Linux 系统!
R P
Rhine Lab Pioneer Division
Auth_Verified: 2026.04.08
Auth_Verified: 2026.04.08
