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

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

2022-06-01 last update

8 minutes reading terminal
Linux와 Unix 기반 시스템에서 환경 변수는 동적 이름 값으로 시스템에 저장되며 셸이나 하위 셸에서 시작하는 프로그램에서 사용됩니다.쉽게 말하면 환경 변수는 이름과 관련 값이 있는 변수이다.환경 변수는 시스템의 작업 방식과 시스템의 응용 프로그램 동작을 사용자 정의할 수 있습니다.예를 들어 환경 변수는 기본값에 대한 정보를 저장할 수 있다text editor
또는 브라우저, 실행 가능한 파일의 경로 또는 시스템 로케일 및 키보드 레이아웃 설정이 안내서에서 환경과 셸 변수를 읽고 설정하는 방법을 설명합니다.

환경 변수 및 케이스 변수

변수의 형식은 다음과 같다.
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 - 현재 사용자의 메일을 저장할 수 있는 위치입니다.
  • LOGNAMEPATH 명령은 환경 변수만 인쇄합니다.환경, 셸, 변수 등 모든 변수 목록을 가져오려면 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=barVAR_TEST="Test Var"
  • 사용자마다 셸에 지정된 프로필입니다.예를 들어, Bash를 사용하는 경우 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"

    결론

    이 안내서에서 환경과 셸 변수를 설정하고 열거하는 방법을 보여 줍니다.질문이 있으시면 언제든지 논평을 주십시오.