web-dev-qa-db-ja.com

エクスポートパスを保持するにはどうすればよいですか?

commandssh 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-packgit-receive-pack、そしておそらく他のいくつかです。さまざまな場所や機会でそれらを使用したいので、使用するすべてのマシンでgit configを設定したり、IDEにNASとの通信方法を教えたりしたくありません。 _ではなく、私のNAS準拠の標準があります。だから私は必要なのは正しい$PATHを設定することだけだと思いました

編集II:私がこれまでに試したことは、export PATH=...を挿入することと、別のecho(実行されていることを確認するため)を~/.bash_profileto /etc/profileおよび~/.bashrcへ。どうやら、上記のような非対話型コマンドを実行しても、それらのどれも実行されないようです。 ssh admin@nasを実行すると、すべて実行されますが、それは役に立ちません。

1
user2298896

管理者としてログインしている場合は、~/.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 
1
Cipi

Ssh admin @ nas commandに、コマンドの代わりにコマンドのreal addressを入力できます。以下のように:

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

0
Sepahrad Salour