ファイルにコマンドパスを指定します。/etc/設定ファイル:
export PATH=$PATH:/usr/app/cpn/bin
私のコマンドは次の場所にあります。
$ which ydisplay
/usr/app/cpn/bin/ydisplay
したがって、「echo $PATH」を実行すると、出力は次のようになります。
$ echo $PATH
...:/usr/app/cpn/bin
すべてがうまくいきますが、SSHを介してコマンドを実行しようとするとエラーが発生します。
$ ssh 127.0.0.1 ydisplay
$ bash: ydisplay: command not found
しかし、私の道はまだそこにあります。
$ ssh 127.0.0.1 echo $PATH
...:/usr/app/cpn/bin
SSHセッション中にBashがydisplayを見つけることができない理由と、この問題を回避するためにSSHを正しく構成する方法を説明してください。
さらに、現在のユーザーのローカルファイル.bashrcに$ PATHを指定すると、すべてがうまく機能します。しかし、各ユーザーに複数のファイルを指定するのではなく、1つのファイルのみを変更したいと思います。だから私は尋ねる。
ベストアンサー1
長すぎます。
代わりにssh 127.0.0.1 ydisplay
ソースを実行してください。代わりにパスを変更してください。~/.bashrc
/etc/profile
~/.bashrc
詳細
/etc/profile
読み取る唯一の時間は、シェルが「ログインシェル」のときです。
~からバッシュリファレンスマニュアル:
bashがログインシェルとして呼び出されると、... /etc/profileファイルからコマンドを読み込んで実行します。
ただし、実行するとssh 127.0.0.1 ydisplay
ログインbash
シェルで起動しません。しかし、別の起動ファイルを読みます。これバッシュリファレンスマニュアル説明する:
...sshdによって...が実行されるとき。 ...コマンドを読み、実行します。
~/.bashrc
PATH
だからに設定を入れる必要があります~/.bashrc
。
ほとんどのシステムでは、~/.bash_profile
ソース設定を2つのファイルに配置する代わりに~/.bashrc
設定を配置できます。~/.bashrc
すべてのユーザーの設定を変更する標準的な方法はありませんが、ほとんどのシステムには1つ/etc/bashrc
または/etc/bash.bashrc
同様の方法があります。
失敗した場合は設定を指定してくださいpam_env
。PATH
/etc/environment
また見なさい: