首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从.bash_aliases迁移到~/..ssh/config

从.bash_aliases迁移到~/..ssh/config
EN

Stack Overflow用户
提问于 2012-12-01 07:55:02
回答 1查看 312关注 0票数 2

这是我在这里的第一个帖子,所以请容忍我…

在完全配置了我的.bash_aliases文件之后,我发现了.ssh/config的惊人功能,由于我在编程方面相当差劲,我一直在寻找一种很好的方法来将bash_aliases文件中的连接详细信息解析到~/.ssh/config文件中。

所以,从细节上讲,我的bash_aliases看起来像这样:

代码语言:javascript
复制
alias serverA='ssh -i ~/.ssh/serverA.key -o $SRVR_ALV user@serverAhostname'
alias serverB='ssh -i ~/.ssh/serverB.key -o $SRVR_ALV user@serverBhostname'
....

代码语言:javascript
复制
Host serverA
HostName serverAhostname
IdentityFile ~/.ssh/serverA.key

Host serverB
.....

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-01 08:06:56

来点Perl怎么样?

代码语言:javascript
复制
perl -ne "/^alias (.*)='ssh -i (.*) -o (.*) (.*)\@(.*)'/ and 
    print qq{Host \$1\nHostName \$5\nIdentityFile \$2\n\n}" < \
 ~/.bash_aliases

如果您喜欢所看到的内容,请将其重定向为追加到>> ~/.ssh/config

Perl更新--对非用户的解释:

perl -ne-e表示,‘下一个参数是(e)xecute'.的脚本-nmeans, '*run the given script once per line*' - so-necan sort-of emulatesed`。

perl代码:

代码语言:javascript
复制
/^alias (.*)='ssh -i (.*) -o (.*) (.*)\@(.*)'/ and 
print qq{Host \$1\nHostName \$5\nIdentityFile \$2\n\n}

读取:仅对于与正则表达式/^alias ../匹配的行,打印一个字符串(qq{...}与Perl中的"..."相同),插值变量"\$1""\$4"等都是在正则表达式中捕获的结果。

perl -ne需要来自< ~/.bash_aliases的输入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13654876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档