해당 디렉터리에서 명령을 실행할 때 명령이 작동하지 않는 이유는 무엇입니까?

해당 디렉터리에서 명령을 실행할 때 명령이 작동하지 않는 이유는 무엇입니까?

OpenNMS를 설치할 때 몇 가지 어려움을 겪었습니다. 문제는 해결됐지만 궁금하네요...

이것이 작동하지 않는 이유:

[nac@localhost /]$ cd opt/opennms/bin/
[nac@localhost bin]$ runjava -s
-bash: runjava: command not found

...하지만 그렇습니다:

[nac@localhost /]$ opt/opennms/bin/runjava -s
runjava: Looking for an appropriate JRE...
runjava: Checking for an appropriate JRE in JAVA_HOME...
runjava: skipping... JAVA_HOME not set
runjava: Checking JRE in user's path: "/usr/bin/java"...
runjava: found an appropriate JRE in user's path: "/usr/bin/java"

저는 시그윈을 사용하고 있습니다. Fedora 상자에 ssh를 넣으십시오. 도움이 된다면 출력은 녹색입니다 ls /opt/opennms/bin ...

답변1

귀하의 디렉토리에는 $PATH현재 디렉토리가 포함되어 있지 않습니다 .. 따라서 runjava경로 없이 해당 디렉토리에 있는 실행 파일을 실행하려고 하면 실행 파일을 찾을 수 없습니다.

또한 /opt/opennms/bin.runjava

몇 가지 해결 방법:

  1. 항상 실행 파일의 경로를 사용 /opt/opennms/bin/runjava하거나 디렉토리 ./runjava에 있는 경우 ./opt/opennms/bin
  2. /opt/opennms/bin경로에 추가하세요 . 이렇게 하려면 셸 초기화 파일( .bash_profile또는 .bashrcfor bash)을 편집하고 다음 줄을 추가하세요.

    PATH="$PATH:/opt/opennms/bin"
    

    그런 다음 Cygwin 세션을 다시 시작하십시오.

  3. 별칭을 만듭니다.

    alias runjava=/opt/opennms/runjava
    

    이는 쉘 시작 파일에 추가됩니다. 그러면 runjava명령을 실행할 때 전체 경로를 입력한 것처럼 실행 파일이 실행됩니다 runjava.

변수 .에 추가하고 싶지 않습니다 . PATH이 문제에 대한 논의는 "라는 질문을 참조하십시오.추가하세요. 안전한가요? 내 길은? 어떻게요?"

답변2

왜냐하면 .그것은 당신의 일부가 아니기 때문입니다 $PATH. Unix는 .txt에 나열된 디렉토리에서만 실행 가능한 프로그램을 검색합니다 $PATH.

.또한 보안상의 위험이 있으니 $PATH하지 마세요.

관련 정보