Linux bind命令介绍
bind命令在Linux系统中,用于显示或设置键盘的按键与内部函数或字符串之间的绑定。在我们使用命令行工作时,根据我们的习惯,可以自定义命令的快捷键,使得工作更加便捷。
Linux bind命令适用的Linux版本
bind命令在大多数Linux发行版中,如Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian等都能使用。在某些系统版本中,如果该命令不可用或无法找到,则大概率是因为没有安装bash
或者bash
的版本太低没有该命令。
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install bash # Debian/Ubuntu
[linux@bashcommandnotfound.cn ~]$ sudo yum install bash # RedHat/CentOS/Fedora/Raspbian
[linux@bashcommandnotfound.cn ~]$ sudo apk add bash # Alpine
[linux@bashcommandnotfound.cn ~]$ pacman -S bash --no-confirm # Arch Linux/Kali Linux
Linux bind命令的基本语法
bind [-m keymap] [-lpsvPSVX] [-q name] [-u name] [-r keyseq][-x keyseq:shell-command] [-t keyseq:text] [keyseq:readline-function or readline-command]
Linux bind命令的常用选项或参数说明
选项 | 说明 |
---|---|
-m | 后面接按键模式名 |
-l | 列出.Readline库所能接纳的函数名称 |
-p | 以可重设的形式列出.Readline绑定的函数 |
-P | 列出.Readline绑定的函数名称 |
-s | 以重设的形式列出.Readline所绑定的巨集 |
-S | 列出.Readline绑定的巨集名称 |
-v | 以可重设的形式列出.Readline变量 |
-V | 列出.Readline变量的名称 |
-q | 加上一个.Readline命令的名称,绑定到该命令的按键将会被列出 |
-u | 取消指定的.Readline命令的所有按键绑定 |
-r | 取消指定的按键绑定 |
-t | 使指定的按键未绑定,它将会被变为self-insert |
-x | 将指定的按键绑定为执行shell命令 |
-f | 读取输入文件,将其中的按键绑定加入到当前的按键绑定中去 |
Linux bind命令实例详解
实例1:显示当前所有的绑定设置
[linux@bashcommandnotfound.cn ~]$ bind -p
实例2:显示"Control-k"的绑定设置
[linux@bashcommandnotfound.cn ~]$ bind -P k
实例3:将"Control-x"绑定到命令"ls"
[linux@bashcommandnotfound.cn ~]$ bind -x '"\C-x":ls'
实例4:绑定字符串到按键上
[linux@bashcommandnotfound.cn ~]$ bind '"\e[5C": forward-word'
实例5:删除某个按键的绑定
[linux@bashcommandnotfound.cn ~]$ bind -r '\C-x'
实例6:显示所有函数的列表
[linux@bashcommandnotfound.cn ~]$ bind -l
实例7:绑定"C-p"到一个函数up-case-word(该函数将光标当前位置的单词转换为大写)
[linux@bashcommandnotfound.cn ~]$ bind '"\C-p": up-case-word'
实例8:删除具体按键的绑定
[linux@bashcommandnotfound.cn ~]$ bind -r "\C-p"
实例9:将“Control-t”绑定到“ls -l”命令
[linux@bashcommandnotfound.cn ~]$ bind -x '"\C-t": ls -l'
实例10:配置“Control-a”跳到行首并加上sudo前缀
[linux@bashcommandnotfound.cn ~]$ bind '"\C-a": "sudo \C-e\C-m"'
Linux bind命令的注意事项
- 使用bind命令需要一定的Linux基础和Readline库的认识,不然难以深入理解和使用。
- bind命令不适用于所有shell终端,而是bash特有的命令,使用其他shell的用户需要调整为bash后才能使用。
- 若提示bash: bind: command not found,按照上述安装步骤重新安装bash。
Linux bind相关命令
- set命令:可以显示当前所有Readline设置的绑定值
- unset命令:用于删除先前设定的绑定值
- stty命令:可用于修改终端驱动的方式来设定Readline使用的按键
- history命令:用于显示命令历史,可与bind命令配合使用