linux配置远程计算机别名没用,linux – `ssh foo“”`没有加载远程别名?
摘要:為什么會(huì)失敗
$ssh foo 'R --version | head -n 1'
bash: R: command not found
但這成功了
$ssh foo 'grep -nHe 'bashrc' ~/.bash_profile'
/home/me/.bash_profile:3:# source the users .bashrc if it exists
/home/me/.bash_profile:4:if [ -f "${HOME}/.bashrc" ] ; then
/home/me/.bash_profile:5: source "${HOME}/.bashrc"
$ssh foo 'grep -nHe "\WR\W" ~/.bashrc'
/home/me/.bashrc:118:alias R='/share/linux86_64/bin/R'
$ssh foo '/share/linux86_64/bin/R --version | head -n 1'
R version 2.14.1 (2011-12-22)
?細(xì)節(jié):
我是2個(gè)集群上的(無(wú)根)用戶.一個(gè)使用環(huán)境模塊,因此該集群上的任何給定服務(wù)器都可以提供(通過模塊添加)幾乎相同的資源.我不得不工作的另一個(gè)集群,單獨(dú)管理服務(wù)器,所以我養(yǎng)成了做的習(xí)慣,例如:
EXEC_NAME='whatever'
for S in 'foo' 'bar' 'baz' ; do
ssh ${SERVER} "${EXEC_NAME} --version"
done
這適用于正常/一致安裝的軟件包,但通常(由于我不知道的原因)軟件包不是:例如: (比較下面的別名和上面的別名),
$ssh bar 'R --version | head -n 1'
bash: R: command not found
$ssh bar 'grep -nHe 'bashrc' ~/.bash_profile'
/home/me/.bash_profile:3:# source the users .bashrc if it exists
/home/me/.bash_profile:4:if [ -f "${HOME}/.bashrc" ] ; then
/home/me/.bash_profile:5: source "${HOME}/.bashrc"
$ssh bar 'grep -nHe "\WR\W" ~/.bashrc'
/home/me/.bashrc:118:alias R='/share/linux/bin/R'
$ssh bar '/share/linux86_64/bin/R --version | head -n 1'
R version 2.14.1 (2011-12-22)
當(dāng)我交互式shell進(jìn)入服務(wù)器時(shí),使用別名可以很好地應(yīng)對(duì)這些安裝差異,但是當(dāng)我嘗試編寫ssh命令腳本時(shí)失敗(如上所述);即,
# interactively
$ssh foo
...
foo> R --version
在遠(yuǎn)程host = foo上調(diào)用R的別名,但是
# scripting
$ssh foo 'R --version'
沒有.我需要做什么才能使ssh foo“< command />”在遠(yuǎn)程主機(jī)上加載我的別名?
總結(jié)
以上是生活随笔為你收集整理的linux配置远程计算机别名没用,linux – `ssh foo“”`没有加载远程别名?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求十个学生的平均成绩java,JAVA
- 下一篇: linux bc命令全称,Linux b