『 '데이널'의 컨텐츠에 포함된 정보는? 』
리눅스에서 환경변수는 왜 설정하는 걸까요?
이유는 Linux 운영 체제가 복잡해질수록 환경 변수는 일관된 환경을 만들어주는 역할하기 때문입니다. 환경 변수는 사용자별 적용 환경, 전체 환경을 적용 측면에서 정의할 수 있습니다. 이글에서 환경 변수의 개념, 사용법, 그리고 어떤 영향이 있는지 살펴보도록 하겠습니다.
Linux 환경 변수란
기본적으로 환경 변수는 Linux 프로그램의 프로세스와 동작에 영향을 미치는 변수 값입니다. 운영 체제와 사용자 응용 프로그램 간의 필요한 필수 정보를 정의합니다. 이러한 변수는 프로세스가 실행되는 환경에서 설정되어 명령 프롬프트 등 실행 환경에 영향을 미칩니다.
리눅스에서 환경 변수는 두가지 측면에서 관리합니다.
첫째, 모든 user가 적용되는 환경 변수 설정
둘째, 각각의 user만의 환경 변수를 설정
만약에 모든 user가 공통적으로 적용되어야 할 변수 일경우는 첫 번째 환경변수에 설정하고, 나만 사용하는 환경변수일 경우는 두 번째에 설정하면 됩니다.
그러면 각각 어떻게 설정하는지 확인해 보시죠.
전체 적용 환경 변수
전체 적용 환경 변수는 /etc 디렉토리 밑에 있습니다. 환경 변수의 경우 숨겨진 파일(히든 파일)로 되어 있습니다. 보통 이름 앞에 점(.)이 붙어 있습니다. 숨겨진 파일을 조회하는 방법은 ls 명령어 뒤에 '-a' 옵션을 추가적으로 붙여야 합니다. 'ls -al'로 실행하면 모두 볼 수 있습니다.
# /etc/profile
- 일반적으로 전체 path 등 정보가 있습니다. 시스템 전역에 걸친 환경을 정의합니다.
- user 접속하면 profile파일 시작과 함께 /etc/profile.d 하위에 존재하는 shell들이 함께 실행됩니다.
# /etc/profile.d/*.sh 또는 *.csh
- 시스템 부팅과 동시에 로딩되는 shell들이 존재합니다.
- 사용자 전체가 공통으로 할당받는 환경입니다.
# /etc/bashrc
- 전체 쉘 실행 시 필요한 정보가 있습니다.
- 시스템 전반에 걸친 함수와 alias. /etc/profile을 그대로 참조하여 사용하도록 되어 있는 하위 개념입니다.
사용자 적용 환경변수
사용자에게 적용되는 환경변수는 각 user의 홈 디렉터리에 존재합니다. user로 로그인해서 ls -la 명령어를 실행하면 아래와 같은 파일들이 보일 거에요.
# ~/.bash_profile
- 사용자의 path 정보 등이 존재합니다.
- 사용자 환경에 맞게 로그인 이후에 로딩되어 할당받는 변수들이 정의됩니다.
# ~/.bashrc
- shell 실행 시 필요한 정보들이 존재합니다.
- 사용자 홈 디렉터리에 위치한 .bashrc는 로그인하거나, 현재 터미널에서 다시 .bashrc를 로딩하면 즉각 환경이 반영됩니다.
# env
- 명령어를 사용하면 적용된 환경변수 확인할 수 있습니다.
접속한 세션에서만 적용
특정 사용자 세션에 대해 로컬로 환경 변수를 설정할 수도 있습니다. 이 경우는 접속한 세션에만 적용되지 다시 접속하면 사라지는 환경 변수 입니다. 만약에 접속할 때마다 동일하게 적용하고 싶다면 위에서 배운 환경 변수들에 아래 명령어를 추가해 주셔야 합니다.
# export MY_PATH="/etc/myhome"
- 'export' 명령은 일반적으로 셸 환경에서 변수를 설정하는 데 사용됩니다.
# echo $MY_PATH
- 환경 변수 설정을 확인은 echo 명령어에 $를 붙여서 알 수 있습니다.
환경 실행에 대한 Tip
/bin 디렉터리에는 binary (실행파일이 담겨 있는 폴더)입니다. 만약, bin 폴더에서 순서대로 파일을 읽는 데, 파일마다 버전이 다른 경우 특정 파일을 지정해서 읽는 방법이 있습니다. /etc/alternatives/* 에 가면 많은 파일들이 있습니다. 해당 폴더에서 심볼릭 링크를 생성하여, 특정 파일을 읽도록 명시적으로 지정할 수 있습니다.
'리눅스,네트워크' 카테고리의 다른 글
리눅스 계정 관리 - 사용자(user), 그룹(group), 패스워드 (0) | 2023.12.19 |
---|---|
리눅스(Linux) 권한 관리 - Permission (0) | 2023.12.18 |
리눅스 쉘 스크립트(Shell Script) 쉬운 설명 (0) | 2023.11.07 |
리눅스 리다이렉션(IO Redirection) 개념 (0) | 2023.10.27 |
리눅스(Linux) Top 명령어 (1) | 2023.10.13 |