
./
Mountain Lion에서 명령을 실행하려면 왜 필요한가요 ?
예를 들어, mysql을 사용할 때 터미널에 다음을 입력해야 합니다.
./mysql -u itsme -p
또한 명령줄 응용 프로그램을 만들고 파일을 실행 가능하게 만들고 ./
다음과 같이 명령을 실행해야 합니다.
./myawesomeapp dothis
현재 디렉토리를 의미한다는 것은 알지만 ./
, 이를 사용하지 않고 어떻게 명령을 실행할 수 있습니까?
답변1
바이너리가 포함된 디렉터리를 환경 변수에 넣으면 PATH
경로(예: ./
) 를 제공하지 않고도 해당 디렉터리를 호출할 수 있습니다.
나는 아마도 bash를 쉘로 사용하고 있을 것이라고 생각합니다(실행하여 확인할 수 있습니다 echo $SHELL
). 그렇다면 다음을 추가하세요..bashrc
export PATH=$PATH:/whatever/path/you/want/to/add
답변2
환경 변수에 나열된 디렉터리 중 하나에 실행 파일을 설치해야 합니다 $PATH
.
echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin
$PATH
파일을 수정하여 조정하세요 ~/.profile
.
export PATH=$PATH:/Users/me/bin
에 ./
추가하여 항상 을 무시할 수 있지만 이는 보안 문제가 될 수 있습니다. 개인 컴퓨터가 아닌 경우 서버를 운영하는 동안 나쁜 습관을 이어갈 때..
$PATH
답변3
$PATH 변수에 추가하는 것이 가능하지만 .
그렇게 하지 않는 것이 좋습니다. 파일 시스템의 임의의 위치를 돌아다니며 프로그램을 실행할 것으로 생각되는 항목( vi
, emacs
, ls
, ps
등)을 입력하면 로컬 디렉터리에 있는 파일이 실행 후보가 됩니다. 운이 좋지 않다면, 그것은 당신이 실행하고 싶었던 프로그램이 전혀 아닙니다. 그리고 로 실행한다면 상황 은 훨씬 root
더 나쁩니다. 물론 그렇지 않으면 실제 ls가 아니라는 것이 분명해지며 사용자는 상황 조사를 시작할 것입니다. [1]ls
ls
대신 실행 파일이 있는 위치에 절대 경로를 추가해야 합니다(예 /projects/mycurrentprojects/bin
: 또는 "홈 기준" ~/bin
). 모든 상황에서 경로가 작동하려면 home\mats\bin
[분명히 자신에게 맞는 사용자 이름을 사용하여]를 사용하는 것이 좋습니다. . 이렇게 하면 특정 디렉터리 집합에 있는 파일만 적용 가능하며, 사용자가 어디에 있든 해당 특정 디렉터리에 있는 프로그램만 "실행 가능한 후보"로 선택됩니다.
[1] 예, 여기서는 검색 순서와 기타 다양한 요소도 중요하다는 것을 알고 있습니다. 그러나 어떤 반대 의견이 있더라도 "현재 디렉터리"를 추가하는 것은 일반적으로 좋은 생각이 아닙니다.