当你需要给命令绑定一个宏或者按键的时候

当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?如果一个linux想要知道当前系统支持的所有命令的列表,他需要怎么做?

可以使用bind命令,bind可以很方便地在shell中实现宏或按键的绑定。

在进行按键绑定的时候,我们需要先获取到绑定按键对应的字符序列。

比如获取F12的字符序列获取方法如下:先按下Ctrl+V,然后按下F12 .我们就可以得到F12的字符序列 ^[[24~。

接着使用bind进行绑定。

[root@localhost ]# bind ‘”\e[24":"date"'

注意:相同的按键在不同的终端或终端模拟器下可能会产生不同的字符序列。

【附】也可以使用showkey -a命令查看按键对应的字符序列。

使用命令compgen ­-c,可以打印出所有支持的命令列表。

[root@localhost ~]$ compgen -c
l.
ll
ls
which
if
then
else
elif
fi
case
esac
for
select
while
until
do
done

若要给命令绑定一个宏或按键,可以使用 bindkey 命令。例如,将 Ctrl+a 绑定到 ls 命令上,可以使用以下命令:

bindkey "^A"="ls\n"


要知道当前系统支持的所有命令的列表,可以使用 compgen 命令。例如,要列出所有的系统命令,可以使用以下命令:

compgen -c