Linux에서 which 명령을 사용하는 포괄적인 가이드

Linux에서 which 명령을 사용하는 포괄적인 가이드

Linux는 광범위한 사용자 정의 옵션에서 세부적인 시스템 관리 기능에 이르기까지 컴퓨팅 환경에 대한 비할 데 없는 제어권을 사용자에게 제공합니다.사용 가능한 수많은 도구 중에서 이 which명령은 명령줄 경험을 조화시키는 데 중요한 도구로 돋보입니다.이 유틸리티를 사용하면 $PATH변수에 지정된 디렉터리를 스캔하여 실행 파일의 정확한 위치를 찾을 수 있습니다.이 포괄적인 가이드에서는 명령의 작동 방식을 자세히 살펴보고 which구문과 옵션을 명확히 하며 명령줄 숙련도를 향상시키기 위한 실제 예를 제공합니다.

which 명령의 구문과 기능 이해

which명령은 주어진 명령과 연관된 실행 파일을 찾는 데 사용하는 도구입니다. PATH 환경 변수에 설명된 디렉토리를 검사하여 작동합니다.이 명령은 명령을 실행할 때 실행되는 파일을 표시하고 검색 결과에 따라 관련 출력을 제공합니다.

  • 0지정된 모든 명령이 발견되었으며 실행이 가능함을 나타냅니다.
  • 1하나 이상의 명령이 누락되었거나 실행할 수 없음을 나타냅니다.
  • 2잘못된 옵션이 사용되었음을 나타냅니다.

Linux에서 명령 을 호출하는 표준 구문은 which간단합니다.

which [file1] [file2]...

간단히 [file1][file2]를 찾으려는 실행 파일의 이름으로 바꾸면 됩니다.

왜 which 명령을 사용해야 하나요?

which명령은 Linux에서 여러 가지 중요한 기능을 제공합니다.사용자는 명령이 실제 실행 파일, 별칭 또는 심볼릭 링크에 해당하는지 확인할 수 있습니다.또한 실행 파일의 정확한 위치를 파악하고 PATH 변수 내에서 누락되거나 충돌하는 명령을 식별하는 데 도움이 됩니다.를 사용하면 which시스템에 여러 버전이 있는 경우 의도한 버전의 명령이 효과적으로 실행됩니다.이 명령은 특히 다양한 도구와 스크립트를 처리할 때 생산성을 크게 향상시킬 수 있습니다.

which 명령의 실제 응용 프로그램

which이제 실제 시나리오에서 명령을 어떻게 적용할 수 있는지 보여주기 위해 다양한 실용적인 예를 살펴보겠습니다.

예제 1: 실행 파일의 경로 찾기

다음 명령을 사용하면 명령의 실행 파일이 어디에 있는지 쉽게 식별할 수 있습니다 which.

which grep

실행 파일의 경로 찾기

/usr/bin/grep실행 파일의 정확한 위치를 명확하게 나타내는 ” “와 같은 출력이 표시됩니다.

예제 2: 여러 명령의 경로 찾기

다음 명령을 사용하여 여러 명령을 동시에 쿼리할 수 있습니다 which.

which awk sed cat touch

awk이 명령은, sed, 및 명령 에 대한 경로를 검색합니다 cat.

여러 명령의 경로 찾기

예제 3: 명령의 모든 인스턴스 표시

의 기본 동작은 whichPATH에서 발견된 첫 번째 항목만 반환하는 것입니다.이 -a옵션을 사용하여 특정 명령의 모든 인스턴스를 검색할 수 있습니다.

which -a cat

cat이렇게 하면 발견된 모든 위치 목록이 제공됩니다.

모든 인스턴스 표시

이러한 파일의 세부 정보를 확인하려면 해당 파일 이 실제 실행 파일인지 중복 파일인지 식별하는 옵션 ls과 함께 명령을 사용할 수 있습니다.-lh

ls -lh /usr/bin/cat && ls -lh /bin/cat

실행 파일 확인

출력 결과, 서로 다른 디렉토리에 있는 두 개의 동일한 명령이 모두 35KB 크기의 실행 파일로 나타났습니다.

예제 4: 명령 존재 확인

다음 명령을 사용하여 특정 명령이 존재하는지 확인하세요 which.

which cats

누락된 명령

해당 명령이 없으면 출력이 나타나지 않고 종료 상태는 0이 아닌 값이 되어 명령이 누락되었음을 나타냅니다.

예제 5: 심볼릭 링크 식별

시스템에 동일한 프로그램의 여러 버전이 있는 경우 특정 인스턴스는 실제 바이너리가 아닌 심볼릭 링크일 수 있습니다.심볼릭 링크를 식별하려면 다음 옵션을 which사용하여 명령을 실행합니다 -a.

which -a crontab

심볼릭 링크 확인

다음으로, 다음 명령을 사용하여 파일 세부 정보를 확인하세요 ls.

ls -lh /usr/bin/crontab && ls -lh /bin/crontab

파일 세부 정보 검사

출력 결과에서 ->이 표시되면 해당 파일이 다른 위치를 가리키는 심볼릭 링크임을 나타냅니다.

예제 6: 셸 내장 명령 제외

특히, 이 which명령은 셸 내장 명령을 생략하고 외부 실행 파일만 표시하여 프로그램이 설치된 위치를 식별하는 데 도움이 됩니다.예를 들어, while은 ls경로를 반환하지만 read, 내장 명령인 는 다음을 수행하지 않습니다.

which ls read

Shell 내장 명령 제외

which 명령의 제한 사항

which명령은 특정 컨텍스트에서 효과를 방해할 수 있는 몇 가지 제한 사항이 있습니다.주로 외부 실행 파일에 초점을 맞추고 cd또는 와 같은 내장 명령을 식별하지 않습니다 read.또한 이진 파일과 심볼릭 링크를 구별할 수 없습니다.변수에 지정된 디렉터리 내에서 엄격하게 검색하므로 $PATH대체 위치에 저장된 프로그램을 찾지 못합니다.또한 파일 유형, 권한 또는 버전 정보와 같은 세부 정보를 제공하는 기능이 없습니다.특히 명령이 없으면 오류 메시지 대신 출력을 반환하지 않습니다.

이러한 제한을 해결하려면 whereis, type, 또는 와 같은 대체 명령을 사용하는 것을 고려하세요 ls.

Where vs. Which 명령

where및 명령은 모두 which파일을 찾는 데 맞춰져 있지만, 서로 다른 목적을 가지고 있습니다.이 where명령은 일반적으로 Windows 및 특정 Unix 유사 시스템에서 사용됩니다.파일과 디렉토리를 모두 찾고 시스템의 PATH에 있는 모든 일치 항목을 나열합니다.

반대로, 이 which명령은 Unix 계열 시스템에만 적용되며, $PATH변수에 설명된 디렉토리 내의 실행 파일에만 초점을 맞춥니다.기본적으로, 발견된 첫 번째 일치 항목만 반환하지만, 이 -a옵션은 모든 일치 항목을 나열할 수 있도록 합니다.

차이점을 설명하자면, where nodeWindows에서 실행하면 노드 실행 파일이 있는 모든 위치가 표시되지만, Linux에서 실행하면 which gccGCC 컴파일러가 있는 첫 번째 디렉토리가 반환됩니다.

다양한 기능을 제공하지만 which명령에는 일부 기능이 부족할 수 있습니다.그럼에도 불구하고 사용자는 보충 명령을 사용하여 제약을 극복할 수 있습니다.또한 which는 에서 실행 파일만 감지한다는 점에 유의하는 것이 중요합니다 $PATH.스크립트나 프로그램이 식별되지 않으면 단순히 실행 권한이 없는 것일 수 있으므로 스크립트가 적절한 실행 권한이 있는 에 나열된 디렉토리에 있는지 확인하는 것이 $PATH중요합니다.

자주 묻는 질문

1.which 명령어의 주요 목적은 무엇입니까?

이 명령 의 주 목적 은 환경 변수 which에 지정된 디렉토리를 검색하여 주어진 명령과 연관된 실행 파일을 찾는 것입니다 $PATH.

2.which 명령을 사용하여 여러 실행 파일을 한 번에 찾으려면 어떻게 해야 합니까?

which다음과 같이 공백으로 구분하여 여러 명령을 단일 문장으로 지정할 수 있습니다.which command1 command2이를 통해 지정된 모든 실행 파일의 경로를 한 번에 검색할 수 있습니다.

3.which 명령을 사용할 때 주의해야 할 제한 사항은 무엇입니까?

which명령에는 내장 셸 명령을 찾을 수 없다는 점, 바이너리 파일과 심볼릭 링크의 구별이 부족하다는 점, $PATH변수에 지정된 디렉토리 내에서만 검색한다는 점 등 여러 가지 제한 사항이 있습니다.실행 파일을 찾을 수 없으면 오류 메시지가 반환되지 않아 오해의 소지가 있습니다.

출처 및 이미지

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다