Linux 에서 환경 변수가 설정되었는지 확인하는 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 환경 변수를 다루는 기본적인 기술을 배우게 됩니다. echo 명령어를 사용하여 특정 변수의 값을 표시하고, printenv 명령어를 사용하여 변수가 설정되었는지 확인하고 값을 표시하며, set 명령어를 사용하여 현재 설정된 모든 환경 변수를 나열하는 방법을 탐구할 것입니다. 이러한 기술은 Linux 셸 및 시스템 환경을 이해하고 상호 작용하는 데 필수적입니다.

echo 로 변수 표시

이 단계에서는 echo 명령어를 사용하여 변수의 값을 표시하는 방법을 배우게 됩니다. Linux 의 변수는 셸 및 기타 프로그램에서 접근하고 사용할 수 있는 정보를 저장하는 데 사용됩니다.

자주 접하게 되는 변수 중 하나는 $HOME으로, 홈 디렉토리의 경로를 저장합니다. 그 값을 표시해 보겠습니다.

터미널에 다음 명령을 입력하고 Enter 키를 누르세요:

echo $HOME

터미널에 홈 디렉토리의 경로가 출력되어야 합니다. 이 환경에서는 일반적으로 /home/labex입니다.

/home/labex

변수 이름 앞에 있는 $ 기호는 매우 중요합니다. 이는 셸에게 문자열 "$HOME"이 아닌 변수의 을 보려는 의도를 알려줍니다.

이제 존재하지 않는 변수를 표시해 보겠습니다.

다음 명령을 입력하고 Enter 키를 누르세요:

echo $MY_VARIABLE

아무런 출력도 보이지 않을 것입니다. 이는 MY_VARIABLE 변수가 설정되지 않았기 때문에 값이 비어 있기 때문입니다.

여러 변수를 한 번에 표시할 수도 있습니다:

echo $HOME $USER

이렇게 하면 $HOME 변수의 값과 $USER 변수 (사용자 이름, labex) 의 값이 차례로 출력됩니다.

/home/labex labex

변수를 표시하는 방법을 이해하는 것은 Linux 에서 기본적인 기술입니다. 변수는 스크립팅 및 시스템 구성에 광범위하게 사용되기 때문입니다.

다음 단계로 진행하려면 계속하기를 클릭하세요.

printenv 로 변수 확인

이전 단계에서는 echo를 사용하여 변수의 값을 표시했습니다. 환경 변수를 다루는 데 유용한 또 다른 명령어는 printenv입니다.

printenv는 환경 변수의 값을 출력하도록 특별히 설계되었습니다. 환경 변수는 시스템에서 실행되는 프로세스에서 사용할 수 있는 특수한 유형의 변수입니다.

printenv를 사용하여 $USER 변수의 값을 표시해 보겠습니다.

터미널에 다음 명령을 입력하고 Enter 키를 누르세요:

printenv USER

터미널에 사용자 이름인 labex가 출력되어야 합니다.

labex

printenv를 사용할 때는 변수 이름 앞에 $ 기호를 사용하지 않는다는 점에 유의하세요. printenv는 변수 이름 자체를 인수로 받습니다.

printenv를 사용하여 존재하지 않는 변수를 출력하려고 하면 어떻게 될까요?

다음 명령을 입력하고 Enter 키를 누르세요:

printenv MY_VARIABLE

echo와 마찬가지로, MY_VARIABLE 변수가 환경 변수로 설정되지 않았기 때문에 아무런 출력도 보이지 않을 것입니다.

echo는 모든 변수를 표시할 수 있지만, printenv는 환경 변수를 위해 특별히 사용됩니다. 많은 경우에 둘 다 사용할 수 있지만, 환경 변수를 특별히 다루고 싶을 때는 printenv가 선호됩니다.

다음으로 이동하려면 계속하기를 클릭하세요.

set 명령어로 모든 변수 목록 보기

이전 단계에서는 echoprintenv를 사용하여 개별 변수를 표시하는 방법을 배웠습니다. 하지만 현재 셸 환경에 설정된 모든 변수를 보고 싶다면 어떻게 해야 할까요?

set 명령은 인수가 없이 사용될 경우, 환경 변수와 셸 관련 변수를 포함하여 모든 셸 변수를 나열합니다.

터미널에 다음 명령을 입력하고 Enter 키를 누르세요:

set

변수와 해당 값의 긴 목록을 보게 될 것입니다. 이 출력에는 환경 변수 (HOME, USER, PATH 등) 뿐만 아니라 현재 셸 세션에 특정한 변수도 포함됩니다.

...
HOME=/home/labex
HOSTNAME=...
HOSTTYPE=x86_64
...
LANG=C.UTF-8
...
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
...
SHELL=/usr/bin/zsh
...
USER=labex
...

출력은 상당히 길 수 있습니다. 환경에 기본적으로 설정된 다양한 변수를 보려면 스크롤하여 확인하세요.

set의 출력과 printenv의 출력 (인수 없이 printenv를 실행하는 경우) 을 비교하면 set이 더 많은 변수를 포함한다는 것을 알 수 있습니다. 이는 set이 모든 셸 변수를 표시하는 반면, printenv는 환경 변수만 표시하기 때문입니다.

셸 변수와 환경 변수의 차이점을 이해하는 것은 Linux 를 더 깊이 파고들 때 중요합니다. 환경 변수는 자식 프로세스에 의해 상속되는 반면, 셸 변수는 일반적으로 현재 셸 세션에 로컬입니다.

이제 Linux 에서 변수와 상호 작용하는 세 가지 방법 (echo(개별 변수 표시), printenv(환경 변수 표시), set(모든 셸 변수 나열)) 을 배웠습니다.

이 랩을 완료하려면 계속하기를 클릭하세요.

요약

이 랩에서는 Linux 에서 환경 변수와 상호 작용하는 기본적인 방법을 배웠습니다. 먼저 $ 접두사를 사용하여 echo 명령을 사용하여 특정 변수의 값을 표시하는 방법을 탐구하고, 설정되지 않은 변수는 출력을 생성하지 않는다는 것을 이해했습니다. 또한 echo를 사용하여 여러 변수를 동시에 표시하는 연습을 했습니다. 그 후, 환경 변수의 값을 확인하고 표시하는 데 전용 도구인 printenv 명령을 소개받았습니다.