문제가 발생하여 오류가 발생했습니다.
bash: stp: command not found
(stp는 실행하려는 파일의 이름입니다)
$PATH 변수에 프로그램이 있는 폴더가 있더라도 마찬가지입니다. 몇 가지 사항을 확인했습니다.
-실행 중인 셸에서 $PATH를 편집했는지 확인하세요. 내 홈 디렉터리에 있는 .bashrc 파일을 편집하여 $HOME/bin
경로에 추가했습니다 . 다음을 입력하여 bash 쉘에 있음을 확인했습니다.
$ ps $$
bash를 명령으로 반환합니다.
- .bashrc에 추가한 내용이 실제로 경로에 영향을 미쳤는지 확인했습니다(셸을 다시 시작한 후, 그 이후로 컴퓨터도 다시 시작했습니다). 유형
$ echo $PATH
/home/myself/bin
실제로 경로의 일부로 반환됩니다. 관심 있는 파일이 폴더 안에 있다는 것을 알 수 있지만 /home/myself/bin
그것은 중요하지 않습니다. 그렇죠?
-드디어 /pathtofile/stp
파일이 예상대로 실행되었습니다. 아니면 내가 디렉토리에 있는지 확인하고 ./stp
.
그래서 그것이 내 $PATH 변수에 있다면 bash 셸에 대한 올바른 구성 파일을 편집하고 bash를 실행하고 있는지 확인한 다음 셸을 다시 시작했습니다. 매우 사소한 것을 간과하고 있다고 확신합니다. 저는 Unix/Linux(Debian 실행)를 처음 접했기 때문에 모든 세부 사항을 알지 못합니다. 하지만 내 이해로는 내가 어디에 있든 무언가를 입력할 수 있어야 $ stp
하고 경로를 검색하여 찾을 수 있어야 합니다.
답변1
관심 있는 파일은 /home/myself/bin 내의 폴더에 있지만 그것은 중요하지 않습니다. 그렇죠?
이는 재귀적인 것이 아니라 중요합니다 $PATH
.
파일을 이동할 수 있습니다. 또는 링크(하드 또는 기호)를 만듭니다. 상징적으로 덜 혼란스러울 수 있습니다.
파일이 존재하는 경우 다음을 /home/user/bin/sub-dir/stp
실행합니다.
ln -s sub-dir/stp ~/bin/stp
또는 경로에 새 하위 디렉터리를 추가하세요.
PATH=$HOME/bin/sub-dir:$PATH