zsh - w pełni rozwiń ścieżkę binarną na <tab>


10

W moim obecnym zachowaniu zsh naciśnięcie klawisza Tab po wpisaniu „sudo” po prostu dodaje spację.

$ sudo ...

To, czego naprawdę chcę, to aby karta w pełni rozwinęła się do ścieżki pliku binarnego, który ma wykonać po naciśnięciu klawisza Tab, pozwalając mi zobaczyć, co zostanie uruchomione:

$ /usr/bin/sudo ...

Celem jest ochrona przed przypadkiem włamania się do lokalnego użytkownika na mojej maszynie, dodania wpisu do mojej $PATHzmiennej, a „sudo” uruchamia szkodliwy program, który łatwo byłoby zrootować do rootowania.


Istnieje inne rozwiązanie, które nie wymaga zakładki ponownego wiązania. Wpisz nazwę polecenia za pomocą =i naciśnij klawisz tab po poleceniu, a rozwinie ono nazwę polecenia do pełnej ścieżki.
Mischa Arefiev

Odpowiedzi:


7

Użyj bindkeywbudowanego polecenia, aby powiązać klucze z poleceniami Zsh, w następujący sposób:

bindkey "^I" expand-cmd-path 

gdzie "^I"jest Tab. Możesz po prostu upuścić tę linię do swojego ~/.zshrcpliku. Ostrzeżenie: spowoduje to przerwanie automatycznego uzupełniania argumentów.


Twoje zdrowie! Oczywiście nie jest to idealne rozwiązanie, więc zamiast tego związałem to z Ctrl-O. Jednak nie ma wielu plików binarnych, które wymagają wprowadzenia hasła (sudo, ssh, gpg, ...), więc cieszę się, że mogę nacisnąć Ctrl-O, ilekroć używam jednego z nich. Powinienem również zauważyć, że to nie rozwiązuje całego problemu, ponieważ każdy, kto ma dostęp do mojego konta, może go obalić przez .zshrc lub xmonad.hs, ale pomaga mi w tym!
Ali
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.