如何为“Linux命令”设置快捷键?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为“Linux命令”设置快捷键?相关的知识,希望对你有一定的参考价值。

参考技术A Linux的一个特色就是其命令多而且功能强大, 频繁输入命令不仅麻烦而且工作量较大,虽然可以使用TAB进行>命令补足,或者使用aliase来简化某个命令的输入,但这并不能从根本上解决敲击键盘次数过多的问题。\\x0d\\x0a\\x0d\\x0a可以把任何命令或命令的组合指定给键盘上的某个键,可以是Alt+[A-Z],\\x0d\\x0aCtrl-[A-Z], Alt+Shift+[A-Z], F1-F12, Ctrl-F[1-12], Alt-F[1-12], Alt+Shift+F[1-12],还有更不可思议的是甚至还可以为功能键加上“参数”,这样你按下那个键的时候,它会等待你输入相应的参数,并根据不同的参数运行不同的命令。\\x0d\\x0a\\x0d\\x0a当然,有一些热键会被终端所捕获,如常见的Ctrl-D/C/Q/Z等,不过没关系,可用的热键还多着呢!\\x0d\\x0a\\x0d\\x0a定义热键的配置文件为:/etc/inputrc 或 ~/.inputrc,定义热键的格式如下:\\x0d\\x0a\\x0d\\x0a"<热键对应的ASCII字符>":"<执行的命令>"\\x0d\\x0a\\x0d\\x0a其中热键对应的ASCII字符可以通过 "先按Ctrl-V, 然后按热键" 的方式来输入, 如Ctrl-G对应的字符为^G, Alt-P对应的字符为^[p, Ctrl-Alt-H对应的字符为^[^H.\\x0d\\x0a\\x0d\\x0a可以用/C来代替Ctrl,/M来代替Alt, /M-/C来代替Alt-Ctrl, 如/C-M = Ctrl-M, /M-/C-H = Alt-Ctrl-M. 另外还可以用/e代表^[.\\x0d\\x0a\\x0d\\x0a先来看一些基本的热键定义,(这里热键里的字母不区分大小写):\\x0d\\x0a"^[-":"su -/C-M" # 按Alt+- 执行su - 命令,末尾/C-M表示输入完定义的命令后回车,也可以更简洁地用一个/n来表示.\\x0d\\x0a\\x0d\\x0a"/M-/C-G":"gaim & &>/dev/null && disown/C-M"\\x0d\\x0a# 按Ctrl-Alt-g在当前shell打开gaim, 并脱离该shell独立运行,即:即使你退出了该shell, gaim也不会关闭\\x0d\\x0a\\x0d\\x0a其他一些组合键可以根据自己的需要配置,偶就不多说了.\\x0d\\x0a\\x0d\\x0a大家也许会觉得这样定义热键太乱了,而且很难记住,还有一定的限制。这个问题在后面会得到解决。\\x0d\\x0a\\x0d\\x0a一般情况下,我们可以使用上下方向键来查找命令历史列表,以此重复输入命令,但是方向键离主键盘区太远,如>果频繁使用的话,会耽误不少时间,而且挪动右手时也不太方便,有没有什么办法把方向键的功能转移到我们经常>敲命令的地方呢?如使用Alt+J = Down Arrow 向下查找,Alt+K=Up Arrow 向下查找\\x0d\\x0a\\x0d\\x0a通过定义热键可以做到这点:\\x0d\\x0a\\x0d\\x0a"/eh":"^[OD" # move left\\x0d\\x0a# Alt-H 向左移一个字符, 相当于Left Arrowgh, 这里^[OD即向上方向键的ASCII字符,输入方式与前面提到的类似\\x0d\\x0a"/el":"^[OC" # move right\\x0d\\x0a# Alt-L 向右移一个字符,相当于Right Arrow\\x0d\\x0a\\x0d\\x0a"/ej":"^[OB" # move up\\x0d\\x0a# Alt-J 向下移动,相当于Up Arrow\\x0d\\x0a\\x0d\\x0a"/ek":"^[OA" # move down\\x0d\\x0a# Alt-K 向上移动,相当于Down Arrow\\x0d\\x0a\\x0d\\x0a"/ei":"^?" # left earse one character\\x0d\\x0a# Alt-I 向左删除一个字符,相当于Backspace\\x0d\\x0a\\x0d\\x0a"/eo":delete-char # right earse one character\\x0d\\x0a# Alt-O 向右删除一个字符,相当于Delete\\x0d\\x0a\\x0d\\x0a"/en":backward-kill-word # left kill one word\\x0d\\x0a# Alt-N 向左删除一个单词\\x0d\\x0a\\x0d\\x0a"/em":kill-word # right kill one word\\x0d\\x0a# Alt-M 向右删除一个单词\\x0d\\x0a\\x0d\\x0a"/ea":"^[n^[n^[n^[n^[n^[n^[n" # kill to the head\\x0d\\x0a# Alt-A 删除当前位置到开头,也就是多Alt-N几次(A--> ahead)\\x0d\\x0a\\x0d\\x0a"/ee":"^[m^[m^[m^[m^[m^[m^[m" # kill to the head\\x0d\\x0a# Alt-E 删除当前位置到末尾,也就是多Alt-M几次(E--> end)\\x0d\\x0a\\x0d\\x0a"/ep": insert-last-argumem"\\x0d\\x0a# Alt-P 插入上一个命令最后一个参数 (P--> Paste)\\x0d\\x0a\\x0d\\x0a"/ew": forward-word\\x0d\\x0a# 系统默认Alt-F (forward)跳到当前单词词尾,如果已在词尾,则跳到下一个单词(右边一个单词)词尾\\x0d\\x0a\\x0d\\x0a"/eq": backward-word\\x0d\\x0a# 系统默认Alt-B (backward)跳到当前单词词首,如果已在词首,则跳到上一个单词(左边一个单词)词首\\x0d\\x0a\\x0d\\x0a发觉F和B键离得太远,不方便,偶分别改作Alt-Q, Alt-W, 但是Alt-F/B照样可以用\\x0d\\x0a\\x0d\\x0a这样输入命令的时候几乎可以不用离开主键盘区,而且移动光标,删除字符,删除单词,上下历史命令查找都集中>在一块,比以前方便多了。不过开始可能有些不习惯,就跟使用vi一样,但是多练几次就熟练了。\\x0d\\x0a\\x0d\\x0aLinux下绝大部分服务的配置是基于配置文件的,一般说来,更改了某个服务的配置文件,要使其立即生效,还需重启该服务直接的或依附的守护进程才行。难道你就不觉得“每次 vi /etc/xxx.conf 完后又 service xxx restart/reload 或 killall -HUP xxx”这样做很繁琐么?如果要配置的服务较多而且要不停地调试呢?况且我们平常使用Linux时难免会不时地终止或启动某个服务进程,输入命令的次数也不少。如果为每个服务都指定一个热键的话,似乎不大可能。如果我们赋予一个热键为一个基本键,而相应的服务为其“参数”,那又如何呢?\\x0d\\x0a\\x0d\\x0a举个例子,赋予Alt-S (S-->Start)为启动服务的基本键,服务名的前2个字符为启动“参数”,那么就可以像下面那样随意启动某个服务了:\\x0d\\x0a"/essm":"service smb start/n"\\x0d\\x0a# /es=Alt-s, sm=smb,\\x0d\\x0a# 即:按下Alt-s后紧跟着再输入sm(这时输入的sm并不会显示在终端上),就可以启动samba的服务进程了,不必担心按下键与输入“参数”间的时间延迟问题,你按下Alt-s,然后去外面兜一圈回来,再接着输入sm,照样可以。\\x0d\\x0a\\x0d\\x0a"/esht":"service httpd start/n" # ht=httpd,启动Apache服务\\x0d\\x0a\\x0d\\x0a类似地,我们赋予\\x0d\\x0aAlt-D(D--> shutDown) 为停止服务的基本键\\x0d\\x0aAlt-R(R--> Restart) 为重启服务的基本键\\x0d\\x0aAlt-T(T--> Status) 为查看服务状态的基本键\\x0d\\x0aAlt-C(C--> Configure) 为打开服务对应的主配置文件的基本键\\x0d\\x0a如:"/ecnf":"vi /etc/exports/n" # Alt-c+nf 打开NFS的配置文件\\x0d\\x0a"/ecsm":"vi /etc/samba/smb.conf/n" # Alt-c+sm 打开smb的配置文件\\x0d\\x0a\\x0d\\x0a如果某个服务(如ssh)有2个配置文件,可以在其后再加一个数字,如:\\x0d\\x0a"/ecssh1":"vi /etc/ssh/sshd_config/n" # 打开sshd服务端配置文件\\x0d\\x0a"/ecssh2":"vi /etc/ssh/ssh_config/n" # 打开sshd客户端配置文件\\x0d\\x0a\\x0d\\x0a如果要执行某个应用程序呢?可以用Alt-x做基本键(x--> eXeccute) 如:\\x0d\\x0a"/exga":"gaim & &>/dev/null && disown && clean /n"\\x0d\\x0a"/exxm":"xmms & &>/dev/null && disown && clean /n"\\x0d\\x0a"/exvm":"vmware & &>/dev/null && disown && clean /n" "/exna":"nautilus & &>/dev/null && disown && clean /n"\\x0d\\x0a等等....\\x0d\\x0a\\x0d\\x0a到现在为止我们只要按1个组合键+2个字符就可以实现下面众多的功能:\\x0d\\x0a1. 执行指定的应用程序\\x0d\\x0a2. 启动|重启|关闭|指定的服务进程\\x0d\\x0a3. 查看指定服务的状态\\x0d\\x0a4. 打开指定服务的指定配置文件

如何为Mac任意命令设置快捷键?

在用电脑工作时,最离不开的就是各种各样的快捷键。Command-C 拷贝,Command-V 粘贴,Command-Tab 切换 App&m;&mDash;每个人都有自己最常用的快捷键。但你知道吗?其实在 Mac 上你还可以为常用 App 的每个菜单项目分别创建快捷键。

你可以针对某个 App 创建专属快捷键,或者创建适用于所有 App 的通用快捷键。

为特定 App 创建快捷键

举个例子,想让《照片》中的图像水平翻转,你通常需要选择「图像 &nDash; 水平翻转」。如果需要多次操作,是不是觉得有点麻烦?那么就创建一个快捷键吧。

在菜单栏中选择「 &nDash; 系统偏好设置 &nDash; 键盘 &nDash; 快捷键」,在左侧列表中选择「应用快捷键」,再点按「+」按钮,就可以添加一个新的快捷键。

选择照片应用

在弹出菜单中选择「照片」,然后在「菜单标题」栏中输入「水平翻转」。你在这里输入的内容必须与相关命令在菜单中显示的名称一致,包括标点符号。然后,在「键盘快捷键」栏中输入你想要的按键组合,其中必须包含 Command,Option,Shift 和 Control 四个按键之一。(注意设置的快捷键不要和其它快捷键冲突,否则将无法触发)!

我们建议你选择与命令本身相关的按键以便记忆,比如将水平翻转的快捷键设为「Shift &nDash; Command &nDash; H」,用字母 H 代表水平(Horizontal)。另外,不要选择 App 中已经在使用的快捷键。最后,点按「添加」,就可以开始使用快捷键了。

创建全局快捷键

你也可以创建适用于所有 App 的快捷键。比如,如果你打算将任意文稿存储为 PDF,通常需要打开打印对话框,再在下方的 PDF 弹出菜单里找到相应的命令。

为它创建快捷键的步骤和上面大同小异,在弹出菜单中选择「所有应用程序」,在「菜单标题」中输入「存储为 PDF」(需要保留空格),然后设置快捷键就可以了。

打印对话框中的「存储为 PDF」命令很实用,但它平常隐藏得太深了。设置一个快捷键,用得更顺手。

我们选择「Command-P」作为这个命令的快捷键,有的朋友就问了,那不是打印的快捷键吗?没关系,因为「存储为 PDF」只会在打印对话框中出现,所以这两个快捷键是不会冲突的。按两次「Command-P」就能使用这个命令&mDash;&mDash;第一次打开打印对话框,第二次调出「存储为 PDF」界面,是不是简单多了?

创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于如何为“Linux命令”设置快捷键?的主要内容,如果未能解决你的问题,请参考以下文章

linux提示命令快捷键是啥?

如何为Mac任意命令设置快捷键?

linux怎么用命令打开命令窗口

常用Linux命令

Linux系统管理第一章

linux 命令行 缓冲区太小怎么办