
Linux에서 환경 변수를 설정하고 나열하는 방법
2022-06-01 last update
8 minutes reading terminalLinux와 Unix 기반 시스템에서 환경 변수는 동적 이름 값으로 시스템에 저장되며 셸이나 하위 셸에서 시작하는 프로그램에서 사용됩니다.쉽게 말하면 환경 변수는 이름과 관련 값이 있는 변수이다.환경 변수는 시스템의 작업 방식과 시스템의 응용 프로그램 동작을 사용자 정의할 수 있습니다.예를 들어 환경 변수는 기본값에 대한 정보를 저장할 수 있다text editor
또는 브라우저, 실행 가능한 파일의 경로 또는 시스템 로케일 및 키보드 레이아웃 설정이 안내서에서 환경과 셸 변수를 읽고 설정하는 방법을 설명합니다. 변수 이름은 대소문자를 구분한다.관례에 따르면 환경 변수의 이름은 대문자여야 한다. 변수에 여러 값을 지정할 때는 콜론 기호 주위에 공백이 없는 것과 같습니다. 변수는 두 가지 종류로 나눌 수 있는데 그것이 바로 환경 변수와 케이스 변수이다.환경 변수는 시스템 범위 내에서 사용할 수 있는 변수로 모든 파생된 하위 프로세스와 셸에 의해 계승됩니다.셸 변수는 현재 셸 인스턴스에만 적용되는 변수입니다.모든 셸 (예:
명령
셸 변수를 인쇄합니다.예를 들어, 사용자마다 셸에 지정된 프로필입니다.예를 들어, Bash를 사용하는 경우 현재 셸 세션에 새 환경 변수를 로드하려면
명령:
또는 브라우저, 실행 가능한 파일의 경로 또는 시스템 로케일 및 키보드 레이아웃 설정이 안내서에서 환경과 셸 변수를 읽고 설정하는 방법을 설명합니다.
환경 변수 및 케이스 변수
변수의 형식은 다음과 같다.KEY=value
KEY="Some other value"
KEY=value1:value2
:
으로 구분해야 합니다.=
과 zsh
은 자신의 내부 셸 변수 집합을 가지고 있다.Linux에 환경 변수를 나열하고 설정할 수 있는 명령이 몇 개 있습니다: bash
- 이 명령은 현재 프로그램을 수정하지 않고 사용자 정의 환경에서 다른 프로그램을 실행할 수 있도록 합니다.매개변수를 사용하지 않으면 현재 환경 변수의 목록이 인쇄됩니다.env
- 이 명령은 모든 또는 지정된 환경 변수를 인쇄합니다.printenv
- 이 명령은 셸 변수를 설정하거나 설정을 취소합니다.매개 변수를 사용하지 않으면, 환경과 셸 변수, 셸 함수를 포함한 모든 변수의 목록을 출력합니다.set
- 이 명령은 셸과 환경 변수를 삭제합니다.unset
- 이 명령은 환경 변수를 설정합니다.환경 변수 나열
환경 변수에서 가장 자주 사용하는 명령은export
입니다.변수 이름이 매개변수로 명령에 전달되면 해당 변수의 값만 표시됩니다.매개변수가 지정되지 않은 경우 printenv
모든 환경 변수의 목록을 줄마다 인쇄합니다.예:실행할 printenv
환경 변수의 값을 표시하려면: printenv HOME
출력은 현재 로그인한 사용자의 경로를 인쇄합니다. /home/
명령에 여러 개의 매개 변수를 전달할 수도 있습니다. printenv LANG PWD
en_US
/home/
명령을 실행할 때 매개 변수가 없으면 모든 환경 변수의 목록을 표시합니다. printenv
출력은다음은 LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;...
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=en_US
S_COLORS=auto
XDG_SESSION_ID=5
USER=
PWD=/home/
HOME=/home/
SSH_CLIENT=192.168.121.1 34422 22
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
SSH_TTY=/dev/pts/0
MAIL=/var/mail/
TERM=xterm-256color
SHELL=/bin/bash
SHLVL=1
LANGUAGE=en_US:
LOGNAME=
XDG_RUNTIME_DIR=/run/user/1000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LESSOPEN=| /usr/bin/lesspipe %s
_=/usr/bin/printenv
- 현재 로그인한 사용자입니다.HOME
- 현재 사용자의 홈 디렉토리입니다.printenv
- 사용할 기본 파일 편집기입니다.터미널에서 printenv
를 입력할 때 사용할 편집기입니다.env
- 현재 사용자 셸의 경로(예: bash 또는 zsh).USER
- 현재 사용자의 이름입니다.HOME
- 명령을 실행할 때 검색할 디렉토리 목록입니다.명령을 실행하면 이 순서대로 디렉토리가 검색되고 첫 번째로 찾은 실행 가능한 파일이 사용됩니다.EDITOR
- 현재 언어 환경 설정.edit
- 현재 터미널 에뮬레이션.SHELL
- 현재 사용자의 메일을 저장할 수 있는 위치입니다.LOGNAME
및 PATH
명령은 환경 변수만 인쇄합니다.환경, 셸, 변수 등 모든 변수 목록을 가져오려면 shell functionsLANG
명령을 사용할 수 있습니다: set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
이 명령은 모든 변수의 큰 목록을 표시하기 때문에 파이프를 통해 출력을 TERM
로 전송할 수 있습니다명령
set | less
사용 가능echo command셸 변수를 인쇄합니다.예를 들어,
MAIL
변수의 값을 인쇄하려면 echo $BASH_VERSION
4.4.19(1)-release
환경 변수 설정
셸과 환경 변수 간의 차이를 더 잘 설명하기 위해 셸 변수를 설정한 다음 환경 변수로 이동합니다.(adsbygoogle=window.adsbygoogle | |[]).푸시({});printenv
및 값env
이라는 새 셸 변수를 만들려면 MY_VAR='Linuxize'
또는 grep set 명령의 출력을 필터링하여 변수가 설정되었는지 확인하십시오.set
: echo $MY_VAR
Linuxize
명령을 사용하여 이 변수가 환경 변수인지 확인합니다. printenv MY_VAR
출력이 비어 있습니다. 이것은 이 변수가 환경 변수가 아니라는 것을 알려 줍니다.새 셸에서 변수를 인쇄할 수도 있습니다. 빈 출력을 얻을 수 있습니다.bash -c 'echo $MY_VAR'
less
명령은 환경 변수를 설정하는 데 사용됩니다.환경 변수를 만들려면 셸 변수를 환경 변수로 내보내기만 하면 됩니다: export MY_VAR
printenv MY_VAR
Linuxize
를 실행하여 이를 확인할 수 있습니다. 이번에 새 셸에서 변수를 인쇄하려고 하면 터미널에서 변수 이름을 인쇄합니다. bash -c 'echo $MY_VAR'
Linuxize
방식은 현재 세션에서만 사용할 수 있습니다.새 셸을 열거나 로그아웃하면 모든 변수가 손실됩니다.지속성 환경 변수
환경 변수를 오래 유지하려면bash 프로필에서 이 변수를 정의해야 합니다.대부분의 Linux 릴리스에서 새 세션을 시작할 때 환경 변수는 다음 파일에서 읽습니다.BASH_VERSION
- 이 파일을 사용하여 시스템 범위의 환경 변수를 설정합니다.이 파일의 변수는 다음 형식으로 설정됩니다. export MY_NEW_VAR="My New Var"
MY_VAR
- bash 로그인 셸을 입력할 때마다 이 파일에 설정된 변수를 불러옵니다.이 파일에서 환경 변수를 설명할 때 Linuxize
명령을 사용해야 합니다: FOO=bar
VAR_TEST="Test Var"
echo $MY_VAR
에서 변수를 선언할 수 있습니다. export JAVA_HOME="/path/to/java/home"
export PATH=$PATH:$JAVA_HOME/bin
set | grep MY_VAR
명령:
export PATH="$HOME/bin:$PATH"