Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스 어디서든 스크립트를 실행할 수 있게 만드는 방법

리눅스 어디서든 스크립트를 실행할 수 있게 만드는 방법

Bash 스크립트를 만들어 특정 폴더에 저장하면, 그 폴더 안에 있을 때만 실행할 수 있다는 사실을 금방 알게 됩니다. ls, imagemagick, apache, squid 같은 명령어와 프로그램은 서로 다른 디렉터리에 설치되어 있음에도 어디서든 접근할 수 있는데, 그 비결은 무엇일까요? 정답은 각각의 경로가 "PATH" 변수에 등록되어 있기 때문입니다. 여기에 원하는 경로를 추가하면 여러분의 스크립트 역시 어디서든 실행할 수 있게 됩니다.

Bash에 경로 추가하기

시작하기 전에 알아둘 점이 있습니다. 리눅스 보안 구조의 특성상, Path는 세 가지 수준에서 조정할 수 있습니다. 그 첫 번째가 바로 Bash입니다. 여기서 설정한 내용은 Bash와 그 안에서 실행되는 모든 작업에 영향을 미치지만, "Bash 외부"에는 영향을 주지 않습니다.

예를 들어, 어디서든 접근하고 싶은 스크립트들이 모여 있는 폴더가 있다고 가정해 봅시다.

리눅스 어디서든 스크립트를 실행할 수 있게 만드는 방법

이를 실현하려면 해당 폴더의 경로를 "~/.bashrc" 파일에 추가하면 됩니다. ".bashrc" 파일(홈 디렉터리에 위치하지만 기본적으로 숨겨져 있습니다)을 gedit처럼 평소 사용하는 텍스트 편집기로 열어보세요.

파일 맨 끝으로 이동한 뒤 다음 내용을 추가합니다:

export PATH="/path_of/the_folder_we/want_to_add_to:$PATH"
리눅스 어디서든 스크립트를 실행할 수 있게 만드는 방법

예를 들어, 실행 가능한 스크립트를 "/home/myname/scripts" 폴더에 보관하고 있다면 명령은 다음과 같습니다:

export PATH="/home/myname/scripts:$PATH"
리눅스 어디서든 스크립트를 실행할 수 있게 만드는 방법

변경 사항을 적용하려면 파일을 저장하고 텍스트 편집기를 종료한 후, 터미널에 다음을 입력하세요:

source ~/.bashrc
리눅스 어디서든 스크립트를 실행할 수 있게 만드는 방법

이후 다른 디렉터리로 이동해서 그곳에서도 스크립트가 정상적으로 실행되는지 확인해 보세요.

프로필(Profile)에 경로 추가하기

폴더의 내용을 Bash의 제약 밖에서도 접근 가능하게 만들고 싶다면, 대신 Profile 변수에 경로를 추가하세요.

".profile" 파일을 선호하는 텍스트 편집기로 엽니다.

파일 맨 끝에 다음 내용을 입력합니다:

export PATH="$PATH:$HOME/scripts"

변경 사항을 적용하려면 로그아웃한 뒤 다시 로그인해야 합니다.

리눅스 어디서든 스크립트를 실행할 수 있게 만드는 방법

참고로 우분투(Ubuntu) 및 그 파생 배포판에서는 ".profile" 대신 ".pam_environment" 파일을 수정하는 것이 권장됩니다.

텍스트 편집기로 ".pam_environment" 파일을 엽니다. 파일이 존재하지 않으면 새로 생성하면 됩니다.

파일 안에 다음을 입력합니다:

PATH DEFAULT=${PATH}:/home/@{PAM_USER}/scripts
리눅스 어디서든 스크립트를 실행할 수 있게 만드는 방법

주목할 점은 profile 파일과 달리, 완전히 고정된(hardcoded) 경로 대신 변수를 사용한다는 것입니다. 이렇게 하면 각 사용자의 "/home/USER_NAME/scripts" 폴더가 자동으로 해당 사용자의 경로에 추가됩니다.

".profile" 파일을 수정할 때와 마찬가지로, 변경 사항을 적용하려면 로그아웃 후 다시 로그인해야 합니다.

리눅스 어디서든 스크립트를 실행할 수 있게 만드는 방법

환경(Environment)에 경로 추가하기

같은 컴퓨터를 공유하는 여러 사용자 모두가 특정 폴더의 내용에 접근할 수 있게 하는 올바른 방법은 환경 경로 변수에 추가하는 것입니다. 터미널을 열고 다음을 입력하세요:

sudo nano /etc/environment

이 파일의 path 변수에는 따옴표로 묶인 여러 폴더가 콜론(:)으로 구분된 형태로 저장되어 있습니다. 예를 들면 다음과 같습니다:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin"

자신의 폴더를 이 목록에 포함하려면, 마지막 경로 바로 뒤, 닫는 따옴표 앞에 콜론과 함께 폴더 경로를 입력합니다. 폴더가 "/home/your_username/scripts"라면 다음과 같이 됩니다:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/YOUR_USERNAME/scripts"
리눅스 어디서든 스크립트를 실행할 수 있게 만드는 방법

대문자로 쓸 필요는 없습니다. 여기서는 강조를 위해 대문자를 사용했으며, 폴더 경로를 어디에 어떻게 삽입해야 하는지 한눈에 파악하기 쉽게 하기 위함입니다.

앞선 방법들과 마찬가지로, 변경 사항을 적용하려면 로그아웃 후 다시 로그인하세요.

위에서 소개한 방법들을 활용하면 리눅스 시스템 어디에서든 자유롭게 스크립트를 실행할 수 있게 됩니다.

함께 읽으면 좋은 글:

  • Kmdr로 터미널에서 명령어 설명 확인하는 방법
  • 명령줄 히스토리를 검색하는 더 스마트한 방법
  • 리눅스 초보자를 위한 필수 Bash 명령어 정리