2012-02-27 200 views
3

我正在通过ssh使用很多远程机器。 我的需要是为所有的ssh会话使用一个通用的.profile(或ssh或别的别名),因为在每台机器上改变它(我永远不会重新登录),这真的是浪费时间。在ssh登录后执行命令

有没有这种可能性?

我读过,我可以设置“PermitUserEnvironment”,以便我可以设置自己的“VAR = VALUE”,但是自定义脚本如何?例如,我想执行类似“set -o vi”的东西...

+0

那你为什么不安装一个普通的.profile/.login呢? – 2012-02-27 15:37:25

+0

我很抱歉,我很喜欢linux的“noob”......你能解释得更好吗? – 2012-02-27 16:15:25

+0

正如你在你的问题中所说的那样,你可以通过拥有一个通用的.profile文件(或.login,无论你的shell /分发读取)来实现这一点。如果您将该文件复制到所有主机,则应具有相同的环境。 – 2012-02-27 16:17:49

回答

1

这里的正确答案是在您的.profile或.bashrc或任何机器上有任何副本。

只需编写一个小shell脚本并将scp这样的文件分配给每个有问题的框。一个三班轮像

 
for i in list_of_machines 
do 
    scp .profile $i: 
done 

会为你做。

您可以使用shell $()表示法(如 $(cat文件名) )从文件中获取计算机列表,或者如果它真的被使用,则会以编程方式生成它。

更好的是,如果它们是自动生成的虚拟主机或其他类型的机器云,请在创建机器时将.profile放入帐户。

0

如果您使用PuTTY作为SSH客户端,则可以使用Connection-> SSH菜单中的“控制SSH连接的选项”。在“远程命令”框中输入命令。将设置保存为默认设置,并且将为所有新会话预设。

+1

但是,你不会有一个登录shell,但只有执行命令的输出... – glglgl 2013-03-31 23:16:20