어떤 프로그램이 돌아가게 해주는 실행파일의 경로를 잡아주는걸 환경변수 세팅이라고 하는데,
리눅스에는 매우 다양한 환경변수들이 있다.
지정된 환경변수를 출력하는 명령어는 printenv 이다.
1) printenv
환경변수들의 경로인 path를 출력하는 명령어는 echo $PATH 이다. path들은 전부 : (콜론)으로 구별되어 있다.
2) echo $PATH
위에서 알아야 할 것은, 리눅스에서 사용하는 명령어들도 결국 일종의 실행파일인데 명령어 입력 시 환경변수에 잡혀있는 PATH를 따라가서 해당 파일이 실행되는 원리로 명령어가 작동된다는 것이다.
즉, mkdir, ls 등의 명령어도 결국 저 path 경로에 저장되어 있다는 얘기이다.
이 점을 이용하면, 명령어들이 실행파일로 이뤄져있고, PATH는 그 실행파일들의 경로를 지정한것이라고 하였으니,
우리가 어떤 프로그램을 만들고나서 환경변수에 그 프로그램의 경로를 등록시켜주면, 우리가 만든 명령어로 프로그램을 이용할 수 있다는 얘기가 된다.
그럼 먼저 쉘 언어를 이용해 간단한 덧셈 프로그램을 만들어 보자
콘솔에 vi 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 저장법은 추후 소개할 예정이다.
'DEVELOP_NOTE > Linux' 카테고리의 다른 글
[Linux]vi 탐색기 CRUD 기능 정리 (0) | 2024.09.10 |
---|---|
[Linux] 프로세스 확인 명령어 옵션 비교 (ps -ef / ps aux) (0) | 2023.11.09 |
[Linux] Top 관련 명령어 정리 (0) | 2023.11.08 |
[Linux] 서버 접속 비밀번호 변경 (0) | 2023.05.08 |
[Linux]파일 또는 디렉토리 권한/소유자 수정하기(chown, chmod) (0) | 2023.04.03 |