환경 변수 이해하기

ShellBeginner
지금 연습하기

소개

새 사무실로 이사했다고 생각해 보겠습니다. 책상에는 정해진 높이가 있고, 명패에는 이름이 표시되어 있습니다. Linux 의 **환경 변수 (Environment Variables)**도 이와 같은 설정입니다. 환경 변수는 현재 세션에 대한 정보를 저장합니다.

실행하는 모든 프로그램은 이 변수를 확인하여 동작 방식을 결정할 수 있습니다.

환경 변수는 셸 세션을 개인에게 맞게 작동하게 만드는 보이지 않는 메커니즘 중 하나입니다. 프로그램은 셸이 전달하는 변수를 읽어 사용자가 누구인지, 홈 디렉터리가 어디인지, 어떤 언어를 사용할지, 도구를 어떻게 찾을지 알아냅니다.

이 실습에서는 다음 방법을 배웁니다.

  • 변수의 값을 출력합니다.
  • 현재 사용하는 셸 프로그램을 확인합니다.
  • 활성화된 모든 설정을 나열합니다.

사용자 ($USER) 출력

변수는 이름표가 붙은 상자와 같습니다. 상자에는 이름 (USER) 과 값 (labex) 이 있습니다.

값을 확인하려면 달러 기호 $와 함께 echo를 사용합니다. $는 상자를 열어 주는 열쇠입니다.

정확히 말하면, 셸은 명령을 실행하기 전에 $USER를 보고 저장된 값으로 바꿉니다. 이러한 치환 기능 때문에 셸 작업에서 변수가 유용합니다.

현재 사용자를 확인하려면 다음을 입력합니다.

echo $USER

출력:

labex

텍스트와 변수를 함께 사용할 수도 있습니다.

echo "Hello, $USER"

출력:

Hello, labex

이렇게 하면 명령을 유연하게 사용할 수 있습니다. Hello, $USER는 어떤 사용자에게도 적용됩니다.

셸 ($SHELL) 출력

**셸 (Shell)**은 사용자가 명령을 입력하는 프로그램입니다. 셸은 입력한 명령을 해석합니다.

셸마다 사용하는 "방언"이 조금씩 다릅니다 (Bash, Zsh 등).

따라서 환경 정보가 중요합니다. 셸은 단순한 빈 프롬프트가 아니라 자체 설정, 문법 습관, 시작 동작을 가진 프로그램입니다.

현재 사용하는 셸을 확인합니다.

echo $SHELL

출력:

/usr/bin/zsh

현재 Zsh 를 사용하고 있습니다. 다른 시스템에서는 /bin/bash가 표시될 수 있습니다.

모든 변수 나열 (env)

환경의 "전체 모습"을 확인하려면 env를 사용합니다.

env는 현재 세션에 설정된 모든 환경 변수를 나열합니다.

셸 세션에는 입력한 명령뿐 아니라 프로그램이 자동으로 상속하는 배경 정보도 포함되어 있으므로 이 명령이 유용합니다.

env

다음과 같이 많은 텍스트가 표시됩니다.

HOSTNAME=labex-instance
PWD=/home/labex/project
HOME=/home/labex
LANG=en_US.UTF-8
...

다음과 같은 유용한 변수를 확인할 수 있습니다.

  • PWD: 현재 디렉터리입니다.
  • HOME: 홈 디렉터리입니다.
  • LANG: 언어 설정입니다.

요약

이 실습에서는 Linux 환경을 이해하기 위한 첫 단계를 진행했습니다. 다음 내용을 배웠습니다.

  • 변수는 컨테이너입니다: 사용자 이름이나 기본 설정과 같은 정보를 저장합니다.
  • $ 키: 달러 기호 (예: $USER) 를 사용해 변수 안에 저장된 값을 읽습니다.
  • 셸: 사용하는 인터페이스 (/bin/zsh 또는 /bin/bash) 는 $SHELL 변수에 정의되어 있습니다.
  • 환경: env 명령으로 시스템 설정의 전체 목록을 확인할 수 있습니다.

이 개념들은 Linux 설정의 기초입니다. 이후 실습에서는 직접 변수를 만들고 시스템의 동작 방식을 변경하는 방법을 배웁니다.