Linux 환경 변수 관리

LinuxBeginner
지금 연습하기

소개

Linux 환경 변수는 시스템에서 프로세스가 실행되는 방식에 영향을 줄 수 있는 키 - 값 쌍입니다. 초보자부터 고급 관리자에 이르기까지 Linux 사용자는 이러한 변수를 관리하는 방법을 이해하는 것이 중요합니다.

이 랩에서는 기존 환경 변수를 보고, 임시 변수를 만들고, PATH 와 같은 중요한 시스템 변수를 수정하며, 로그인 세션 간에 변경 사항을 유지하는 방법을 배우게 됩니다. 이러한 기술은 Linux 환경 관리의 기초를 형성하며, Linux 경험을 사용자 정의하고 환경 관련 문제를 해결하는 데 도움이 됩니다.

이 랩을 마치면 Linux 에서 환경 변수를 효과적으로 관리하는 데 필요한 명령과 기술에 대한 실질적인 경험을 얻게 될 것입니다.

환경 변수 보기

환경 변수는 시스템 및 애플리케이션에서 사용할 수 있는 정보를 저장합니다. 이 단계에서는 Linux 시스템에서 기존 환경 변수를 보는 방법을 배우게 됩니다.

먼저, 랩 연습을 위한 전용 디렉토리를 만들어 보겠습니다.

mkdir -p ~/project/env_lab

이 디렉토리로 이동합니다.

cd ~/project/env_lab

이제 현재 설정된 모든 환경 변수를 보려면 env 명령을 사용합니다.

env

이 명령은 현재 세션의 모든 환경 변수 목록을 표시합니다. 출력은 다음과 유사합니다.

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
HOME=/home/labex
USER=labex
SHELL=/bin/zsh
...

각 줄은 변수 이름, 등호 (=), 값 순으로 표시됩니다. 이러한 변수는 환경의 다양한 측면을 정의합니다.

특정 환경 변수를 보려면 달러 기호 ($) 가 앞에 붙은 변수 이름과 함께 echo 명령을 사용할 수 있습니다. 예를 들어, 홈 디렉토리 변수의 값을 보려면 다음을 수행합니다.

echo $HOME

다음과 같은 내용이 표시됩니다.

/home/labex

마찬가지로, 현재 사용자를 보려면 다음을 수행합니다.

echo $USER

예상 출력:

labex

임시 환경 변수 설정

환경 변수는 현재 셸 세션에 대해 임시로 설정할 수 있습니다. 이는 시스템에 영구적인 변경을 하지 않고 특정 작업에 변수가 필요할 때 유용합니다.

임시 환경 변수를 설정하려면 export 명령 다음에 변수 이름과 값을 사용합니다.

export TEST_VAR="Hello, Linux"

이렇게 하면 "Hello, Linux" 값을 가진 TEST_VAR라는 변수가 생성됩니다. 변수가 올바르게 설정되었는지 확인하려면 echo를 사용합니다.

echo $TEST_VAR

다음과 같은 내용이 표시됩니다.

Hello, Linux

한 번에 여러 변수를 설정할 수도 있습니다.

export VAR1="First" VAR2="Second"

두 변수를 모두 확인합니다.

echo $VAR1
echo $VAR2

예상 출력:

First
Second

모든 환경 변수 중에서 새 변수를 보려면 다음을 실행합니다.

env | grep VAR

이렇게 하면 "VAR"를 포함하는 줄만 표시하도록 출력이 필터링됩니다. 예를 들면 다음과 같습니다.

TEST_VAR=Hello, Linux
VAR1=First
VAR2=Second

이러한 방식으로 생성된 변수는 현재 셸 세션에만 존재한다는 점을 기억하십시오. 새 터미널 창이나 탭을 열면 이러한 변수는 사용할 수 없습니다.

PATH 변수 이해 및 수정

PATH 환경 변수는 Linux 에서 가장 중요한 변수 중 하나입니다. 명령을 입력할 때 실행 파일을 어디에서 찾아야 하는지 시스템에 알려줍니다.

먼저, 현재 PATH 를 검사합니다.

echo $PATH

다음과 유사한 콜론으로 구분된 디렉토리 목록이 표시됩니다.

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

명령을 입력하면 시스템은 일치하는 실행 파일을 찾을 때까지 이러한 디렉토리를 순서대로 검색합니다.

이제 사용자 지정 스크립트를 위한 새 디렉토리를 만들고 이를 PATH 에 추가해 보겠습니다.

mkdir -p ~/project/env_lab/bin

이 디렉토리를 PATH 의 시작 부분에 추가하려면 다음을 사용합니다.

export PATH=~/project/env_lab/bin:$PATH

이렇게 하면 새 디렉토리가 기존 PATH 앞에 추가됩니다. 변경 사항을 확인합니다.

echo $PATH

이제 출력은 새 디렉토리로 시작해야 합니다.

/home/labex/project/env_lab/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

수정된 PATH 를 테스트하기 위해 간단한 스크립트를 만들어 보겠습니다.

cd ~/project/env_lab/bin

nano 편집기를 사용하여 hello라는 파일을 만듭니다.

nano hello

파일에 다음 내용을 추가합니다.

#!/bin/bash
echo "Hello from my custom script!"

Ctrl+O를 누른 다음 Enter를 눌러 파일을 저장하고 Ctrl+X로 종료합니다.

스크립트를 실행 가능하게 만듭니다.

chmod +x hello

이제 어떤 디렉토리에서든 스크립트 이름을 입력하기만 하면 스크립트를 실행할 수 있습니다.

cd ~/project/env_lab
hello

다음과 같은 내용이 표시됩니다.

Hello from my custom script!

이는 PATH 변수가 시스템이 실행 파일을 찾는 데 어떻게 도움이 되는지, 그리고 자체 스크립트 디렉토리를 포함하도록 이를 사용자 정의하는 방법을 보여줍니다.

명령어 및 스크립트에서 환경 변수 사용

환경 변수는 명령 및 스크립트 내에서 다양한 방식으로 사용할 수 있습니다. 이 단계에서는 환경 변수를 효과적으로 활용하는 방법을 배웁니다.

먼저, 자신의 이름으로 새 환경 변수를 만들어 보겠습니다.

export MY_NAME="Linux User"

이 변수는 앞에 $를 붙여 명령에서 사용할 수 있습니다.

echo "Hello, $MY_NAME"

다음과 같이 출력됩니다.

Hello, Linux User

환경 변수는 다른 명령과 함께 사용할 수도 있습니다. 예를 들어, 변수 이름을 딴 디렉토리를 만들어 보겠습니다.

mkdir -p ~/project/env_lab/$MY_NAME

디렉토리가 생성되었는지 확인합니다.

ls -la ~/project/env_lab/

출력에서 "Linux User"라는 디렉토리를 볼 수 있습니다.

이제 환경 변수를 사용하는 간단한 스크립트를 만들어 보겠습니다.

cd ~/project/env_lab
nano greet.sh

다음 내용을 추가합니다.

#!/bin/bash

## Use existing environment variables
echo "Hello, $MY_NAME"
echo "Your home directory is $HOME"

## Use a variable passed to the script
echo "The current time and date is $(date)"

## Create a local variable
local_var="This is a local variable"
echo $local_var

## Export a new variable from the script
export GREETING="Have a nice day!"
echo $GREETING

Ctrl+O, Enter, Ctrl+X로 저장하고 종료합니다.

스크립트를 실행 가능하게 만듭니다.

chmod +x greet.sh

스크립트를 실행합니다.

./greet.sh

다음과 유사한 출력을 볼 수 있습니다.

Hello, Linux User
Your home directory is /home/labex
The current time and date is Fri Aug 18 12:34:56 UTC 2023
This is a local variable
Have a nice day!

환경 변수 영구 설정 방법

지금까지 설정한 모든 환경 변수는 터미널 세션을 닫으면 손실됩니다. 이 단계에서는 세션 간에 환경 변수를 영구적으로 유지하는 방법을 배웁니다.

Linux 에서 .bashrc, .zshrc, 또는 .profile과 같은 셸 시작 파일은 영구적인 환경 변수를 설정하는 데 사용됩니다. 저희 환경은 zsh를 사용하므로 .zshrc 파일을 사용합니다.

먼저, .zshrc 파일을 엽니다.

nano ~/.zshrc

파일의 끝으로 이동하여 ( Ctrl+End 또는 화살표 키 사용) 다음 줄을 추가합니다.

## Custom environment variables
export PERSIST_VAR="This variable will persist"
export PATH=$HOME/project/env_lab/bin:$PATH

Ctrl+O, Enter, Ctrl+X로 저장하고 종료합니다.

터미널을 닫고 다시 열지 않고 이러한 변경 사항을 적용하려면 파일을 소스합니다.

source ~/.zshrc

이제 새 변수가 설정되었는지 확인합니다.

echo $PERSIST_VAR

다음과 같이 표시됩니다.

This variable will persist

이제 터미널을 닫고 다시 열더라도 이 변수는 여전히 사용할 수 있습니다.

이를 시연하기 위해 새 셸 세션을 시작하여 터미널을 닫고 다시 여는 것을 시뮬레이션해 보겠습니다.

zsh

변수가 여전히 사용 가능한지 확인합니다.

echo $PERSIST_VAR

여전히 다음을 볼 수 있습니다.

This variable will persist

이 셸을 종료하여 이전 세션으로 돌아갑니다.

exit

이러한 방식으로 환경 변수를 셸의 구성 파일에 추가하면 시스템에 로그인할 때마다 사용할 수 있습니다.

모든 사용자가 사용할 수 있어야 하는 시스템 전체 환경 변수의 경우, 관리자는 /etc/profile.d/의 파일에 추가하거나 /etc/environment를 편집할 수 있습니다.

요약

이 랩에서는 Linux 환경을 사용자 정의하고 애플리케이션의 동작을 제어하는 데 필수적인 Linux 에서 환경 변수를 관리하는 기본 사항을 배웠습니다.

다룬 주요 개념은 다음과 같습니다.

  • env 명령을 사용하여 환경 변수를 보고, echo $VARIABLE_NAME으로 특정 변수를 표시
  • export 명령을 사용하여 임시 환경 변수 설정
  • 실행 가능한 프로그램을 Linux 가 어디에서 찾는지 제어하기 위해 PATH 변수를 이해하고 수정
  • 명령 및 스크립트에서 환경 변수를 사용하여 코드를 더 유연하게 만들기
  • 셸 구성 파일에 환경 변수를 추가하여 환경 변수를 영구적으로 만들기

이러한 기술은 Linux 환경 관리의 기초를 형성하며 다양한 Linux 배포판에서 적용할 수 있습니다. 환경 변수를 이해하는 것은 초보자부터 고급 관리자 및 개발자에 이르기까지 모든 수준의 Linux 사용자에게 중요합니다.

환경 변수는 셸 경험을 사용자 정의하고, 애플리케이션 동작을 제어하며, 더 유연한 스크립트를 구축하는 데 도움이 됩니다. Linux 여정을 계속 진행하면서, 적절한 환경 관리가 소프트웨어 개발, 시스템 관리 및 문제 해결과 같은 더 복잡한 작업에 점점 더 중요해진다는 것을 알게 될 것입니다.