개발/Bash 쉘스크립트
[Bash] 리눅스 쉘 스크립트: 환경변수(PATH/HOME/USER/SHELL/LANG), 사용자 변수
일요일좋아하는사람
2025. 5. 13. 18:43
728x90
반응형
리눅스나 유닉스를 사용할 때 자주 접하게 되는 것이 바로 Bash 쉘입니다. Bash는 강력한 기능을 갖춘 셸로, 다양한 환경 변수와 사용자 정의 변수를 통해 작업의 효율성을 극대화할 수 있습니다. 이 글에서는 Bash의 기본 환경 변수와 사용자 정의 변수에 대해 자세히 알아보고, 각 변수의 역할과 사용법, 그리고 실제 예제를 통해 어떻게 활용되는지를 소개합니다.
Bash 환경 변수와 사용자 변수는 시스템 설정과 사용자 환경을 구성하는 데 중요한 역할을 합니다. 이 변수들을 잘 활용하면 반복 작업을 줄이고, 스크립트 작성이 더 쉬워지며, 시스템 관리도 간편해집니다. 다음은 Bash에서 자주 사용하는 변수들과 그 사용법에 대한 설명입니다.
환경 변수 (Environment Variables)
PATH
- 역할: 시스템이 명령어를 검색할 디렉터리 목록을 지정합니다.
- 사용법: 새로운 경로를 추가하거나 확인할 때 사용합니다.
- 예제:
- echo $PATH export PATH=$PATH:/usr/local/bin
- 결과: /usr/local/bin 디렉터리가 명령어 검색 경로에 추가됩니다.
HOME
- 역할: 현재 사용자의 홈 디렉터리를 나타냅니다.
- 사용법: 파일 경로 설정이나 디렉터리 이동에 자주 사용됩니다.
- 예제:
- echo $HOME cd $HOME
- 결과: 사용자의 홈 디렉터리로 이동합니다.
USER
- 역할: 현재 로그인한 사용자 이름을 나타냅니다.
- 사용법: 사용자 정보를 확인하거나 조건문에서 사용됩니다.
- 예제:
- echo $USER
- 결과: 현재 로그인한 사용자의 이름이 출력됩니다.
SHELL
- 역할: 현재 사용 중인 셸 프로그램의 경로를 표시합니다.
- 사용법: 어떤 셸을 사용하는지 확인할 때 사용됩니다.
- 예제:
- echo $SHELL
- 결과: 예를 들어 /bin/bash 와 같은 경로가 출력됩니다.
LANG
- 역할: 시스템의 언어 및 지역 설정을 나타냅니다.
- 사용법: 프로그램의 출력 언어나 형식을 지정할 때 사용됩니다.
- 예제:
- echo $LANG export LANG=ko_KR.UTF-8
- 결과: 시스템 출력 언어가 한글로 설정됩니다.
사용자 정의 변수 (User-defined Variables)
변수 선언 및 사용
- 역할: 사용자가 원하는 데이터를 임시로 저장하고 활용할 수 있습니다.
- 사용법:
- myvar="Hello" echo $myvar
- 결과: Hello가 출력됩니다.
변수에 명령어 결과 저장
- 역할: 명령어의 출력을 변수에 저장해 사용할 수 있습니다.
- 사용법:
- now=$(date) echo $now
- 결과: 현재 날짜와 시간이 출력됩니다.
readonly
- 역할: 변수 값을 변경할 수 없도록 고정합니다.
- 사용법:
- readonly pi=3.14 pi=3.14159 # 오류 발생
- 결과: pi 값을 변경하려 하면 오류가 발생합니다.
unset
- 역할: 변수를 삭제하여 메모리에서 제거합니다.
- 사용법:
- unset myvar echo $myvar # 출력 없음
- 결과: myvar 변수가 삭제되어 더 이상 사용할 수 없습니다.
export
- 역할: 사용자 정의 변수를 하위 프로세스에도 사용할 수 있도록 설정합니다.
- 사용법:
- export myvar="Hello" bash -c 'echo $myvar'
- 결과: 하위 셸에서도 Hello가 출력됩니다.
실제 사용 예제
#!/bin/bash
# 환경 변수 확인
echo "Current PATH: $PATH"
echo "Home Directory: $HOME"
echo "Current User: $USER"
# 사용자 정의 변수 설정
message="Bash 변수 연습"
echo $message
# export와 하위 셸
export message
echo "In subshell:"
bash -c 'echo $message'
# unset으로 변수 제거
unset message
echo $message # 출력 없음
이와 같이 Bash의 환경 변수와 사용자 변수를 이해하고 활용하면, 시스템 운영뿐만 아니라 스크립트 작성 시에도 훨씬 더 효율적인 작업이 가능해집니다. 변수들을 적절히 조합하여 자신만의 환경을 구성해보세요.
728x90
반응형