환경 변수 영구 설정 방법
지금까지 현재 터미널 세션 동안만 지속되는 환경 변수를 설정했습니다. 터미널을 닫거나 로그아웃하면 이러한 변수는 손실됩니다. 이 단계에서는 세션 간에 환경 변수를 영구적으로 유지하는 방법을 배웁니다.
구성 파일에 환경 변수 저장
환경 변수를 영구적으로 설정할 수 있는 여러 파일이 있습니다.
~/.bashrc 또는 ~/.zshrc: 사용자에 특정한 변수의 경우
/etc/environment: 시스템 전체 변수의 경우
/etc/profile 또는 /etc/profile.d/의 파일: 로그인 시 로드되는 시스템 전체 변수의 경우
사용자의 셸 구성 파일에 몇 가지 환경 변수를 추가해 보겠습니다. 이 랩 환경은 ZSH 를 사용하므로 ~/.zshrc 파일을 편집합니다.
nano ~/.zshrc
파일의 맨 아래로 스크롤하여 다음 줄을 추가합니다.
## Custom environment variables
export EDITOR="nano"
export CUSTOM_PATH="$HOME/bin"
export GREETING="Hello from .zshrc!"
파일을 저장하고 (Ctrl+O, Enter 누름) nano 를 종료합니다 (Ctrl+X 누름).
현재 세션에 이러한 변경 사항을 적용하려면 파일을 소스해야 합니다.
source ~/.zshrc
이제 변수가 설정되었는지 확인합니다.
echo $EDITOR
echo $CUSTOM_PATH
echo $GREETING
.zshrc 파일에서 설정한 값을 볼 수 있습니다.
이제 이러한 환경 변수는 새 셸 세션을 시작할 때마다 사용할 수 있습니다.
사용자 정의 환경 변수 파일 만들기
환경 변수를 관리하는 좋은 방법은 특히 프로젝트별 변수의 경우 환경 변수만을 위한 별도의 파일을 만드는 것입니다. 이렇게 하면 구성을 더 쉽게 관리하고 공유할 수 있습니다.
프로젝트 디렉토리에 .env라는 파일을 만들어 보겠습니다.
cd ~/project
nano .env
다음 내용을 추가합니다.
## Project environment variables
export PROJECT_NAME="Linux Environment Lab"
export PROJECT_VERSION="1.0.0"
export DEBUG_MODE="true"
파일을 저장하고 (Ctrl+O, Enter 누름) nano 를 종료합니다 (Ctrl+X 누름).
현재 세션에 이러한 변수를 로드하려면 파일을 소스합니다.
source ~/project/.env
이제 변수가 설정되었는지 확인합니다.
echo $PROJECT_NAME
echo $PROJECT_VERSION
echo $DEBUG_MODE
.env 파일의 값을 볼 수 있습니다.
환경 변수를 로드하는 스크립트 만들기
마지막으로 파일에서 환경 변수를 로드하는 스크립트를 만들어 보겠습니다. 이는 개발 환경에서 흔히 사용되는 패턴입니다.
cd ~/project
nano load_env.sh
다음 내용을 추가합니다.
#!/bin/bash
## Script to load environment variables from a .env file
ENV_FILE=".env"
if [[ -f "$ENV_FILE" ]]; then
echo "Loading environment variables from $ENV_FILE"
## Read each line from the .env file
while IFS= read -r line || [[ -n "$line" ]]; do
## Skip comments and empty lines
if [[ $line =~ ^## ]] || [[ -z $line ]]; then
continue
fi
## Export the variable if it starts with "export "
if [[ $line == export* ]]; then
## Remove the "export " prefix and export the variable
eval "${line}"
echo "Exported: ${line#export }"
fi
done < "$ENV_FILE"
echo "Environment variables loaded successfully"
else
echo "Error: $ENV_FILE file not found"
exit 1
fi
파일을 저장하고 (Ctrl+O, Enter 누름) nano 를 종료합니다 (Ctrl+X 누름).
스크립트를 실행 가능하게 만듭니다.
chmod +x ~/project/load_env.sh
이제 이전에 설정한 변수를 설정 해제한 다음 스크립트를 실행하여 다시 로드합니다.
unset PROJECT_NAME PROJECT_VERSION DEBUG_MODE
echo "PROJECT_NAME: $PROJECT_NAME"
## Now load the variables using the script
~/project/load_env.sh
## Check if the variables are now set
echo "PROJECT_NAME: $PROJECT_NAME"
스크립트는 .env 파일을 읽고 export 키워드로 정의된 각 변수를 내보냅니다.
이 접근 방식은 프로젝트별 환경 변수를 관리하기 위해 개발 환경에서 일반적으로 사용됩니다.