Debian Linuxがインストールされているリモートコンピュータへの管理者アクセス権があります。最初はすべてがうまくいった。すべてのユーザーが特定のコードを実行できるように、いくつかの変数をグローバルに定義したいと思います。これでこのサーバーにファイルを送信できません。 scpコマンドを実行すると、次のように表示されます。
bash: scp: command not found
lost connection
scp
私のローカルコンピュータとサーバーの両方で動作します。 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
問題が解決しました。 .NETファイルに無効なPATH定義を追加しました/etc/environment
。このエラーを修正すると問題が解決しました。