【问题标题】:Linux - Remote command execution and .bashrcLinux - 远程命令执行和 .bashrc
【发布时间】:2016-05-18 07:23:30
【问题描述】:

我在 Linux 主机 (a) 上有许多自定义别名,当我尝试从另一台 Linux 主机 (b) 执行一些命令时,~/.bashrc 中的条目抱怨找不到这些命令。你能解释一下如何避免这些错误吗?

请参考以下示例。

从(b)到(a)

[root@localhost /]# sshpass -p 'my_pass' ssh -p port_number root@host "uptime"

/root/.bashrc: line 17: hello1: command not found

/root/.bashrc: line 18: hello2: command not found

/root/.bashrc: line 19: hello3: command not found

03:05:56 up 3 days, 23:29,  1 user,  load average: 1.16, 0.78, 0.47

请指教,非常感谢。

【问题讨论】:

    标签: linux bash command execution


    【解决方案1】:

    这是正常的,因为如果您更改了机器上的 ~/.bashrc 而不是远程机器上的 ~/.bashrc,则远程机器和主机上的 ~/.bashrc 是不一样的。一种方法是将不同的行从您的主机 ~/.bashrc 复制到您的远程计算机。 如果这样做,您将能够在远程计算机上使用您在主机上定义的别名。

    【讨论】:

    • 感谢您的及时回复。我在两台服务器中添加了相同的条目,但仍然收到命令未找到错误。还有什么我可以尝试的吗?
    • 嗯,奇怪,也许当你在远程服务器上时,你可以尝试执行以下命令:source ~/.bashrc 这将加载 .bashrc 中的所有别名
    • 我刚刚注意到 .bashrc 中有问题的行包含一个变量,例如 alias show_total="echo -e; echo 'Total machines running: '$(allmachines | wc -l )" 但别名 allmachines 工作正常...检索变量时的某些东西...
    • 我认为因为 $(allmachines | wc -l) 中的内容是一个命令,所以您需要在最后一个命令启动后添加分号:echo 'Total machines running: ',或 &&||
    猜你喜欢
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    相关资源
    最近更新 更多