환경변수에 대해서 알아보자:)
dqQQQ
·2023. 11. 26. 19:28
개요
모든 OS의 설정이나 터미널 같은 곳을 가면 환경변수라는 것이 있다.
환경변수가 무엇이고 그것에 관련된 명령에 대해 알아보겠다.
쉘 변수
쉘도 하나의 프로그램이다. 그러므로 변수를 가지는데 특정한 쉘의 정보를 담고 변수를 통해 프로그램을 제어한다.
나는 zsh을 사용하므로 그곳에서만 사용하는 변수이며 bash같은 다른 쉘에는 다른 쉘 변수를 사용한다.
다른 말로 사용자 환경변수 혹은 로컬 환경변수라고 말한다. 쉘 변수 역시 환경변수의 일종인 것이다.
나는 다른 용어보다 쉘 변수가 좀 더 직관적이기 때문에 쉘변수라고 사용하겠다.
환경 변수
쉘 변수가 특정한 쉘에서 사용하는 로컬 변수와 같은 의미였다면
환경변수는 모든 쉘에서 사용할 수 있는 글로벌 변수와 같은 의미다.
그러므로 쉘에서 환경변수를 통해 컴퓨터 동작에 영향을 끼칠 수 있는 것이다.
시스템의 현재 정보를 담고있는 변수들이라고 할 수 있다.
set
쉘 변수를 출력하고 쉘 변수의 값을 변경할 수 있다.
옵션들을 이용하여 추가적인 기능을 사용할 수 있다.
그냥 set 명령어만 실행한다면 쉘 변수들의 목록들을 보여준다.
만약 쉘변수를 변경하거나 추가하고 싶다면 zsh기준으로는 set 명령어가 필요없이 변수=값
의 형태로 하면된다.
unset
쉘 변수를 제거하고 싶을 때 사용하는 명령어이다.
export
쉘 변수를 환경변수로 만들고 싶을 때 사용하는 명령어이다.
env
환경 변수를 출력하고 쉘 변수의 값을 변경할 수 있다.
옵션들을 이용하여 추가적인 기능을 사용할 수 있다.
그냥 env 명령어만 실행한다면 환경 변수들의 목록들을 보여준다.
프로그램에 환경변수 넘겨주기
int main()
. 우리가 프로그램을 짤 때 가장 기본적으로 사용하는 main함수이다.
만약 프로그램에 인자값을 넘겨줄때는 int main(int argc, char **argv)
를 사용한다.
main 함수의 파라메터를 하나 더 추가하게 된다면 시스템의 환경변수를 넘겨준다.
int main(int argc, char **argv, char **envv)
의 형태로 사용하면 된다.
그렇다면 envv 변수에 시스템의 환경변수들이 저장되어 있다.
'42Seoul' 카테고리의 다른 글
readline 라이브러리에 대해 알아보자:) (0) | 2023.11.26 |
---|---|
signal 함수와 인터럽트에 대해 알아보자:) (0) | 2023.11.26 |
정렬된 스택을 만들기 위한 명령어들을 만들어보자:) (0) | 2023.11.26 |
터미널에서 미니 게임을 구현해보자:) (0) | 2023.11.26 |
터미널에서 미니 대화창을 구현해보자:) (0) | 2023.11.26 |