Linux 命令行文本操作快捷键

可能有些人不知道,Linux命令行也有一些方便文本操作的快捷键,如跳到行首的快捷键是Ctrl-a,,跳到行尾的快捷键是Ctrl-e,删除光标所在处的字符的快捷键是Ctrl-d。 虽然这些快捷键很多时候都可以被小键盘的左右移动键、Home和End键替代,但是对于比较长的命令的修改,快捷键的操作还是比较快的。因为我平时用Vim比较多,而Linux命令行绑定的是Emacs的快捷键方式,虽然可以通过在命令行执行set -o vi修改为Vim的快捷键方式,但是这样会影响常用的像Ctrl-pCtrl-n等操作,因此我还是打算将这些难记的文本操作快捷键总结下来,让自己多练习,以后能更熟练地使用。注意这里我只列了文本操作的快捷键,像别的历史命令查询Ctrl-r和清屏操作Ctrl-l等快捷操作,大家可以参考我写的这篇博客

指令说明:

  1. Alt-a: 表示 按住Alt键的同时按住小写的a,即同时按住Alt键、字母a键
  2. Alt-A: 表示 按住Alt键的同时按住大写的A,即同时按住Alt键、SHIFT键和字母a键

移动

  1. Ctrl-f: 光标向前移动一个字符,这里的前不是前面,而是表示敲字符时下一个字符的顺序,即向右移动一个字符
  2. Ctrl-b: 光标向后移动一个字符,即向左移动一个字符
  3. Alt-f: 光标向右移动一个单词,这里的单词表示用标点符号下划线等分开的数字和字母串,因此像256_3484_2222需要按3次Alt-f才能从开始到结尾
  4. Alt-b: 光标向左移动一个单词,单词的定义同上一条
  5. Ctlr-a: 光标移动到行首
  6. Ctrl-e: 光标移动到行尾
  7. Ctrl-x-x: 将光标移动到行首,再按一次则光标跳回当前位置

增加和删除

  1. Ctrl-d: 删除光标处的字符,即字符删除
  2. Ctrl-h: 删除光标左边的字符,效果同退格键
  3. Alt-d: 向右删除光标处字符所在单词,保留下一个单词分隔符。注意:如果光标所在位置为标点符号,则删除这个标点符号和跟在它后面的一个单词
  4. Ctrl-w: 删除光标左边的单词,如果当前的光标在单词中间,则删除这个单词在光标左侧的部分
  5. Ctrl-k: 删除光标后面的所有内容
  6. Ctrl-u: 删除输入的所有字符
  7. Ctrl-y: 粘贴之前一次Ctrl-k 或Ctrl-w 删除掉的内容
  8. Atl-t: 交换光标所在单词和左边的单词
  9. Ctrl-t: 交换光标处字符和左边的字符,然后光标移动到下一个字符
  10. Alt-u: 将光标所在单词的右边部分全变为对应的大写字母,光标移动到当前单词后面的标点符号上
  11. Alt-l: 将光标所在单词的右边部分全变为对应的小写字母,光标移动到当前单词后面的标点符号上
  12. Alt-c: 将光标所在处字母变为大写,然后光标移动到当前单词后面的标点符号处
  13. Ctrl-_: 取消之前的一个字符的操作,可以重复多次。注:这条比较特殊,我在cygwin中测试的时候,需要按Ctrl-SHIFT-_才可以。

参考:

  1. Linux 命令行编辑快捷键.md
  2. The Best Keyboard Shortcuts for Bash (aka the Linux and macOS Terminal)