私は Debian Linux のリモート コンピューターに管理者権限を持っています。最初はすべてうまくいっていました。すべてのユーザーが特定のコードを実行できるように、いくつかの変数をグローバルに定義しようとしました。現在、そのサーバーにファイルを scp できません。scp コマンドを実行すると、次のメッセージが表示されます。
bash: scp: command not found
lost connection
scp
私のローカル PC とサーバーの両方で利用できます。SSH を使用してリモート コンピューターに接続できます。ただし、接続すると次のように表示されます。
-bash: id: command not found
-bash: [: : integer expression expected
しかし、このコマンドを実行すると:
which id
出力は次のようになります。
/usr/bin/id
そして、基本コードへのパスはシステムに対して定義されていると思います。また、リモート コンピューターは scp へのパスを認識しており、出力は次のとおりwhich scp
です。
/usr/bin/scp
私がやったこととして覚えているのは、 にファイルを作成し、その後そのファイルを削除したということだけです。また、 、、/etc/profile.d
に間違った PATH 指定がないことを確認しました。~/.bashrc
~/.profile
/etc/profile
リモート コンピュータの何が問題なのか知っている人はいますか?
答え1
scp
ユーザーがコマンドにアクセスできるかどうかを確認するには、以下のコマンドを使用できます。
echo $PATH
出力例:
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
これにより、ユーザーがアクセスできるコマンド パスが表示されます。
scp
コマンドをチェックしている場合、scp
コマンドは にあります/usr/bin/
。 の出力にecho $PATH
が含まれていない場合は/usr/bin/
、「コマンドが見つかりません」というメッセージが表示されます。
問題を解決するには、
export PATH=$PATH:/usr/bin/
恒久的な変更の場合は、上記を.bash_profile
答え2
ファイルにエラーがあります.bashrc
。次のコマンドを使用してデフォルト バージョンを復元し、再接続してください。
$ cp /etc/skel/.bashrc ~/
答え3
問題は解決しました。 に間違った PATH 定義が追加されました/etc/environment
。その間違いを修正すると、問題は解決しました。