환경변수란 자바 등을 깔아본 사람들이라면 이미 익숙할 것이다.
어떤 프로그램이 돌아가게 해주는 실행파일의 경로를 잡아주는걸 환경변수 세팅이라고 하는데, 리눅스에는 매우 다양한 환경변수들이 있다.
현재 지정된 환경변수를 출력하는 명령어는 printenv 이다.
![](https://blog.kakaocdn.net/dn/QirE9/btrYie08fix/u730oieyJfLo1qr8MtzI6k/img.jpg)
환경변수들의 경로인 path를 출력하는 명령어는 echo $PATH 이다. path들은 전부 : (콜론)으로 구별되어 있다.
![](https://blog.kakaocdn.net/dn/zpH7T/btrYf1HMDRk/fcMsRjaWwvqb5MXIx6ombk/img.jpg)
여기서 하나 알아두어야 할 점은, 우리가 리눅스에서 사용하는 명령어들도 결국 일종의 실행파일인데 명령어 입력 시 환경변수에 잡혀있는 PATH를 따라가서 해당 파일이 실행되는 원리로 명령어가 작동된다는 것이다. 즉, mkdir, ls 등의 명령어도 결국 저 path 경로에 저장되어 있다는 얘기이다.
이 점을 응용해보자. 명령어들이 실행파일이고, path는 그 실행파일의 경로를 지정해준것이라고 하였으니, 우리가 어떤 프로그램을 만들고 환경변수에 그 프로그램의 경로를 등록시켜주면 우리가 자체적으로 만든 명령어 가지고도 우리의 프로그램을 이용할 수 있게 된다는 얘기가 된다.
그럼 먼저 쉘 언어를 이용해 간단한 덧셈 프로그램을 만들어 보자
콘솔에 vi add 라고 입력하면 빈 텍스트 에디터가 생긴다.
![](https://blog.kakaocdn.net/dn/b0TVmV/btrYlziFiuB/Y5k9DgQ4gE3FdUW4k8CrG0/img.jpg)
vi 는 일종의 텍스트 에디터로 다양한 기능을 갖추었으나 자세한 설명은 나중에 하도록 하고 지금은 쉘 코딩을 위해 텍스트 편집으로만 이용하겠다.
아무튼 이렇게 입력하고 나면 빈 창이 뜨는데 i를 입력하면 편집(insert)모드로 전환된다.
![](https://blog.kakaocdn.net/dn/m6bn5/btrYieNCSIl/vVqVOCAOwFxuIq3rIMuQTK/img.jpg)
여기에 아래의 내용을 동일하게 입력한다.
그리고 ESC를 누르면 편집모드가 종료되는데, 이때 : (콜론)을 입력하면 종료모드를 선택할 수 있게 된다.
:이 입력된 종료모드에서 w는 다른이름으로 저장모드 이고, q는 저장 없이 종료, !는 강제 수행 명령어이다.
이를 합쳐서 주로 :wq 이런식이나, :wq! 이런식으로 많이 사용한다. 아무튼 저장후 종료를 해준다.
![](https://blog.kakaocdn.net/dn/c2wC80/btrYj0ui6EX/qCLOdg0QNtx3jtBBUyX21k/img.jpg)
여기까지 했으면 프로그램이 잘 동작하는지 테스트해보자.
쉘 스크립트의 실행 명령어인 sh를 앞에 써주고, 프로그램의 이름인 add, 이어서 피연산자 2개를 띄어쓰기로 구분해서 입력해준다. ex) sh add 1 2
![](https://blog.kakaocdn.net/dn/0pTcy/btrYje0U0f3/nKMQQy4mloH4fvs4Vm0NbK/img.jpg)
이제 본 목적으로 돌아와서 이 프로그램을 환경변수에 등록하여, 이 프로그램이 있는 폴더까지 와서 sh add 1 2와 같이 입력해서 실행하는 것이 아닌, 어디에서나 add 1 2와 같이 명령어처럼 바로 실행할 수 있게 해보자.
환경변수를 새로 등록하거나 편집하는 명령어는 export PATH=새로 등록할 프로그램의 주소이다.
그런데 한가지 주의해야 할 점은 위의 명령어처럼 바로 해버리면 기존 환경변수에 덮어쓰기가 된다는 점이다.
따라서 기존 환경변수에 이어서 새 환경변수를 등록하기 위한 명령어는 export PATH=$PATH:새로 등록할 프로그램의 주소 를 사용한다.
![](https://blog.kakaocdn.net/dn/tViUW/btrYiWsBniK/kiy7FBd4FPAzK6lo0rcq61/img.jpg)
위와 같이 제대로 PATH를 등록했다면 sh 명령어 없이 프로그램 이름인 add만으로도 어느 경로에서나 명령어처럼 사용할 수 있음을 알 수 있다.
여기까지 해서 printenv, 기초적인 vi사용법, PATH 설정법 등에 대해 알아보았다. 참고로 export를 통한 path 설정은 일시적인 것으로 로그아웃 하면 다시 기본 설정으로 돌아간다. 영구적인 path 저장법은 추후 소개할 예정이다.
'IT > 리눅스마스터1급' 카테고리의 다른 글
기본적인 AIX 명령어 정리 (0) | 2023.02.08 |
---|---|
$PATH에서 경로 지우기 / 중복 경로 지우기 (0) | 2023.02.06 |
ps에서 pid 목록만 가져와서 kill하기 [GAWK] (0) | 2023.01.27 |
일반 계정에 root 권한 부여 (0) | 2023.01.26 |
[Linux] 일반 user에게 root 권한 부여하기 (0) | 2023.01.26 |