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-pack
,git-receive-pack
也可能是其他命令。我想在不同的位置和场合使用它们,并且不想费心在每台使用它的机器上设置 git 配置,也不想教我的 IDE 如何与我的 NAS 通信,而是让我的 NAS 符合标准。所以我认为我所需要的只是设置正确的$PATH
编辑 II:到目前为止,我尝试插入export PATH=...
以及添加另一个echo
(以验证它们是否运行)到~/.bash_profile
和to /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