深色模式
命令历史 history
摘要:昨天那句复杂命令忘了?本文教你用 Ctrl+R 搜索历史、用
!复用上一条命令,并配置更实用的历史记录。前提:bash/zsh。
适用环境
bash
echo $HISTSIZE $HISTFILESIZE
echo $HISTFILE # 历史保存位置,通常 ~/.bash_history1
2
2
一、基础查看与复用
bash
history | tail -20 # 看最近 20 条
!123 # 重新执行第 123 条
!! # 重新执行上一条(常配合 sudo !!)
!systemctl # 执行最近一条以 systemctl 开头的1
2
3
4
2
3
4
二、交互式搜索
bash
# 按 Ctrl+R,输入关键字反向搜索,再按 Enter 执行
# Ctrl+R 继续往前翻,Ctrl+G 取消1
2
2
三、让历史更好用
bash
cat >> ~/.bashrc <<'EOF'
export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTCONTROL=ignoredups:erasedups # 忽略重复
export HISTTIMEFORMAT='%F %T ' # 历史带时间戳
shopt -s histappend # 多终端追加而非覆盖
EOF
source ~/.bashrc1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
验证
- [ ]
history能列出命令且带时间(配置后) - [ ]
!编号/!!能正确复用命令 - [ ] Ctrl+R 能搜到历史关键字
常见坑
- 多终端互相覆盖:默认会覆盖历史,加
shopt -s histappend改为追加。 - 敏感命令进历史:密码别明文写在命令行,可用
history -d 行号删除某条。 - 重启后历史丢失:若 HISTFILE 未设或权限错,历史不落盘。
- zsh 差异:zsh 用
history与fc,配置在.zshrc。