명령줄에 명령을 입력할 때 기본적으로 셸은 지정된 이름의 실행 파일을 실행하도록 지시합니다. Linux에서 ls, find , file 등의 실행 프로그램은 일반적으로 시스템의 여러 다른 디렉토리에 상주합니다. 이러한 디렉토리에 저장된 실행 권한이 있는 모든 파일을 모든 위치에서 실행할 수 있습니다. 실행 프로그램을 저장하는 가장 일반적인 디렉토리는 /bin, /sbin, /usr/sbin, /usr/local/bin 및 /usr/local/sbin입니다.
그러나 셸이 실행 프로그램을 검색할 디렉터리를 어떻게 알 수 있고 셸이 전체 파일 시스템을 검색할까요?
명령을 입력하면 셸은 사용자 $PATH 변수에 지정된 모든 디렉토리에서 해당 이름의 실행 파일을 검색합니다.
이 문서에서는 Linux 시스템에서 $PATH에 디렉터리를 추가하는 방법을 보여 줍니다.
Linux에서 $PATH란
$PATH 환경 변수는 실행 파일을 검색할 디렉터리를 셸에 알려주는 콜론으로 구분된 디렉터리 목록입니다.
$PATH에 있는 디렉터리를 확인하려면 printenv 또는 echo 명령을 사용합니다.
echo $PATH
# /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
동일한 이름을 공유하는 실행 파일 두 개가 서로 다른 두 디렉토리에 있는 경우 셸은 $PATH에서 먼저 디렉토리에 있는 파일을 실행합니다.
$PATH에 디렉토리를 추가
$PATH 변수에 다른 디렉터리를 추가해야 하는 경우가 있습니다. 예를 들어, 일부 프로그램은 다른 위치에 설치되거나 개인 스크립트에 대한 전용 디렉터리를 가질 수 있지만 실행 파일의 절대 경로를 지정하지 않고 실행할 수 있습니다. 이렇게 하려면 $PATH에 디렉토리를 추가하면 됩니다.
셸 스크립트를 보관하는 홈 디렉토리에 bin이라는 디렉터리가 있다고 가정해 보겠습니다. $PATH에 디렉토리를 추가하려면 다음을 입력합니다.
export PATH="$HOME/bin:$PATH"
내보내기 명령은 수정된 변수를 셸 하위 프로세스 환경으로 내보냅니다.
이제 파일의 전체 경로를 지정할 필요 없이 실행 스크립트 이름을 입력하여 스크립트를 실행할 수 있습니다.
그러나 이 변경은 일시적이며 현재 셸 세션에서만 유효합니다.
변경을 영구화하려면 셸 구성 파일에서 $PATH 변수를 정의해야 합니다. 대부분의 Linux 배포에서 새 세션을 시작할 때 환경 변수는 다음 파일에서 읽습니다.
/etc/environment 및 /etc/profile과 같은 글로벌 셸 관련 구성 파일입니다. 새 디렉토리를 모든 시스템 사용자 $PATH에 추가하려면 이 파일을 사용하십시오.
사용자별 셸별 구성 파일입니다. 예를 들어 Bash를 사용하는 경우 ~/.bashrc 파일에서 $PATH 변수를 설정할 수 있습니다. Zsh를 사용하는 경우 파일 이름은 ~/.zshrc입니다.
이 예에서는 ~/.bashrc 파일에서 변수를 설정합니다. 텍스트 편집기로 파일을 열고 파일 끝에 다음 줄을 추가합니다.
# ~/.bashrc
export PATH="$HOME/bin:$PATH"
파일을 저장하고 source 명령을 사용하여 새 $PATH를 현재 셸 세션에 로드합니다.
source ~/.bashrc
디렉토리가 성공적으로 추가되었는지 확인하려면 다음을 입력하여 $PATH 값을 인쇄하십시오.
echo $PATH
사용자 또는 글로벌 $PATH 변수에 새 디렉토리를 추가하는 것은 매우 간단합니다. 따라서 실행 파일의 전체 경로를 입력할 필요 없이 비표준 위치에 저장된 명령 및 스크립트를 실행할 수 있습니다.
Ubuntu, CentOS, RHEL, Debian 및 Linux Mint를 포함한 모든 Linux 배포에도 동일한 지침이 적용됩니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : CentOS 7 업데이트 설치 방법, 예제, 명령어 (0) | 2021.11.15 |
---|---|
Linux : Debian 10 : Docker 설치 방법, 예제, 명령어 (0) | 2021.11.14 |
Linux : Ubuntu 18.04 : Xrdp Server (Remote Desktop) 설치 방법, 예제, 명령어 (0) | 2021.11.12 |
Linux : Debian 10 : Apache Web Server 설치 방법, 예제, 명령어 (0) | 2021.11.11 |
Linux : Debian 10 : MySQL 설치 방법, 예제, 명령어 (0) | 2021.11.10 |