본문 바로가기

OS/Linux

Linux - 스크립트 명령어를 등록하고 버전 관리하는 법

728x90

리눅스 환경에서 바이너리 파일이나 스크립트를 명령어로 등록하면, 터미널에서 해당 명령어를 바로 입력하여 실행할 수 있습니다. 특히 직접 설치한 패키지나, 여러 버전을 동시에 관리해야 하는 환경에서는 효과적으로 사용 가능합니다.

 

1. 환경 변수 PATH에 경로 추가하기

일반적으로 터미널에 입력된 명령어는 PATH 환경 변수에 지정된 경로에서 찾습니다. 기본적으로 /usr/bin과 같은 경로가 PATH에 포함되어 있어, 여기에 등록된 명령어는 별도의 경로 없이도 실행됩니다.

  • 바이너리나 스크립트가 위치한 디렉토리를 PATH에 추가하면, 해당 명령어로 바로 실행 가능합니다.
export PATH=$PATH:/your/custom/path

주의 사항: 여러 디렉토리를 추가하면 PATH가 복잡해져 유지 관리가 어려워지므로 최소한으로 추가하는 것이 좋습니다.

2. /usr/bin에 직접 심볼릭 링크 생성하기

특정 스크립트나 바이너리를 /usr/bin에 심볼릭 링크로 등록해 두면, 터미널에서 간단히 명령어만 입력해 바로 실행할 수 있습니다.

sudo ln -s /경로/스크립트명 /usr/bin/명령어명

 

  • 이렇게 설정하면 /usr/bin에 링크가 생기면서, 등록한 이름만 입력해도 해당 스크립트가 실행됩니다.
  • 장점: 빠르게 명령어를 등록할 수 있습니다.
  • 단점: 버전이 여러 개 있는 경우 버전별로 관리하기 어렵습니다.

3. 버전 관리 도구 활용하기

여러 버전을 동시에 관리할 필요가 있는 경우, 전용 버전 관리 도구를 사용하는 것이 효율적입니다.

예를 들어, Java는 jenv, Python은 pyenv로 관리할 수 있습니다. 

  • 자주 사용하는 도구
    • Java: jenv
    • Python: pyenv

이렇게 하면 명령어로 사용하고자 하는 버전을 손쉽게 선택할 수 있고, 다양한 프로젝트에 따라 적합한 버전을 빠르게 적용할 수 있습니다.

4. update-alternatives로 시스템에 등록하기

리눅스의 update-alternatives는 여러 버전의 프로그램을 체계적으로 관리하는 기능을 제공합니다. update-alternatives를 사용해 등록하면, /usr/bin/명령어명과 연결된 심볼릭 링크를 통해 여러 버전의 소프트웨어를 쉽게 전환할 수 있습니다.

sudo update-alternatives --install "/usr/bin/명령어명" "명령어명" "/경로/버전1/실행파일" 1
sudo update-alternatives --install "/usr/bin/명령어명" "명령어명" "/경로/버전2/실행파일" 2

 

사용 방법

sudo update-alternatives --config 명령어명

위 명령어를 실행하면 등록된 버전 목록이 표시되며, 여기서 원하는 버전을 선택할 수 있습니다. 각 버전이 심볼릭 링크로 관리되므로, 여러 버전이 필요한 환경에서 유용하게 사용할 수 있습니다.

 

5. 스크립트 및 환경 변수 파일 설정 순서

리눅스에서 환경 변수를 설정할 때, 각 파일이 호출되는 순서를 이해하면 더 체계적으로 관리할 수 있습니다. 

  1. /etc/profile.d/: 모든 로그인 사용자에게 적용되는 스크립트 관리
  2. /etc/bashrc: 시스템 전역 bash 설정
  3. ~/.bash_profile: 로그인 셸에서 적용되는 개인 설정
  4. ~/.bashrc: 비로그인 셸에도 적용되는 설정

필요한 설정을 적절한 파일에 배치하여 모든 세션에서 동일하게 적용되도록 할 수 있습니다.

 


예시: 사용자 정의 스크립트를 /usr/local/bin에 등록하여 실행하기

  1. 스크립트 작성
    • myscript라는 스크립트를 작성했다고 가정합니다.
    • 스크립트 파일에 실행 권한을 추가합니다.
      chmod +x /path/to/myscript
  2. 스크립트를 /usr/local/bin에 복사
    • /usr/local/bin은 대부분의 리눅스 배포판에서 기본적으로 PATH에 포함된 디렉토리입니다.
      이곳에 스크립트를 복사하면, 터미널 어디서든 해당 스크립트를 명령어로 사용할 수 있습니다.
       
      sudo cp /path/to/myscript /usr/local/bin/myscript
  3. 확인
    • 이제 터미널에서 myscript를 입력하여 스크립트가 실행되는지 확인해보세요.
      myscript

 

728x90
반응형