IT/리눅스마스터1급

리눅스 환경변수(path) 설정

알콩달콩아빠 2023. 2. 6. 20:47
728x90
반응형

환경변수란 자바 등을 깔아본 사람들이라면 이미 익숙할 것이다.
어떤 프로그램이 돌아가게 해주는 실행파일의 경로를 잡아주는걸 환경변수 세팅이라고 하는데, 리눅스에는 매우 다양한 환경변수들이 있다.
현재 지정된 환경변수를 출력하는 명령어는 printenv 이다.


환경변수들의 경로인 path를 출력하는 명령어는 echo $PATH 이다. path들은 전부 : (콜론)으로 구별되어 있다.

 

여기서 하나 알아두어야 할 점은, 우리가 리눅스에서 사용하는 명령어들도 결국 일종의 실행파일인데 명령어 입력 시 환경변수에 잡혀있는 PATH를 따라가서 해당 파일이 실행되는 원리로 명령어가 작동된다는 것이다. 즉, mkdir, ls 등의 명령어도 결국 저 path 경로에 저장되어 있다는 얘기이다.

이 점을 응용해보자. 명령어들이 실행파일이고, path는 그 실행파일의 경로를 지정해준것이라고 하였으니, 우리가 어떤 프로그램을 만들고 환경변수에 그 프로그램의 경로를 등록시켜주면 우리가 자체적으로 만든 명령어 가지고도 우리의 프로그램을 이용할 수 있게 된다는 얘기가 된다.

그럼 먼저 쉘 언어를 이용해 간단한 덧셈 프로그램을 만들어 보자
콘솔에 vi add 라고 입력하면 빈 텍스트 에디터가 생긴다. 

add는 만들 파일 이름이다.

vi 는 일종의 텍스트 에디터로 다양한 기능을 갖추었으나 자세한 설명은 나중에 하도록 하고 지금은 쉘 코딩을 위해 텍스트 편집으로만 이용하겠다.

아무튼 이렇게 입력하고 나면 빈 창이 뜨는데 i를 입력하면 편집(insert)모드로 전환된다.

여기에 아래의 내용을 동일하게 입력한다.

#!/bin/bash sum=$(($1 + $2)) echo "$1 + $2 = $sum"

그리고 ESC를 누르면 편집모드가 종료되는데, 이때 (콜론)을 입력하면 종료모드를 선택할 수 있게 된다.
:이 입력된 종료모드에서 w는 다른이름으로 저장모드 이고, q는 저장 없이 종료, !는 강제 수행 명령어이다.
이를 합쳐서 주로 :wq 이런식이나, :wq! 이런식으로 많이 사용한다. 아무튼 저장후 종료를 해준다.

여기까지 했으면 프로그램이 잘 동작하는지 테스트해보자.
쉘 스크립트의 실행 명령어인 sh를 앞에 써주고, 프로그램의 이름인 add, 이어서 피연산자 2개를 띄어쓰기로 구분해서 입력해준다. ex) sh add 1 2

잘 작동하는것을 확인할 수 있다.

이제 본 목적으로 돌아와서 이 프로그램을 환경변수에 등록하여, 이 프로그램이 있는 폴더까지 와서 sh add 1 2와 같이 입력해서 실행하는 것이 아닌, 어디에서나 add 1 2와 같이 명령어처럼 바로 실행할 수 있게 해보자.

환경변수를 새로 등록하거나 편집하는 명령어는 export PATH=새로 등록할 프로그램의 주소이다.
그런데 한가지 주의해야 할 점은 위의 명령어처럼 바로 해버리면 기존 환경변수에 덮어쓰기가 된다는 점이다.
따라서 기존 환경변수에 이어서 새 환경변수를 등록하기 위한 명령어는 export PATH=$PATH:새로 등록할 프로그램의 주소 를 사용한다.

위와 같이 제대로 PATH를 등록했다면 sh 명령어 없이 프로그램 이름인 add만으로도 어느 경로에서나 명령어처럼 사용할 수 있음을 알 수 있다.

여기까지 해서 printenv, 기초적인 vi사용법, PATH 설정법 등에 대해 알아보았다. 참고로 export를 통한 path 설정은 일시적인 것으로 로그아웃 하면 다시 기본 설정으로 돌아간다. 영구적인 path 저장법은 추후 소개할 예정이다.

 

 

출처 : 5. 리눅스 환경변수(path) 설정 : 네이버 블로그 (naver.com)

728x90
반응형