如何在 Linux 的 Tab 补全中隐藏程序

如何在 Linux 的 Tab 补全中隐藏程序

我在一台共享机器上有一个帐户,但无法访问 /usr/bin,那里有很多我从未使用过的程序。

我希望制表符可以忽略其中许多程序。例如,我想on<TAB>完成到oneprog,但还有其他匹配项。

~> on
on_ac_power           oneprog          onto2vocabularyclass

除了创建 /usr/bin 的镜像之外,有没有其他方法可以隐藏另外两个匹配项?

答案1

假设猛击...

您可以使用 为选项/参数定义自己的自动完成规则complete。您可以通过导出变量 来定义在参数中被忽略的文件名后缀$FIGNORE

不过,我认为您无法改变 Bash 解析程序名称的方式。

当然,您可以alias运行您想要运行的程序,这样您就不必输入那么多:

[me@host ~]$ alias on=oneprog
[me@host ~]$ on

可以(如果您觉得很傻)为 Bash 内置命令添加别名,command并使用它complete来定义它将接受的参数(您的好程序列表),然后始终记得在真正的命令之前输入您的别名。

[me@host ~]$ alias run=command
[me@host ~]$ complete -W "ls cd" run
[me@host ~]$ run ls

也可以看看如何让自动完成功能忽略特定的完成

相关内容