使用Bash快捷键提高效率

昨天晚上写的这篇,今天看新闻说,windows要原生支持Bash shell。(_)

这是一篇翻译的文章,原文:Bash Shortcuts For Maximum Productivity。稍有修改和整理。

你可能知道,Bash有非常丰富的快捷键,能够让使用命令行轻松很多。Bash这种用快捷键编辑命令行的功能,是通过GNU Readline library实现的。这个库也被除了Bash之外的许多其它Unix或者Linux应用使用,因此,学习这些快捷键不仅能够使你更加方便地使用Bash,也能提高使用其它Unix或者Linux应用的效率(如果该应用也使用了GNU Readline library的话)。这里,我不想深入讲解Readline,只提一点。默认地,Readline使用emacs按键绑定,尽管可以配置成vi模式,但是,我更加喜欢学习大部分应用的缺省设置(我发现不用个性化设置,能省掉好多工作,可以使生活更加轻松)。如果你对emacs十分熟悉,那么你可能对这些命令并不陌生,因此,下面这些是写给那些不熟悉的人。

1、命令编辑的快捷键

1.1 移动光标

  • Ctrl + f 光标向前移动一个字符
  • Ctrl + b 光标向后移动一个字符
  • Alt + b 将光标向后移动一个单词
  • Alt + f 将光标向前移动一个单词
  • Ctrl + a 光标移动到命令的开头
  • Ctrl + e 光标移动到命令行的结尾
  • Ctrl + xx将光标在行首和当前位置交替

1.2 编辑

  • Ctrl + d 删除光标处的字符
  • Ctrl + h 删除光标前的字符
  • Ctrl + w 删除从光标到单词开头的所有字符(向后删除一个单词)
  • Alt + d 删除从光标处到单词结尾的所有字符(向前删除一个单词)
  • Ctrl + k 删除从光标到行尾的所有字符
  • Ctrl + u 删除从光标到行首的所有字符
  • Ctrl + y 将刚刚删除的内容粘贴到光标的后面
  • Alt + c 将光标到单词结尾的字符串的首字母大写
  • Alt + u 将光标到单词结尾的所有字符变成大写
  • Alt + l 将光标到单词结尾的所有字符变成小写
  • Ctrl + t 将光标处的字符和前一个字符调换位置
  • Alt + t 将当前单词和前一个调换位置

2、命令召回快捷键

  • Ctrl + r 向后搜索历史命令
  • Ctrl + g 退出命令搜索模式
  • Ctrl + p 命令历史中的前一条记录
  • Ctrl + n 命令历史中的后一条记录
  • Alt + . 召回前一条命令的最后一个单词

3、命令控制快捷键

  • Ctrl + l 清空屏幕
  • Ctrl + s 停止向屏幕输出(对于那些长时间运行且输出繁复的命令)
  • Ctrl + q 允许向屏幕输出(如果前面用命令停止了向屏幕输出的话)
  • Ctrl + c 终止命令
  • Ctrl + z 挂起/停止命令

4、Bash ! 命令

Bash允许你使用!来方便地处理Bash命令。

  • !! 运行上一条命令
  • !blah 运行上一条blah开头的命令
  • !blah:p 打印出!blah将会运行的命令,并将该命令作为最新的命令加到命令历史中
  • !$ 上一条命令的最后一个单词(相当于Alt + .)
  • !$:p 打印出!$代表的单词
  • !* 上一条命令除去最后一个单词的部分(比如,如果运行find some_file.txt /,然后,!*将给出find some_file.txt)
  • !*:p 打印出!*代表的内容

还有一件非常方便的使用技巧:^^命令的使用。如果你输入一条命令并运行,你可以用^^替换掉该命令中的一部分重新运行。下面是一个例子:

$ ls -al
total 12
drwxrwxrwx+ 3 Administrator None    0 Jul 21 23:38 .
drwxrwxrwx+ 3 Administrator None    0 Jul 21 23:34 ..
-rwxr-xr-x  1 Administrator None 1150 Jul 21 23:34 .bash_profile
-rwxr-xr-x  1 Administrator None 3116 Jul 21 23:34 .bashrc
drwxr-xr-x+ 4 Administrator None    0 Jul 21 23:39 .gem
-rwxr-xr-x  1 Administrator None 1461 Jul 21 23:34 .inputrc
$ ^-al^-lash
ls -lash
total 12K
   0 drwxrwxrwx+ 3 Administrator None    0 Jul 21 23:38 .
   0 drwxrwxrwx+ 3 Administrator None    0 Jul 21 23:34 ..
4.0K -rwxr-xr-x  1 Administrator None 1.2K Jul 21 23:34 .bash_profile
4.0K -rwxr-xr-x  1 Administrator None 3.1K Jul 21 23:34 .bashrc
   0 drwxr-xr-x+ 4 Administrator None    0 Jul 21 23:39 .gem
4.0K -rwxr-xr-x  1 Administrator None 1.5K Jul 21 23:34 .inputrc

这里,^-al^-lash将原来ls命令中的-al替换为-lash并重新运行。

说到Bash的快捷键,还有很多。但是,上面提到的囊括了90%能够极大提高Bash工作效率的快捷键。如果你觉得我漏掉了一个必需的Bash快捷键,请告诉我,我会在博客中更新。

    原文作者:SpaceCat
    原文地址: https://www.jianshu.com/p/55c891fcac29
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞