bash 命令的自由文本搜索

bash 命令的自由文本搜索

我有 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 将补全主机别名,您可以将它们与sshsftprsync等命令一起使用。

另外,如果您需要在多个服务器上执行相同的操作,请参阅在许多服务器上通过 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。

相关内容