zsh-在<tab>上完全展开二进制路径


10

在我当前的zsh行为中,键入“ sudo”后单击tab只会添加一个空格。

$ sudo ...

我真正想要的是使选项卡完全扩展到在按下选项卡时将要执行的二进制文件的路径,从而使我能够看到将要运行的二进制文件:

$ /usr/bin/sudo ...

目的是防止我的计算机上的本地用户被黑客入侵,将条目添加到我的$PATH变量中以及“ sudo”运行恶意程序的情况,这很容易升级为root。


还有另一种不涉及重新绑定选项卡的解决方案。在命令名前加上=,然后在命令后按Tab键,它将命令名扩展为完整路径。
Mischa Arefiev

Answers:


7

使用bindkey内置命令将键绑定到Zsh命令,如下所示:

bindkey "^I" expand-cmd-path 

"^I"Tab 在哪里。您可以将此行放入~/.zshrc文件中。警告:它将破坏参数的自动完成。


干杯! 显然,这不是理想的解决方案,因此我将其绑定到Ctrl-O。但是,输入密码的二进制文件很少(sudo,ssh,gpg等),因此只要使用其中之一,我很高兴可以按Ctrl-O。不能解决整个问题,因为任何有权访问我的帐户的人都可以通过.zshrc或xmonad.hs来颠覆它,但是可以帮助我解决问题!
阿里
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.