zsh-<tab>에서 이진 경로를 완전히 확장


10

내 현재 zsh 동작에서 "sudo"를 입력 한 후 탭을 누르면 공백이 추가됩니다.

$ sudo ...

내가 정말로 원하는 것은 탭을 눌렀을 때 실행할 바이너리의 경로로 탭을 완전히 확장하여 실행할 항목을 볼 수 있도록하는 것입니다.

$ /usr/bin/sudo ...

내 컴퓨터의 로컬 사용자가 해킹되고 내 $PATH변수에 추가 된 항목 인 'sudo'가 악의적 인 프로그램을 실행하는 경우를 방지하는 것이 목표입니다 .


리 바인딩 탭을 포함하지 않는 또 다른 솔루션이 있습니다. 명령 이름 앞에 명령을 붙이고 명령 =다음에 Tab 키를 누르면 명령 이름이 전체 경로로 확장됩니다.
Mischa Arefiev

답변:


7

다음과 같이 bindkey내장 명령을 사용 하여 키를 Zsh 명령에 바인드하십시오.

bindkey "^I" expand-cmd-path 

"^I"탭은 어디에 있습니까 ? 이 줄을 ~/.zshrc파일에 넣을 수 있습니다. 경고 : 인수 자동 완성을 중단합니다.


건배! 분명히 이것은 이상적인 솔루션이 아니므로 대신 Ctrl-O에 바인딩했습니다. 그러나 암호 입력 (sudo, ssh, gpg 등 ...)을 사용하는 바이너리는 많지 않으므로 그중 하나를 사용할 때마다 Ctrl-O를 누르는 것이 기쁩니다. 내 계정에 액세스 할 수있는 사람은 .zshrc 또는 xmonad.hs를 통해 계정을 전복 할 수 있기 때문에 전체 문제를 해결하지는 못하지만 저에게 약간의 길을 알려줍니다!
알리
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.