当前位置: 首页>>技术教程>>正文


是否有任何手册可以获取 bash 快捷键列表?

,

问题描述

在与 bash 命令行交互时,我使用了许多快捷方式来使工作更轻松、更快捷。

像:

  • ctrl + L : 清屏

  • ctrl + a /ctrl + e :移动行的开始/结束

  • ctrl + r : 只写几个字符来搜索命令的历史

  • ctrl + u /ctrl + y :剪切/粘贴线。

还有很多,我想知道的,肯定对学习有用。

我想知道从哪里可以获得 Ubuntu 中这些快捷方式的列表?有没有列出这些快捷方式的手册?

笔记:

我想在一个地方获取快捷方式列表及其操作。在短时间内学习其中的许多内容真的很有帮助。那么我们有没有办法得到这样的列表呢?虽然感谢您在这里给出的答案..

最佳回答

默认值在 man bash 中,以及每个命令的作用的详细信息。如果您更改了键绑定,请参阅 BroSlow 的回答。

   Commands for Moving
       beginning-of-line (C-a)
              Move to the start of the current line.
       end-of-line (C-e)
              Move to the end of the line.
       forward-char (C-f)
              Move forward a character.
       backward-char (C-b)
              Move back a character.
       forward-word (M-f)
              Move forward to the end of the next word.  Words are composed of alphanumeric characters (letters and digits).
       backward-word (M-b)
              Move back to the start of the current or previous word.  Words are composed of alphanumeric characters (letters and digits).
       shell-forward-word
              Move forward to the end of the next word.  Words are delimited by non-quoted shell metacharacters.
       shell-backward-word
              Move back to the start of the current or previous word.  Words are delimited by non-quoted shell metacharacters.
       clear-screen (C-l)
              Clear the screen leaving the current line at the top of the screen.  With an argument, refresh the current line without clearing the screen.

       reverse-search-history (C-r)
              Search backward starting at the current line and moving `up' through the history as necessary.  This is an incremental search.

       unix-line-discard (C-u)
              Kill backward from point to the beginning of the line.  The killed text is saved on the kill-ring.

       yank (C-y)
          Yank the top of the kill ring into the buffer at point.

EDIT

这些命令都在手册的连续部分中,因此您可以从 Commands for Moving 浏览它。或者,您可以将整个部分保存到文本文件中

man bash | awk '/^   Commands for Moving$/{print_this=1} /^   Programmable Completion$/{print_this=0} print_this==1{sub(/^   /,""); print}' > bash_commands.txt

(注意,这会打印整个部分,包括没有默认键盘快捷键的命令。)

awk代码的解释

  • 在(仅)出现 Commands for Moving 时,将变量 print_this 设置为 1。

  • 在(仅)出现 Programmable Completion 时,即下一节,将变量设置为 0。

  • 如果变量为 1,则去掉前导空格(三个空格),然后打印该行。

次佳回答

您可以通过使用 -P 选项调用 bash 内置 bind 来列出当前 bash shell 中的所有快捷方式。

例如

bind -P | grep clear
clear-screen can be found on "\C-l".

要改变它们,你可以做类似的事情

 bind '\C-p:clear-screen'

并将它放入一个 init 文件中以使其永久化(请注意,您一次只能将一个组合键绑定到一个事物,因此它将失去之前的任何绑定)。

第三种回答

以下命令提供了一个很好的柱状输出,显示了使用和快捷方式。

bind -P | grep "can be found" | sort | awk '{printf "%-40s", $1} {for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\n"}}'

这给出了一个输出,看起来像

abort                                   "\C-g", "\C-x\C-g", "\e\C-g". 
accept-line                             "\C-j", "\C-m". 
backward-char                           "\C-b", "\eOD", "\e[D". 
backward-delete-char                    "\C-h", "\C-?". 
backward-kill-line                      "\C-x\C-?". 
backward-kill-word                      "\e\C-h", "\e\C-?". 
backward-word                           "\e\e[D", "\e[1;5D", "\e[5D", "\eb". 
beginning-of-history                    "\e<". 
beginning-of-line                       "\C-a", "\eOH", "\e[1~", "\e[H". 
call-last-kbd-macro                     "\C-xe". 
capitalize-word                         "\ec". 
character-search-backward               "\e\C-]". 
character-search                        "\C-]". 
clear-screen                            "\C-l". 
complete                                "\C-i", "\e\e". 
...

使用以下命令将此输出放入文本文件

bind -P|grep "can be found"|sort | awk '{printf "%-40s", $1} {for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\n"}}' > ~/shortcuts

该文件是在您的 $HOME 目录中创建的。

Explanation

  • 获取所有快捷方式。

    \n

     bind -P\n

    \n

  • 删除所有未分配的快捷方式

    \n

     grep "can be found"\n

    \n

  • 对输出进行排序

    \n

     sort\n

    \n

  • 打印第一列(即函数)并对齐文本

    \n

     awk '{printf "%-40s", $1}\n

    \n

  • 这是上一个命令的一部分。它打印 6+ 列(即快捷方式)。

    \n

     {for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\\n"}}'\n

    \n

  • 将输出放入名为 shortcuts 的主目录中的一个漂亮的文本文件中

    \n

     > shortcuts\n

    \n

您可以通过运行以下命令了解该命令的工作原理。

bind -P
bind -P | grep "can be found"
bind -P | grep "can be found" | sort

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13279.html,未经允许,请勿转载。