我有 5 台服务器需要管理(ssh、隧道等)。那么有没有一种方法/插件可以执行自由文本搜索并执行命令。例如,我将一个句子映射到 bash 命令,并通过自由文本搜索在终端中进行过滤。我知道使用 ctrl + R 命令进行历史搜索,但是搜索所有 ip 来查找相关服务器有点麻烦。
例如
Text : "ssh to server 1" >> "ssh nirojan@ipaddress"
Text : "tunnel to server 5" "ssh -L 5234:localhost:5433 "
答案1
专门针对 SSH
在 SSH 客户端配置文件中定义主机别名~/.ssh/config
。例如:
Host server1
Hostname ipaddress
User nirojan
Host server5-tunnel
Hostname server5
LocalForward 5234:localhost:5433
那么就ssh server1
相当于nirojan@ipaddress
, 依此类推。这种方法的优点是它适用于所有在底层使用 SSH 的东西,例如rsync -a somefile server1:some/directory
。
如果您在 bash 或 zsh 上启用了上下文相关补全,shell 将补全主机别名,您可以将它们与ssh
、sftp
、rsync
等命令一起使用。
另外,如果您需要在多个服务器上执行相同的操作,请参阅在许多服务器上通过 SSH 自动运行命令
答案2
如果您的 shell 支持别名(请参阅注释部分),您可以使用别名:
alias sshserv1='ssh [email protected]'
alias sshserv2='ssh [email protected]'
你可以把这些放在你的~/.bashrc
例子中。
更多信息请点击这里: http://tldp.org/LDP/abs/html/aliases.html
或者:出色的hstr
工具(此处:https://github.com/dvorka/hstr) 是一个很棒的命令历史搜索器,在所有方面都优于 Ctrl+R。