如何在zsh上编辑ssh的命令完成?
发布时间:2020-12-13 18:08:23 所属栏目:Linux 来源:网络整理
导读:我想在zsh上设置命令完成,以便在输入后显示主机名 ssh [TAB] 从我的.ssh / config文件中取出名称(最好是来自known_hosts和/ etc / hosts以及其他任何有意义的文件)并显示一个列表. 它目前正在做一些,但是 它根本不使用.ssh / config 它首先需要用户名,即使使
我想在zsh上设置命令完成,以便在输入后显示主机名
ssh [TAB] 从我的.ssh / config文件中取出名称(最好是来自known_hosts和/ etc / hosts以及其他任何有意义的文件)并显示一个列表. 它目前正在做一些,但是 >它根本不使用.ssh / config 所以我希望在输入ssh [TAB]后在(最好是单个)列表中包含已知的用户名和已知的主机名 (我来谷歌之前是因为1)它会导致答案存储在这里,2)它可能更有效率.如果没有其他人回答,我会找到答案.) 解决方法
这是我的.zshrc中的相关部分.它自2002年以来没有改变,所以今天我可能会用不同的方式编写它,但它仍然可以从?/ .ssh / config和?/ .ssh / known_hosts完成主机名(如果HashKnownHosts关闭 – 它不存在于那些天).
h=() if [[ -r ~/.ssh/config ]]; then h=($h ${${${(@M)${(f)"$(cat ~/.ssh/config)"}:#Host *}#Host }:#*[*?]*}) fi if [[ -r ~/.ssh/known_hosts ]]; then h=($h ${${${(f)"$(cat ~/.ssh/known_hosts{,2} || true)"}%% *}%%,*}) 2>/dev/null fi if [[ $#h -gt 0 ]]; then zstyle ':completion:*:ssh:*' hosts $h zstyle ':completion:*:slogin:*' hosts $h fi (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |