[Linux] 환경변수

로그zip·2024년 2월 5일

터미널에서 새로운 소프트웨어를 설치하는 경우
설치 후 명령어가 동작하지 않는 경우가 있는데 이는 환경변수를 설정하지 않아서
발생하는 경우가 많다.

[예제]

  • homebrew 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • homebrew vim 검색
brew search vim
  • 명령어를 찾을 수없음
command not found: brew

이는 현재 셸 위치에서 명령어를 찾을 수 없어서 발생하는 문제이다.
이를 해결하기 위해서는 해당 프로그램이 설치된 경로를 찾아가 실행하거나
환경변수를 설정하여 전역에서 동작을 제어할 수 있도록 하여 해결한다.

[환경변수 설정]
1. 셸 설정파일 진입

vim ~/.bashrc (zsh 는 ~/.zshrc)
  1. 환경변수 등록 (기존 PATH 에 새로운 프로그램 경로를 추가_콜론으로 구분한다)
export PATH="$PATH:/프로그램 경로"
혹은
export PATH="/프로그램 경로:$PATH"
  1. 설정파일 적용
source ~/.bashrc

추가.
위 1,2 번을 한번에 등록할 수 있다(echo 사용)

echo 'export PATH="$PATH:/프로그램 경로"' >> ~/.bashrc

이후 어느 위치에서나 brew ~ 명령어를 실행하면 정상 동작한다.


만약 지정된 경로에서만 활용하고자 설정한다면 변수명을 달리하여 등록하여도 된다.

[예제: tomcat catalina PID 등록]
1. PID 파일 생성

touch /tomcat/bin/catalina.pid
  1. 환경변수 등록
echo 'export MY_CATALINA_PID="./catalina.pid"' >> /tomcat/bin/catalina.sh

번외)
bash 동작의 파일을 생성하는 경우
#!/bin/bash (혹은 #!/bin/zsh) 를 선언한다.

이는 인터프리터를 지정하는 명령어로(shebang 이라한다)
지정하지 않아도 시스템에서 지정한 기본 셸로 동작하지만 shebang 을 선언함으로써
셸의 이식성을 높이고 사용자에게 문법을 참조할 수 있게함으로 권장하고 있다(주석효과).

profile
로그하우스

0개의 댓글