Linux bash 命令行快捷键

在终端环境下进行日常操作时,经常需要对命令行的命令进行编辑,为了提高我们的编辑效率,整理了一些在 bash 中进行命令编辑的快捷键,希望能够对大家有帮助。

在历史命令中查找

通过 Ctrl + r 组合键可以反向增量查找消息历史,很好用。 比如很久以前输入过某个命令如: gcc -c -DKKT -Dnnn 等等一长串, 用上下方向键来找比较困难,这时候可以 Ctrl + r,然后输入 gcc 很快找到该命令,重复按 Ctrl + r 将查找更早的历史。

  • Ctrl + r :逆向搜索历史命令
  • Ctrl + g :从历史搜索模式退出
  • Ctrl + p :历史中的上一条命令
  • Ctrl + n :历史中的下一条命令
  • Alt + . :使用上一条命令的最后一个参数

命令行中移动

  • Ctrl + f 表示在命令行中向后移动一个字符。
  • Ctrl + b 表示在命令行中向前移动一个字符。
  • 移动一个字符往往不能满足需求,这时需要移动一个单词的快捷键。
  • Alt + f 表示在命令行中向后移动一个单词。
  • Alt + b 表示在命令行中向前移动一个单词。
  • Ctrl + a 表示移动到命令行的行首。
  • Ctrl + e 表示移动到命令行的行尾。

命令行中删除

  • Alt + d 往右边删除一个单词
  • Alt + Backspace 往左删除一个单词
  • Ctrl + u 往左删除到行首
  • Ctrl + k 往右删除到行末

其中这些删除都放入了删除环里面,可以使用 Ctrl + y 找回。

Alt + y 在删除环里面移动也就是说命令行里面可以使用剪切和粘贴了。

上面的几条如果用熟练了效率能提高很多。

Bang(!)命令

  • !!:执行上一条命令
  • !blah:执行最近的以 blah 开头的命令,如 !ls
  • !blah:p:仅打印输出,而不执行
  • !$:上一条命令的最后一个参数,与 Alt + . 相同
  • !$:p:打印输出 !$ 的内容
  • !*:上一条命令的所有参数
  • !:p:打印输出 ! 的内容
  • ^blah:删除上一条命令中的 blah
  • ^blah^foo:将上一条命令中的 blah 替换为 foo
  • ^blah^foo^:将上一条命令中所有的 blah 都替换为 foo

写在最后

Bash 下有两种输入模式 vi 模式 和 emacs模式,其中emacs是默认模式。可以通过 set -o viset -o emacs 来转换。

参考资料

  1. Bash 的4中运行模式
  2. Bash下Vi输入模式重设Ctrl-N, Ctrl-P, Ctrl-L等快捷键

cocowool

A FULL STACK DREAMER!