历史记录的环境变量
- HISTSIZE
历史记录最多存储的条数,设置为-1即没有上限
- HISTCONTROL=ignoredups
默认,忽略连续重复的命令添加到history中
- HISTFILE
历史记录配置文件位置。每个shell都有一个单独的历史记录
每个shell启动时都会加载这个文件,所以每次启动shell都会有历史记录
快速使用历史命令
1 | ↑方向键 |
手动查找历史命令
shell下使用Ctrl+R进入(reverse-i-search)搜索命令行
输入匹配命令的任意字符,就可以找到目标命令,并且按Enter执行
连续按两次Ctrl+R,可以调出上次搜索与执行的命令
使用emacs或vim风格的命令行编辑
shell默认使用的事emacs风格的命令行,支持set -o vi切换成vim风格
如果使用less进行查看,也是vim风格的
| 操作描述 | Emacs 风格快捷键 | Vim 风格操作 |
|---|---|---|
| 进入编辑模式 | 默认直接输入 | 按 i 进入插入模式 |
| 退出编辑模式 | 无需退出(无模式) | 按 Esc 返回普通模式 |
| 光标移动 | ||
| - 向左移动一个字符 | Ctrl + B |
普通模式下按 h |
| - 向右移动一个字符 | Ctrl + F |
普通模式下按 l |
| - 向左移动一个单词 | Alt + B |
普通模式下按 b |
| - 向右移动一个单词 | Alt + F |
普通模式下按 w 或 e |
| - 移动到行首 | Ctrl + A |
普通模式下按 0 或 ^ |
| - 移动到行尾 | Ctrl + E |
普通模式下按 $ |
| 删除操作 | ||
| - 删除左侧字符 | Ctrl + H(Backspace) |
插入模式下按 Backspace |
| - 删除右侧字符 | Ctrl + D |
普通模式下按 x |
| - 删除到行尾 | Ctrl + K |
普通模式下按 D |
| - 删除左侧单词 | Ctrl + W |
普通模式下按 db(删除前一个单词) |
| 撤销/重做 | ||
| - 撤销操作 | Ctrl + _ 或 Ctrl + X Ctrl + U |
普通模式下按 u |
| - 重做操作 | 无直接重做 | 普通模式下按 Ctrl + R |
| 复制/粘贴 | ||
| - 剪切到行尾 | Ctrl + K |
普通模式下按 d$ |
| - 复制到剪贴板 | Alt + W |
普通模式下按 yy(复制整行) |
| - 粘贴 | Ctrl + Y |
普通模式下按 p |
| 搜索历史命令 | ||
| - 反向搜索历史 | Ctrl + R |
普通模式下按 / 输入关键字 |
| - 正向搜索历史 | Ctrl + S |
普通模式下按 ? 输入关键字 |