我的主机名列表以web1,web2,...,web200,web201.myserver.ltd等开头
我已经在.ssh / config中使用了
Host *
User myuser
并在resolv.conf中:
search myserver.ltd
因此,我可以使用ssh myuser@web200.myserver.ltd
ssh web200
问题:我有没有办法在我的.zshrc文件中设置通配符别名,所以当我输入web200时,它会执行ssh web200? (同样适用于以webxxx开头的任何服务器。
我知道我可以通过为每个webxxx服务器使用单独的别名来设置它,但我正在寻找一条线(或几条线)来做到这一点。
答案 0 :(得分:2)
使用zsh,您可以使用command_not_found_handler
hook:
command_not_found_handler () {
[[ $1 = web* ]] && ssh "$@"
}
然后:
$ web200
ssh: Could not resolve hostname web200: Temporary failure in name resolution
zsh: command not found: web200