기계적 인조 인간

리눅스에서 환경 변수를 설정하고 나열하는 방법

ì•„ì ´ìŠ¤í ¬ë¦¼ ì¹¼ë ¼í ¼ ìŠ¬ë ¼ì „ 액체괴물 만들기!! í 르는 ì  í†  ì•¡ê´´ ìŠ¬ë ¼ì „ 놀ì

ì•„ì ´ìŠ¤í ¬ë¦¼ ì¹¼ë ¼í ¼ ìŠ¬ë ¼ì „ 액체괴물 만들기!! í 르는 ì  í†  ì•¡ê´´ ìŠ¬ë ¼ì „ 놀ì

차례:

Anonim

Linux 및 Unix 기반 시스템에서 환경 변수는 셸 또는 하위 셸에서 시작된 응용 프로그램에서 사용하는 시스템 내에 저장된 동적 명명 된 값 집합입니다. 간단히 말해서 환경 변수는 이름과 관련 값을 가진 변수입니다.

환경 변수를 사용하면 시스템 작동 방식 및 시스템에서 응용 프로그램의 동작을 사용자 정의 할 수 있습니다. 예를 들어, 환경 변수는 기본 텍스트 편집기 또는 브라우저, 실행 파일 경로 또는 시스템 로케일 및 키보드 레이아웃 설정에 대한 정보를 저장할 수 있습니다.

이 안내서에서는 환경 및 쉘 변수를 읽고 설정하는 방법에 대해 설명합니다.

환경 변수 및 쉘 변수

변수의 형식은 다음과 같습니다.

KEY=value KEY="Some other value" KEY=value1:value2

  • 변수 이름은 대소 문자를 구분합니다. 일반적으로 환경 변수는 대문자로 이름을 지정해야합니다. 변수에 여러 값을 할당 할 때는 변수를 콜론 (:)으로 구분해야합니다.

변수는 환경 변수와 쉘 변수의 두 가지 주요 범주로 분류 할 수 있습니다.

환경 변수 는 시스템 전체에서 사용할 수 있으며 생성 된 모든 자식 프로세스와 셸에서 상속되는 변수입니다.

쉘 변수 는 현재 쉘 인스턴스에만 적용되는 변수입니다. zsh bash 와 같은 각 쉘에는 자체 내부 쉘 변수 세트가 있습니다.

Linux에서 환경 변수를 나열하고 설정할 수있는 몇 가지 명령이 있습니다.

  • env –이 명령을 사용하면 현재 프로그램을 수정하지 않고 사용자 정의 환경에서 다른 프로그램을 실행할 수 있습니다. 인수없이 사용하면 현재 환경 변수 목록이 인쇄됩니다. printenv –이 명령은 모든 또는 지정된 환경 변수를 인쇄합니다. set – 명령은 쉘 변수를 설정 또는 설정 해제합니다. 인수없이 사용하면 환경 및 쉘 변수 및 쉘 함수를 포함한 모든 변수 목록이 인쇄됩니다. unset – 명령은 쉘 및 환경 변수를 삭제합니다. export – 명령은 환경 변수를 설정합니다.

환경 변수 나열

환경 변수를 표시하기 위해 가장 많이 사용되는 명령은 printenv 입니다. 변수 이름이 명령의 인수로 전달되면 해당 변수의 값만 표시됩니다. 인수를 지정하지 않으면 printenv 는 모든 환경 변수 목록을 한 줄에 하나씩 변수로 인쇄합니다.

예를 들어, HOME 환경 변수의 값을 표시하려면 다음을 실행하십시오.

printenv HOME

출력은 현재 로그인 한 사용자의 경로를 인쇄합니다.

/home/linuxize

printenv 명령에 둘 이상의 인수를 전달할 수도 있습니다.

printenv LANG PWD

en_US /home/linuxize

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=linuxize PWD=/home/linuxize HOME=/home/linuxize 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/linuxize TERM=xterm-256color SHELL=/bin/bash SHLVL=1 LANGUAGE=en_US: LOGNAME=linuxize 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

다음은 가장 일반적인 환경 변수 중 일부입니다.

  • USER 현재 로그인 한 사용자입니다. HOME 현재 사용자의 홈 디렉토리 EDITOR 사용될 기본 파일 편집기. 터미널에서 edit 을 입력 edit 때 사용되는 편집기입니다. SHELL 현재 사용자 쉘의 경로 (예: bash 또는 zsh). LOGNAME 현재 사용자의 이름입니다. PATH 명령을 실행할 때 검색 할 디렉토리 목록입니다. 명령을 실행하면 시스템이 해당 디렉토리를이 순서대로 검색하고 처음 찾은 실행 파일을 사용합니다. LANG 현재 로케일 설정 TERM 현재 터미널 에뮬레이션 MAIL 현재 사용자의 메일이 저장되는 위치입니다.

printenv env 명령은 환경 변수 만 인쇄합니다. 환경, 쉘 및 변수 및 쉘 함수를 포함한 모든 변수의 목록을 얻으려면 set 명령을 사용할 수 있습니다.

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=()

이 명령은 모든 변수의 큰 목록을 표시하므로 출력을 less 명령으로 파이프하고 싶을 것입니다.

set | less

echo 명령을 사용하여 쉘 변수를 인쇄 할 수도 있습니다. 예를 들어, BASH_VERSION 변수의 값을 인쇄하려면 다음을 실행하십시오.

echo $BASH_VERSION

4.4.19(1)-release

환경 변수 설정

쉘 변수와 환경 변수의 차이점을 더 잘 설명하기 위해 쉘 변수 설정부터 시작하여 환경 변수로 넘어갑니다.

이름이 MY_VAR 이고 값이 Linuxize 새 쉘 변수를 작성하려면 Linuxize 을 입력하십시오.

MY_VAR='Linuxize'

grep set | grep MY_VAR set 명령의 출력을 필터링하는 echo $MY_VAR 을 사용하여 변수가 설정되었는지 확인할 수 있습니다. set | grep MY_VAR :

echo $MY_VAR

Linuxize

printenv 명령을 사용하여이 변수가 환경 변수인지 확인하십시오.

printenv MY_VAR

변수가 환경 변수가 아님을 알려주는 출력이 비어 있습니다.

서브 쉘에서 변수를 인쇄하려고하면 빈 출력이 표시됩니다.

bash -c 'echo $MY_VAR'

export 명령은 환경 변수를 설정하는 데 사용됩니다.

환경 변수를 만들려면 간단히 쉘 변수를 환경 변수로 내보내십시오.

export MY_VAR

다음을 실행하여이를 확인할 수 있습니다.

printenv MY_VAR

Linuxize

bash -c 'echo $MY_VAR'

Linuxize

한 줄로 환경 변수를 설정할 수도 있습니다.

export MY_NEW_VAR="My New Var"

이러한 방식으로 작성된 환경 변수는 현재 세션에서만 사용 가능합니다. 새 쉘을 열거 나 로그 아웃하면 모든 변수가 손실됩니다.

지속적인 환경 변수

환경 변수를 지속적으로 만들려면 bash 구성 파일에서 해당 변수를 정의해야합니다. 새 세션을 시작할 때 대부분의 Linux 배포에서 환경 변수는 다음 파일에서 읽습니다.

  • /etc/environment 이 파일을 사용하여 시스템 전체 환경 변수를 설정하십시오. 이 파일의 변수는 다음 형식으로 설정됩니다.

    FOO=bar VAR_TEST="Test Var"

    /etc/profile 이 파일에 설정된 변수는 bash 로그인 쉘이 입력 될 때마다로드됩니다. 이 파일에서 환경 변수를 선언 할 때 export 명령을 사용해야합니다.

    export JAVA_HOME="/path/to/java/home" export PATH=$PATH:$JAVA_HOME/bin

    사용자 별 셸 특정 구성 파일 예를 들어 Bash를 사용하는 경우 ~/.bashrc 변수를 선언 할 수 있습니다.

    export PATH="$HOME/bin:$PATH"

새 환경 변수를 현재 쉘 세션으로로드하려면 source 명령을 사용하십시오.

source ~/.bashrc

결론

이 안내서에서는 환경 및 쉘 변수를 설정하고 나열하는 방법을 보여주었습니다.

궁금한 점이 있으면 언제든지 의견을 남겨주십시오.

단말기