加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在bash中,如何将一个功能键绑定到一个命令?

发布时间:2020-12-15 16:41:43 所属栏目:安全 来源:网络整理
导读:示例:我想绑定F12键到命令echo“foobar”,这样每次我点击F12的消息“foobar”将被打印到屏幕。理想情况下,它可以是任何任意shell命令,而不仅仅是内置。怎么会这样? 你可以通过在命令行按Ctrl-v,然后按下你感兴趣的键来确定一个键发出的字符序列。在我
示例:我想绑定F12键到命令echo“foobar”,这样每次我点击F12的消息“foobar”将被打印到屏幕。理想情况下,它可以是任何任意shell命令,而不仅仅是内置。怎么会这样?
你可以通过在命令行按Ctrl-v,然后按下你感兴趣的键来确定一个键发出的字符序列。在我的系统上为F12,我得到^ [[24?。 ^ [表示Esc。不同类型的终端或终端仿真器可以为相同的密钥发射不同的代码。

在Bash提示符下,您可以输入这样的命令来启用键宏,以便您可以尝试它。

bind '"e[24~":"foobar"'

现在,当你按F12,你会在命令行上获得“foobar”,准备进一步编辑。如果你想要一个键盘立即输入一个命令,你可以添加一个换行符:

bind '"e[24~":"pwdn"'

现在,当您按F12时,将显示当前目录,而不必按Enter键。如果你已经在线上键入了某些东西,并且使用这个自动执行了什么?它可能会弄乱。但是,您可以清除该行作为宏的一部分:

bind '"e[24~":"C-k C-upwdn"'

空格确保Ctrl-u有一些东西要删除,以保持铃声响起。

一旦你已经按照你想要的方式工作,你可以通过将它添加到?/ .inputrc文件来使它持久化。没有必要使用bind命令或外部的单引号:

"e[24~":"C-k C-upwdn"

编辑:

您还可以创建一个键绑定,将执行某些东西,而不打扰当前的命令行。

bind -x '"eW":"who"'

然后,当您键入需要用户名的命令时,例如,您需要知道登录的用户的名称,您可以按Alt-Shift-W,将显示谁的输出,提示将重新发出您的部分命令完整和光标在同一位置的行。

不幸的是,对于输出超过两个字符的F12等键,这不能正常工作。在某些情况下,这可以解决。

命令(在这种情况下是谁)可以是任何可执行文件 – 程序,脚本或函数。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读