zsh - полностью раскрыть двоичный путь на <tab>

10

В моем текущем поведении zsh нажатие на вкладку после ввода «sudo» просто добавляет пробел.

$ sudo ...

Я действительно хочу, чтобы вкладка полностью развернулась до пути двоичного файла, который она собирается выполнить, когда я нажму на вкладку, что позволит мне увидеть, что будет запущено:

$ /usr/bin/sudo ...

Цель состоит в том, чтобы защитить от случая, когда локальный пользователь на моем компьютере взломан, запись добавлена ​​в мою $PATHпеременную, и sudo запускает вредоносную программу, которая может быть легко расширена до root.

Али
источник
Есть еще одно решение, которое не включает в себя привязку вкладки. Предварительно добавьте имя команды с помощью =и нажмите tab после команды, и она развернет имя команды в полный путь.
Миша Арефьев

Ответы:

7

Используйте bindkeyвстроенную команду для привязки ключей к командам Zsh, например так:

bindkey "^I" expand-cmd-path 

где "^I"находится таб. Вы можете просто вставить эту строку в свой ~/.zshrcфайл. Предупреждение: это нарушит автозаполнение аргументов.

Миша арефьев
источник
Ура! Очевидно, что это не идеальное решение, поэтому я связал его с Ctrl-O. Однако не так много двоичных файлов, которые принимают парольные вводы (sudo, ssh, gpg, ...), поэтому я рад просто нажимать Ctrl-O всякий раз, когда использую один из них. Я также должен отметить, что это не решает всю проблему, так как любой, имеющий доступ к моей учетной записи, может подорвать ее через .zshrc или xmonad.hs, но поможет мне в этом!
Али