ユーザーが/bin/bash
シェルを持ってい/etc/passwd
て、ssh user@host command
Bashを使ってコマンドを実行するとします。ただし、シェルはログインも操作もできません。つまり、ログインもソースも提供できない~/.bash_profile
ことを意味します~/.bashrc
。この場合、PATH
実行ファイルを見つけて実行できるように環境変数をどのように設定する必要がありますか?実際のコマンドの前にプレフィックスを付けることをお勧めしますsource ~/.bashrc
か?
編集する。この問題は(人々が指摘したように)Bashにとってはマイナーな問題です。~/.bashrc
はいこのような状況から来ています。最終的な回答は次の節にありますman bash
。
Bashは、リモートシェルデーモン(通常はrshd)またはセキュアシェルデーモンsshdによって実行されている場合など、ネットワーク接続に接続されている標準入力を使用して実行されていることを確認しようとします。
bash
このように実行中であると判断された場合、~/.bashrc
ファイルが存在し、読み取れる場合はコマンドを読み込み実行します。として呼び出されると、これは行われませんsh
。この--norc
オプションを使用すると、この動作を抑制し、--rcfile
他のファイルを強制的に読み取るために使用できます。ただし、rshdまたはsshdは通常、これらのオプションを使用してシェルを呼び出すか、指定を許可しません。
ベストアンサー1
いくつかの可能性があります:
PATH
サーバーで設定します~/.ssh/environment
(PermitUserEnvironment yes
経由で有効にする必要がありますsshd_config
)。- バイナリファイルのフルパスを使用してください。
- 前述のように手動でsource
.bashrc
:コマンドの前に. ~/.bashrc
(またはsource
)を付けます。
どの方向に行くかは、ユースケースによって大きく異なります。