如何将Linux命令设置成键盘快捷键?

时间:2021-11-29 02:29:58

我们都知道,Linux系统操作大部分都需要使用命令完成,但命令多了操作起来较为繁琐,如果将常用命令设置成键盘快捷方式则简单很多,下面小编就给大家介绍下将Linux命令设置成键盘快捷键的方法,感兴趣的朋友一起来看看吧。

如何将Linux命令设置成键盘快捷键?

可以把任何命令或命令的组合指定给键盘上的某个键,可以是Alt+[A-Z],

Ctrl-[A-Z], Alt+Shift+[A-Z], F1-F12, Ctrl-F[1-12], Alt-F[1-12], Alt+Shift+F[1-12],还有更不可思议的是甚至还可以为功能键加上“参数”,这样你按下那个键的时候,它会等待你输入相应的参数,并根据不同的参数运行不同的命令。

当然,有一些热键会被终端所捕获,如常见的Ctrl-D/C/Q/Z等,不过没关系,可用的热键还多着呢!

定义热键的配置文件为:/etc/inputrc 或 ~/.inputrc,定义热键的格式如下:

“《热键对应的ASCII字符》”:“《执行的命令》”

其中热键对应的ASCII字符可以通过 “先按Ctrl-V, 然后按热键” 的方式来输入, 如Ctrl-G对应的字符为^G, Alt-P对应的字符为^[p, Ctrl-Alt-H对应的字符为^[^H.

可以用/C来代替Ctrl,/M来代替Alt, /M-/C来代替Alt-Ctrl, 如/C-M = Ctrl-M, /M-/C-H = Alt-Ctrl-M. 另外还可以用/e代表^[。

先来看一些基本的热键定义,(这里热键里的字母不区分大小写):

“^[-”:“su -/C-M” # 按Alt+- 执行su - 命令,末尾/C-M表示输入完定义的命令后回车,也可以更简洁地用一个/n来表示。

“/M-/C-G”:“gaim & &》/dev/null && disown/C-M”

# 按Ctrl-Alt-g在当前shell打开gaim, 并脱离该shell独立运行,即:即使你退出了该shell, gaim也不会关闭

其他一些组合键可以根据自己的需要配置,偶就不多说了。

大家也许会觉得这样定义热键太乱了,而且很难记住,还有一定的限制。这个问题在后面会得到解决。

一般情况下,我们可以使用上下方向键来查找命令历史列表,以此重复输入命令,但是方向键离主键盘区太远,如》果频繁使用的话,会耽误不少时间,而且挪动右手时也不太方便,有没有什么办法把方向键的功能转移到我们经常》敲命令的地方呢?如使用Alt+J = Down Arrow 向下查找,Alt+K=Up Arrow 向下查找

通过定义热键可以做到这点:

“/eh”:“^[OD” # move left

# Alt-H 向左移一个字符, 相当于Left Arrowgh, 这里^[OD即向上方向键的ASCII字符,输入方式与前面提到的类似

“/el”:“^[OC” # move right

# Alt-L 向右移一个字符,相当于Right Arrow

“/ej”:“^[OB” # move up

# Alt-J 向下移动,相当于Up Arrow

“/ek”:“^[OA” # move down

# Alt-K 向上移动,相当于Down Arrow

“/ei”:“^?” # left earse one character

# Alt-I 向左删除一个字符,相当于Backspace

“/eo”:delete-char # right earse one character

# Alt-O 向右删除一个字符,相当于Delete

“/en”:backward-kill-word # left kill one word

# Alt-N 向左删除一个单词

“/em”:kill-word # right kill one word

# Alt-M 向右删除一个单词

“/ea”:“^[n^[n^[n^[n^[n^[n^[n” # kill to the head

# Alt-A 删除当前位置到开头,也就是多Alt-N几次(A--》 ahead)

“/ee”:“^[m^[m^[m^[m^[m^[m^[m” # kill to the head

# Alt-E 删除当前位置到末尾,也就是多Alt-M几次(E--》 end)

“/ep”: insert-last-argumem“

# Alt-P 插入上一个命令最后一个参数 (P--》 Paste)

”/ew“: forward-word

# 系统默认Alt-F (forward)跳到当前单词词尾,如果已在词尾,则跳到下一个单词(右边一个单词)词尾

”/eq“: backward-word

# 系统默认Alt-B (backward)跳到当前单词词首,如果已在词首,则跳到上一个单词(左边一个单词)词首