linux history 命令完整使用手册
history 是 Linux 系统中一个非常实用的内置命令,用于记录用户在终端执行过的命令历史。这个功能在以下场景特别有用:
- 操作回顾:查看之前运行过的命令
- 快速复用:避免重复输入长命令
- 故障排查:分析系统操作过程
- 效率提升:通过历史命令高效完成重复任务
当你在终端输入命令时,bash 会将这些命令暂存于内存,并在会话结束时写入
~/.bash_history
文件(默认设置下)。
基础语法和操作
history 命令的基础语法很简单:
<pre class="brush:php;toolbar:false"> history [选项] [参数]
常见用法
1、查看全部历史记录:
<pre class="brush:php;toolbar:false"> history
2、显示最近 N 条记录:
<pre class="brush:php;toolbar:false"> history 10 # 显示最近10条命令
3、清空所有历史记录:
<pre class="brush:php;toolbar:false"> history -c
4、删除指定编号的历史记录(例如删除第1010条):
<pre class="brush:php;toolbar:false"> history -d 1010
常用选项参数说明
history 命令提供多个实用选项:
选项 | 作用 | 示例 |
---|---|---|
`-c` | 清除所有历史记录 | `history -c` |
`-d` | 删除特定位置的历史记录 | `history -d 1005` |
`-a` | 立即把内存中的历史写入文件 | `history -a` |
`-n` | 从历史文件中读取未加载的历史记录 | `history -n` |
`-r` | 将历史文件内容加载到当前会话 | `history -r` |
`-w` | 将当前历史记录保存到历史文件 | `history -w` |
进阶技巧与实战用法
1. 快速调用历史命令
示例
!n # 执行历史记录中第n条命令
!! # 执行上一条命令
!String # 执行最近一条以string开头的命令
具体应用:
示例
!1024 # 执行历史记录中编号为1024的命令
!! # 重新执行上一条命令
!vim # 执行最近一条以vim开头的命令
2. 搜索历史命令
使用
Ctrl+R
可以反向搜索历史命令,输入部分关键词即可找到匹配项。
3. 历史命令替换
示例
^old^new # 将上一条命令中的old替换为new后执行
实际案例:
示例
$ cat file1.txt
$ ^file1^file2 # 相当于执行 cat file2.txt
4. 显示命令执行时间
在
~/.bashrc
中添加以下配置可以显示命令执行时间戳:
示例
export HISTTIMEforMAT=”%F %T “
然后执行:
示例
source ~/.bashrc
之后
history
命令会显示每条命令的具体执行时间。
环境变量自定义设置
通过环境变量可以调整 history 命令的行为:
变量 | 用途 | 推荐值 |
---|---|---|
`HISTSIZE` | 内存中保存的历史命令数量 | `5000` |
`HISTFILESIZE` | 历史文件中保存的命令数量 | `10000` |
`HISTCONTROL` | 控制历史记录方式 | `ignoredups:erasedups` |
`HISTIGNORE` | 指定不记录的命令 | `”ls:cd:pwd:exit”` |
配置示例(添加到
~/.bashrc
):
示例
export HISTSIZE=5000
export HISTFILESIZE=10000
export HISTCONTROL=ignoredups:erasedups
export HISTIGNORE=”ls:cd:pwd:exit”
export HISTTIMEFORMAT=”%F %T ”
典型应用场景
场景1:找回遗忘的命令
示例
history | grep “apt install”
场景2:统计高频使用的命令
示例
history | awk ‘{CMD[$2]++;count++;} END {for (a in CMD)print CMD[a] ” ” CMD[a]/count*100 “% ” a;}’ | grep -v “./” | column -c3 -s ” ” -t | sort -nr | nl | head -n10
场景3:备份历史记录
示例
history -a # 确保最新命令已写入文件
cp ~/.bash_history ~/command_history_backup_$(date +%F).txt
使用注意事项
- 隐私安全:历史记录可能包含敏感信息(如密码),注意妥善保管
- 多终端问题:不同终端会话默认不会同步历史记录
- 记录丢失:异常退出可能导致部分命令未保存
- 性能影响:过大的历史文件可能影响系统性能
总结练习
-
查看你的命令历史,找出最近使用的5条git命令
-
配置你的bash环境,使历史记录显示时间戳并忽略重复命令
-
创建一个别名,快速备份当前历史记录到指定目录
<pre class="brush:php;toolbar:false"> alias backup_history='cp ~/.bash_history ~/history_backups/history_$(date +%Y%m%d_%H%M%S).txt'
-
尝试使用
Ctrl+R
搜索你之前执行过的某个复杂命令
熟练掌握 history 命令,可以显著提高你在 Linux 终端的工作效率,减少重复输入,并更好地管理你的命令行操作历史。