: 예로 network stop 등의 명령을 실행할때..
:
: root 에서 /etc/rc.d/init.d/network stop
: 이라하면 실행이 되는데..
:
: 직접 network 이란 화일이 있는
: /etc/rc.d/init.d 이 디렉토리에서
:
: 직접 network 이라고 하면 왜 실행이 안되져..
:
: 그냥 치면 그런화일이 없다고 나오는데..
:
: 너무 허접한 질문이라 죄송합니다.
리눅스를 비롯한 유닉스 스타일의 OS에서는 지정한 PATH에서만 검색을 합니다.
따라서 현재 디렉토리 (.)가 PATH에 포함되어 있지 않다면 현재 디렉토리에 있는 실행파일을
실행시키려고 해도 실행되지 않습니다. 이럴 경우에는 명시적으로 현재 디렉토리에 있는
실행파일임을 적어줘야 합니다. 즉, 현재 디렉토리에 aaa 실행파일이 있는 경우라면
./aaa
라고 입력해야만 실행이 가능하지요.
이것을 보다 간편하게 하기 위해서 쉘리소스파일(? 보통 .bash_profile 혹은 .csh, .profile 등등)
에 PATH 부분에 PATH=$(PATH):.
라는식으로 점(현재디렉토리)를 추가하기도 하지만 그리 권하지는 않더군요.
(만약 실행시키려고 하는 파일이 우연히도 어떤 서비스나 명령과 동일한 이름이라면 의도
하지 않게 다른 명령이 실행이 될 수 있기 때문입니다.) PATH검색의 순서는 앞에서부터 진
행됩니다. 따라서 /usr/local/bin 디렉토리와 /usr/bin/ 디렉토리에 심볼릭 링크가 아닌 서로 다
른(혹은 버전이 다른) aa라는 프로그램이 있을때에 PATH=/usr/local/bin:/usr/bin
의 순서로 되어 있다면 aa라고 명령을 입력했을때에 /usr/local/bin/aa 가 실행됩니다.--아무것
도 하지 않다.