
원격 컴퓨터에 scp를 사용할 때 "sh: scp: 해당 파일이나 디렉터리가 없습니다"라는 오류가 이상하게 발생했습니다.
$ scp [email protected]:test.txt .
Welcome to remotehost!
[email protected]'s password:
sh: scp: No such file or directory
원격 시스템에서 환경 변수를 보려고 할 때 "sh: env: No such file or Director" 오류가 발생하여 실패했습니다.
$ ssh [email protected] env
Welcome to remotehost!
[email protected]'s password:
sh: env: No such file or director
그러나 env에 대한 전체 경로를 사용하면 PATH가 비어 있음을 알 수 있습니다.
$ ssh [email protected] "/usr/bin/env"
Welcome to remotehost!
[email protected]'s password:
SSH_CONNECTION=192.168.1.7 62675 192.168.1.11 22
USER=admin
PWD=/root
HOME=/root
SSH_CLIENT=192.168.1.7 62675 22
MAIL=/var/mail/admin
SHELL=/bin/sh
SHLVL=1
LOGNAME=admin
PATH=
_=/usr/bin/env
그러나 SSH를 통해 컴퓨터에 로그온하면 PATH가 비어 있지 않습니다.
$ ssh [email protected]
Welcome to remotehost!
[email protected]'s password:
[root@ remotehost ~]# env
HOSTNAME= remotehost
EDITOR=/usr/bin/nano
USER=root
PAGER=/usr/bin/less
INPUTRC=/etc/inputrc
PWD=/root
HOME=/root
SSH_CLIENT=192.168.1.7 62724 22
SSH_TTY=/dev/pts/0
MAIL=/var/mail/admin
TERM=linux
SHELL=/bin/sh
SHLVL=1
LOGNAME=root
PATH=/bin:/sbin:/usr/bin:/usr/sbin
PS1=[\u@\h \W]\$
HISTSIZE=1000
HISTFILESIZE=1000
_=/usr/bin/env
나는 또한 루트를 사용해 보았고 동일한 "sh: env: No such file or Directory"를 얻었습니다:
$ ssh [email protected] env
Welcome to remotehost!
[email protected]'s password:
sh: env: No such file or directory
빈 환경 변수 PATH를 어떻게 수정할 수 있나요?
localhost는 macOS이고 원격은 BuildRoot입니다(https://buildroot.org) 라즈베리에
답변1
이는 로그인 쉘 및 비로그인 쉘 설정과 관련이 있습니다. 일반적으로 로그인 쉘은 에서 읽고 .profile
비로그인 쉘은 에서 읽습니다 .bashrc
. 이 문제를 해결하려면 PATH
이러한 구성 파일에서 를 정의해야 합니다 .
다음은 몇 가지 참고자료와 설명입니다.