Linux Shell编辑模式有 emacs 模式和 vi模式。Bash 默认的编辑模式为 emacs 编辑模式,以下命令仅在 emacs 模式有效
移动光标
ctrl+b: 前移一个字符(backward)
ctrl+f: 后移一个字符(forward)
alt+b: 前移一个单词
alt+f: 后移一个单词
ctrl+a: 移到行首(a是首字母)
ctrl+e: 移到行尾(end)
ctrl+x: 行首到当前光标替换
编辑命令
alt+.: 粘帖最后一次命令最后的参数(通常用于mkdir long-long-dir后,cd配合着alt+.)
alt+c: 从光标处更改为首字母大写的单词
alt+u: 从光标处更改为全部大写的单词
alt+l: 从光标处更改为全部小写的单词
alt+t: 交换光标处和之前的单词
alt+Backspace: 与 Ctrl + w 相同类似,分隔符有些差别
alt+d: 删除当前光标到临近右边单词开始(delete)
ctrl+w: 删除当前光标到临近左边单词结束(word)
ctrl+h: 删除光标前一个字符(相当于backspace)
ctrl+d: 删除光标后一个字符(相当于delete)
ctrl+u: 删除光标左边所有
ctrl+k: 删除光标右边所有
ctrl+l(小写 L): 清屏
ctrl+t: 交换光标处和之前的字符
ctrl+shift+c: 复制(相当于鼠标左键拖拽)
ctrl+shift+v: 粘贴(相当于鼠标中键)
其它
ctrl+n: 下一条命令
ctrl+p: 上一条命令
alt+n: 下一条命令(例如输入ls,然后按’alt+n’,就会找到历史记录下的ls命令)
alt+p: 上一条命令(跟alt+n相似)
shift+PageUp: 向上翻页
shift+PageDown: 向下翻页
ctrl+r: 进入历史查找命令记录, 输入关键字。 多次按返回下一个匹配项
ctrl+g: 从历史搜索模式退出
ctrl+p: 历史中的上一条命令
ctrl+n: 历史中的下一条命令
ctrl+o: 执行当前命令,并选择上一条命令
ctrl+s: 阻止屏幕输出
ctrl+q: 允许屏幕输出
ctrl+c: 终止命令
ctrl+z: 挂起命令
Bang (!) 命令
!!: 执行上一条命令
!blah: 执行最近的以 blah 开头的命令,如 !ls
!blah:p: 仅打印输出,而不执行
!
!*: 上一条命令的所有参数
!:p: 打印输出 ! 的内容 ^blah: 删除上一条命令中的 blah ^blah^foo: 将上一条命令中的 blah 替换为 foo ^blah^foo^: 将上一条命令中所有的 blah 都替换为 foo