Aller au contenu principal

70. Manage System Wide Environment Profiles


환경 변수 이해

환경 변수는 셸에 저장된 동적 값으로, 실행 중인 프로세스의 동작에 영향을 줄 수 있습니다. 예를 들어 HISTSIZE는 Bash가 기억하는 최대 명령어 수를 제어합니다.

현재 사용자의 환경 변수 표시:

$ printenv  # 동일: $ env
PATH=/home/aaron/.local/bin:/home/aaron/bin:/usr/local/bin
HISTSIZE=1000
HOME=/home/aaron

명령줄에서 환경 변수 사용

변수 앞에 달러 기호($)를 붙이면 "셸이 현재 값으로 대체"합니다:

$ echo $HOME
/home/aaron

스크립트에서 환경 변수 동적 활용

환경 변수를 사용하면 스크립트가 실행 사용자에게 맞게 조정됩니다:

$ touch $HOME/saved_file  # 동일: $ touch /home/aaron/saved_file

Aaron이 스크립트를 실행하면 /home/aaron/saved_file이 생성되고, Jane이 실행하면 /home/jane/saved_file이 생성됩니다.

환경 변수 설정

개인 환경 변수 설정 → .bashrc 파일 수정

시스템 전체(모든 사용자) 변경 → /etc/environment 편집:

$ sudo vim /etc/environment
/etc/environment에 대한 변경은 다음 로그인 시 모든 사용자에게 적용됩니다.

사용자 로그인 시 명령어 실행

복잡한 명령어를 로그인 시 실행하려면 /etc/profile.d 디렉토리를 사용합니다. 이 디렉토리의 파일들은 로그인 셸이 자동으로 실행합니다.

각 사용자의 로그인 날짜와 시간을 로깅하는 스크립트 생성 예시:

$ sudo vim /etc/profile.d/lastlogin.sh

파일 내용:

echo "Your last login was: " > $HOME/lastlogin
date >> $HOME/lastlogin

로그아웃 후 재로그인하면 ~/lastlogin 파일에 로그인 시간이 기록됩니다:

$ cat lastlogin
Your last login was at:
Thursday DEC 16 11:19:27 CDT 2021

정리

/etc/environment/etc/profile.d를 통한 시스템 전체 환경 프로파일 관리로 모든 사용자의 셸과 애플리케이션 동작을 효과적으로 설정하고 커스터마이징할 수 있습니다.