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
. 이 오류를 수정하면 문제가 해결되었습니다.