历史记录的环境变量
- 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 |
普通模式下按 ? 输入关键字 |