command
がssh admin@nas 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 configを設定したり、IDEにNASとの通信方法を教えたりしたくありません。 _ではなく、私のNAS準拠の標準があります。だから私は必要なのは正しい$PATH
を設定することだけだと思いました
編集II:私がこれまでに試したことは、export PATH=...
を挿入することと、別のecho
(実行されていることを確認するため)を~/.bash_profile
、to /etc/profile
および~/.bashrc
へ。どうやら、上記のような非対話型コマンドを実行しても、それらのどれも実行されないようです。 ssh admin@nas
を実行すると、すべて実行されますが、それは役に立ちません。
管理者としてログインしている場合は、~/.bashrc
は使用されませんが、~/.profile
です。したがって、これを.profileに追加できます。
export PATH=\
/bin:\
/sbin:\
/opt/bin:\ #<--- HERE IT IS NOW
/usr/bin:\
/usr/sbin:\
/usr/bin/X11:\
/usr/local/bin
また、adminとしてログインすると、このようにPATHが読み込まれます。 NASで行ったことは、これを.bashrcに追加し、.profileを1行のみに変更したことです。
source ~/.bashrc
したがって、adminとしてログインしても、SHは.bashrcで構成されたままになります。
編集:私はあなたが何をしたいのか理解しました...
/ usr/bin内にこれら2つのバイナリへのシンボリックリンクを作成するだけです。例えば:
cd /usr/bin && ln -s /opt/bin/git-upload-pack
Ssh admin @ nas command
に、コマンドの代わりにコマンドのreal address
を入力できます。以下のように:
ssh admin@nas /opt/bin/command-name