다음의 차이점은 무엇입니까
./executable
및 executable
. 때로는 일부 실행 파일 (비 Linux 명령)이 필요하지 않은 이유는 무엇 ./
입니까?
makefile (물리적 코드)을 통해 실행 파일을 설치 한 경우 어떻게 제거하고 업데이트 된 버전을 설치할 수 있습니까? rm
코드를 제거 하면 충분합니까? 이 경우 실행 파일은./
UNIX 환경 (및 DOS, Windows 등과 같은 다른 시스템에서도)에는 쉘이 실행 파일을 찾는 디렉토리가 있습니다. Unix 환경에서는 PATH
변수에 정의됩니다 . PATH
다음 명령을 실행하는 변수 에서 디렉토리를 볼 수 있습니다 .
$ echo $PATH
결과는 다음과 같습니다.
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
보시다시피 변수는 콜론으로 구분 된 디렉토리 목록입니다. 예를 들어 ls
, 명령을 실행 하면 시스템이 목록의 첫 번째 디렉토리 (예 :)에서 실행 파일을 검색합니다 /usr/local/sbin
. ls
거기에서 이름 이 지정된 파일을 찾지 못하면 찾을 때까지 다음 디렉토리를 시도합니다. 따라서 ls
명령이에 있으면 /usr/bin
실행됩니다. 또는 쉘이 아무데도 찾을 수없는 경우 명령을 찾을 수 없음 오류가 발생합니다.
그러나 실행 파일을 호출하는 다른 방법이 있습니다. ls
에서 두 개의 디렉토리에 이름이 지정된 두 개의 프로그램이 있고 두 번째 프로그램 PATH
을 실행 한다고 가정 해보십시오 . 이를 수행하는 방법은 실행 중일 수 있으므로 /usr/bin/ls
원하는 것을 지정하십시오.
는 .
현재 디렉토리에 대한 바로 가기입니다. 당신이에 있다면 그래서 /home/user
, ./configure
에 대한 바로 가기입니다 /home/user/configure
.
파일이있는 위치 PATH
를 찾아 제거하여에서 파일을 제거 할 수 있습니다 . 그러나 대부분의 최신 배포판 (rpm, dpkg, pacman 등)에서 사용할 수있는 패키지 관리자를 통해 시스템에 설치된 바이너리를 관리하는 것을 선호 할 수 있습니다. Makefile이 여러 실행 파일을 생성하는 경우 이러한 방식으로 제거하는 것이 더 쉬울 것입니다 (또한 makefile은 일부 라이브러리 파일 및 기타 여러 항목을 생성 할 수 있으므로 패키지 관리 도구를 사용하는 것이 더 쉽습니다). 때때로 Makefile이 제거 루틴 (예 : make uninstall)을 가져올 수 있지만 얼마나 자주 발생하는지 잘 모르겠습니다. 새 메이크 파일을 통해 프로그램을 업데이트하는 경우 새 파일 make install
이 이전 바이너리를 대체 할 가능성이 있지만 보장 할 수는 없습니다.
를 실행하여 특정 명령에 대한 실행 파일을 항상 확인할 수 있습니다 which
. 예를 들어, 어디에 있는지 알고 싶다면 ls
:
$ which ls
/usr/bin/ls
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다