아마도 이것은 내 oh-my-zsh 설정에서 활성화한 일부 플러그인에서 제공하는 기능일 것입니다(저는 수년 동안 zsh를 사용해 왔습니다).
서버에 공개 키를 추가한 이후(이제 비밀번호를 입력하지 않고 서버에 SSH를 통해 연결할 수 있음) scp
셸에서 명령을 작성할 때 실제로 원격 파일 경로에 탭 완성 기능을 사용할 수 있다는 사실을 발견했습니다!
예를 들어
$ diff <(scp [email protected]:/var/www/html/
탭을 클릭하면 작동합니다! (명령 자체로 수행하려는 작업은 scp
stdout에 "복사"를 사용하고 이를 diff에 파일로 제공합니다. 이렇게 하면 이전 실행에서 서버에 배포한 정확한 변경 사항을 볼 수 있습니다. rsync
)
이 작품이 이렇게 대단한 이유가 무엇인지 궁금합니다. z 쉘과 통합되는 scp에 내장된 것이 있습니까? 아니면 다른 것입니까?
답변1
아아, 찾았어설명.
관련 부분을 인용하자면:
zsh 셸에는 원격 탭 완성과 같은 여러 가지 훌륭한 기능이 있습니다. 예를 들어, scp를 통해 파일을 복사하려면 원격 호스트의 파일 이름 중 아무 부분에서나 Tab 키를 누르기만 하면 됩니다. zsh는 백그라운드에서 SSH 세션을 설정하고 관련 정보를 얻을 수 있으므로 원격 파일을 통해 탭 완성을 수행할 수 있습니다.
게시물은 계속해서 zstyle
구현이 완료된 몇 가지 설명을 보여주지만 앞서 언급한 것과 같은 zsh 패키지를 사용하는 것이 좋습니다.아 맙소사OSS 커뮤니티가 이러한 것들을 유지 관리하도록 하십시오.
내 시스템의 .oh-my-zsh 디렉토리에 표시된 것처럼 관련성이 있는 것 같습니다.
$ ack scp
plugins/common-aliases/common-aliases.plugin.zsh
85:zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%
[# ]*}//,/ })'
<...>