리눅스 환경변수 설정 – 우분투(Environment Variables in Ubuntu)

리눅스 환경변수 설정

환경변수(environment variable)는 운영체제에서 바로 접근할 수 있는 값입니다. 프로그래머들은 이 변수와의 씨름을 많이 해서 무슨 말인지 개념을 잡기 어렵지 않습니다. 전역변수(global variable)처럼 생각해 볼 수도 있습니다. 다른 프로그램, 프로세스들이 같은 운영체제의 환경변수에 접근할 수 있지요. (물론 프로그램과 운영체제는 작동하는 레벨이 전혀 다르지만 이해하기 위한 하나의 컨셉으로…)

환경변수는 윈도우나 리눅스 둘다 있습니다. 윈도우 사용자들도 환경변수를 사용해본 경험이 있다면 리눅스의 환경변수도 어렵지 않을 겁니다. 여기서는 리눅스의 환경변수에 대해 알아보고 설정하고 관리하는 방법을 알아보겠습니다.

환경변수의 정의와 뜻

환경변수(environment variable)는 Linux 운영 체제에서 프로세스나 프로그램의 동작에 영향을 줄 수 있는 동적 값(dynamic value)입니다.

Linux에서 환경 변수는 운영 체제, 사용자 기본 설정 및 프로그램과 프로세스가 사용할 수 있는 기타 구성 설정에 대한 정보를 저장하는 데 사용됩니다. (여러 프로그램이 사용하니까 용도로 다양하다) 키-값의 쌍으로 저장되는데 키는 변수 이름이고 값은 변수에 저장된 데이터입니다. 코딩에서 보면 동적 변수를 만드는 것과 비슷합니다.

환경변수는 사용자, 시스템 관리자, 프로그램이 직접 설정하고 수정할 수 있습니다. 사용자 같은 경우는 셸에서 사용하거나 스크립트의 동작에서 사용하기도 하고, 시스템 전체 설정에 사용하거나, 프로그램이나 프로세스의 실행에 필요한 정보를 제공하기도 합니다. 워낙 다양한 곳에서 쓰이기 때문에 환경변수가 어렵게 느껴질 수 있으나 본질은 변수의 형태로 정보를 제공하기 위해서이다 – 라고 보면 되겠습니다. 사용자와 운영체제 프로그램이 알아서 바꿀 수 있기 때문에 이런 것이 초창기 리눅스 사용의 장벽이기도 했지요. (지금도 그렇다) 환경변수 설정 하나만 바꿔도 원하는 프로그램의 동작이 안될 수 있습니다.

결국은 리눅스 운영체제의 사용자는 환경변수의 사용법을 마스터하거나 아니면 또 환경변수와 씨름하거나 그럴 수 밖에 없습니다. 뭐 환경변수를 잘못건드리면 고생하는 건 윈도우도 마찬가지기 때문에 이것이 딱히 리눅스의 불편한 점이라고 생각할 필요는 없습니다. 운영체제의 관리자에게 더 많은 재량권이 있다 – 그렇게 보면 좋을 것 같습니다.

환경변수의 목록

우선 시스템에 어떤 환경변수가 있는지 확인해봅시다. Linux 시스템에서 현재 환경 변수를 보려면 env 명령을 사용할 수 있습니다. (혹은 printenv) 참고로 로그인한 사용자에 따라 환경변수는 개별적입니다.

env

printenv

export 명령어로 환경변수 설정

환경 변수를 설정하려면 export 명령 뒤에 변수 이름과 값을 입력하면 됩니다. env 명령어를 치면 환경변수가 등록되었는 것을 볼 수 있습니다.

export MY_VAR="CodingSmoothie"
우분투 리눅스 환경설정

env로 확인하면 MY_VAR라는 키(key)가 CodingSmoothie라는 값(value)과 연결되어 있는 것이 보입니다. echo로 출력할 수도 있지요.

우분투 리눅스 환경설정

이렇게 셸에서 설정한 환경변수는 일시적입니다.(Temporary Environment Variable) 터미널을 종료하면 사라집니다. (시스템을 리부트 해도 당연히 사라진다)

etc/environment 파일로 설정

환경변수를 스크립트로 만들어서 사용해도 되겠지만 매번 번거롭다면 시스템이 부팅할 때 로드하는 환경변수 파일안에 넣을 수 있습니다. vi 편집기로 내용을 확인해봅니다.

sudo vi /etc/environment
우분투 리눅스 환경설정

위에 보면 기본적으로 바이너리 폴더들(실행파일들이 위치한 곳)이의 경로가 PATH라는 환경변수에 문자열 타입으로 저장되어 있습니다. 여기에 환경변수를 추가할 수 있습니다. 한줄에 하나의 환경변수를 추가해야 합니다. 현재 윈도우의 WSL2에서는 여기 밑에 환경변수 추가가 안되니 참고합니다. (WSL만 안되는 것들이 있음)

/etc/profile.d/ 폴더의 스크립트 생성

다음 방법은 /etc/profile.d/ 폴더에 sh 스크립트를 생성하는 방법입니다. 파일을 별도 생성하므로 이 방법이 관리하기 수월합니다. 파일을 하나 만듭니다. 확장자만 sh면 파일 이름은 어떤 것도 상관없습니다. 필자는 my-env.sh라고 했습니다.

sudo vim /etc/profile.d/my-env.sh

여기에 환경 변수를 추가한 후 리부트 합니다.

export MY_BLOG="Soothie Coding"

아래와 같이 사용자 환경변수를 사용할 수 있습니다.

참고링크

Setting Up Environment Variables on Ubuntu – TecAdmin

Leave a Comment