zsh - <tab> üzerindeki ikili yolu tamamen genişlet


10

Şu anki zsh davranışımda, "sudo" yazdıktan sonra sekmeye basmak sadece bir boşluk ekliyor.

$ sudo ...

Gerçekten istediğim, sekmenin tam olarak sekmeye bastığımda yürütmek üzere olan ikili yolun sonuna kadar genişlemesini sağlamak için neyin çalıştırılacağını görmeme izin vermek için:

$ /usr/bin/sudo ...

Amaç, makinemdeki yerel kullanıcının saldırıya uğradığı, $PATHdeğişkenime eklenen bir girişin ve 'sudo'nun kötü niyetli bir program çalıştırdığı, bu da root alması kolay bir durumdur.


Yeniden bağlama sekmesi içermeyen başka bir çözüm daha var. Komut adının başına yazın ve komutun =ardından sekmeye basın; komut adını tam yola genişletir.
Mischa Arefiev

Yanıtlar:


7

bindkeyAnahtarları aşağıdaki gibi Zsh komutlarına bağlamak için yerleşik komutunu kullanın :

bindkey "^I" expand-cmd-path 

"^I"Tab nerede . Bu satırı ~/.zshrcdosyanıza bırakabilirsiniz . Uyarı: bağımsız değişkenlerin otomatik tamamlanmasını bozacaktır.


Şerefe! Açıkçası bu ideal bir çözüm değildir, bu yüzden onu Ctrl-O'ya bağladım. Ancak şifre girişleri (sudo, ssh, gpg, ...) alan çok sayıda ikili yoktur, bu yüzden bunlardan birini kullandığımda Ctrl-O'ya basmaktan mutluluk duyuyorum. hesabıma erişimi olan herkes .zshrc veya xmonad.hs aracılığıyla bozabilir, ancak bana oraya bir şekilde ulaşır!
Ali
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.