egxc를 다음과 같이 컴파일하면:
GCC x.c -o x
결과를 실행하려면 다음을 작성해야 합니다.
./x
그리고 다음을 입력하면 됩니다:
x
다음 메시지와 함께 실패합니다.
x: 명령을 찾을 수 없습니다
이는 Linux가 현재 디렉토리에서 해당 항목을 검색하지 않음을 의미합니다! 이 행동 뒤에 합리적인 문제가 있습니까?
답변1
기본적으로 현재 작업 디렉터리는 변수에 없기 때문입니다 PATH
.
이는 보안/편의를 위한 조치입니다. 현재 작업 디렉토리에 cd
, 등 이라는 바이너리/스크립트가 있는 경우 ls
기본적으로 실행되면 매우 짜증날 것입니다.
답변2
이는 현재 디렉터리가 $PATH 변수에 없음을 의미합니다.
답변3
환경 변수 에 현재 디렉터리(단일 점으로 표시)를 추가하여 이 문제를 해결할 수 있습니다 PATH
.
이를 수행하는 방법은 사용하는 쉘에 따라 다릅니다.
Bash를 사용하는 경우 홈 디렉터리의 파일 export PATH=$PATH:.
에 해당 줄을 추가할 수 있습니다. csh 또는 tcsh를 사용하는 경우 홈 디렉토리의 .cshrc 파일에 해당 행을 추가하십시오 . IMHO, 가정용 데스크톱 컴퓨터의 경우 보안 측면에서 이는 허용되는 작업입니다..bashrc
set PATH = ($PATH .)