我如何保留导出路径?

我如何保留导出路径?

ssh admin@nas command如果command在,我该如何工作/opt/bin

在我的 QNAP NAS 文件上/root/.ssh/rc

echo "old path is $PATH"
export PATH=/opt/bin:/opt/sbin:$PATH
echo "new path is $PATH"

在我的计算机上:

~$ ssh admin@nas 'echo $PATH'

返回

old path is /usr/bin:/bin:/usr/sbin:/sbin
new path is /opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin
/usr/bin:/bin:/usr/sbin:/sbin

因此路径变量不会被保留。我该如何实现呢?

编辑:正如我在下面的评论中提到的,我尝试使用的命令是 git,或者更具体一些git-upload-packgit-receive-pack也可能是其他命令。我想在不同的位置和场合使用它们,并且不想费心在每台使用它的机器上设置 git 配置,也不想教我的 IDE 如何与我的 NAS 通信,而是让我的 NAS 符合标准。所以我认为我所需要的只是设置正确的$PATH

编辑 II:到目前为止,我尝试插入export PATH=...以及添加另一个echo(以验证它们是否运行)到~/.bash_profileto /etc/profile~/.bashrc显然,当我运行上述非交互式命令时,它们都没有执行。如果我这样做,它们都会ssh admin@nas执行,但这没有帮助

答案1

如果您以管理员身份登录,~/.bashrc则不会使用,但~/.profile可以使用。因此,您可以将其添加到 .profile 中:

export PATH=\
/bin:\
/sbin:\
/opt/bin:\  #<--- HERE IT IS NOW
/usr/bin:\
/usr/sbin:\
/usr/bin/X11:\
/usr/local/bin

当您以管理员身份登录时,PATH 将像这样加载。我在 nas 上所做的是,我将其添加到 .bashrc,并将 .profile 更改为只有 1 行:

source ~/.bashrc

因此,当您以管理员身份登录时,您仍然会获得使用 .bashrc 配置的 SH。

编辑:我现在明白你想做什么......

只需在 /usr/bin 中创建指向这两个二进制文件的符号链接即可。例如:

cd /usr/bin && ln -s /opt/bin/git-upload-pack 

答案2

您可以real address在 ssh admin@nas 中输入 of 命令来代替 command command。如下所示:

ssh admin@nas /opt/bin/command-name

相关内容