基础用法
-
查看历史命令
直接输入history
会显示所有记录(默认保存最近 500 条):history
输出示例:
1 cd ~/Documents 2 ls -l 3 nano file.txt ...
-
执行历史命令
- 通过序号执行:
!序号
(如!2
会重新执行ls -l
) - 执行上一条命令:
- 执行最近以关键词开头的命令:(如
!nano
会执行最近一条nano
命令)
- 通过序号执行:
高级技巧
搜索历史命令
- 反向搜索:按
Ctrl + R
进入搜索模式,输入关键词实时匹配,按Enter
执行或Ctrl+C
退出。 - 正向搜索:按
Ctrl + S
(需先解除终端锁定:执行stty -ixon
)。
快速调用参数
- :引用上一条命令的最后一个参数
mkdir project # 创建目录 cd !$ # 进入 project(等同于 cd project)
!^
:引用上一条命令的第一个参数- :引用上一条命令的所有参数
删除历史记录
- 删除单条:
history -d 序号
(如history -d 5
) - 清空所有记录:
history -c
个性化配置(修改 ~/.bashrc
文件)
-
调整记录数量
将历史记录扩容至 5000 条:echo "HISTSIZE=5000" >> ~/.bashrc echo "HISTFILESIZE=5000" >> ~/.bashrc
-
忽略敏感命令
不记录包含password
或空格开头的命令:echo 'export HISTCONTROL=ignorespace:ignoredups' >> ~/.bashrc echo 'export HISTIGNORE="*password*"' >> ~/.bashrc
ignorespace
:忽略空格开头的命令ignoredups
:跳过重复命令
-
添加时间戳
每条命令前显示执行时间:echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
生效配置:
source ~/.bashrc
安全注意事项
- 敏感信息防护:
避免在命令中直接输入密码(如mysql -u root -p123456
),建议使用交互式输入或专用管理工具。 - 清除痕迹:
离开共享主机前执行history -c
清空记录。
应用场景示例
-
重复复杂操作
# 首次执行 tar -czvf backup_2025.tar.gz /home/user/documents # 后续调用 !tar # 直接重新打包
-
定位错误命令
通过带时间戳的历史记录检查误操作时间点:history | grep "2025-05-01"
history
是终端效率的核心工具,通过灵活调用历史命令、配置个性化规则,可大幅减少重复输入,关键配置项:
HISTSIZE
:控制内存中保存的记录数HISTFILESIZE
:控制历史文件(~/.bash_history
)的大小HISTCONTROL
:过滤敏感记录
引用说明参考 GNU Bash 官方手册及 Linux 内核文档,配置方法已在 Ubuntu 22.04、CentOS 7 和 macOS Monterey 系统验证,历史记录存储机制详见
man bash
中的 HISTORY 章节。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6606.html