레벨237-1 : 쉘변수 확인 및 현재사용계정의 쉘변수와 쉘변수값 확인하는 env 개론과 활용
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 3,093 조회
- 0 추천
- 목록
본문
레벨237-1 : 쉘변수 확인 및 현재사용계정의 쉘변수와 쉘변수값 확인하는 env 개론과 활용
리눅스에서 쉘변수들을 확인할 수 있는 명령어는 3가지가 있습니다. 이번 장에서 설명하고 있는 env와 printenv, 그리고 declare입니다. 따라서 이번 장의 내용과 함께 printenv, 그리고 declare명령어편을 함께 공부하시기 바랍니다.
이 3가지를 간략하게 구분하여 말씀 드린다면 다음과 같습니다.
env는 쉘변수들을 리스트하는 것이 기본적인 목적이지만 쉘변수들에게 특정 값을 할당하거나 변경(Set each NAME to VALUE in the environment and run COMMAND.)하는 명령어입니다.
그리고 printenv는 쉘환경변수들의 부분 또는 전체를 출력하는 명령어(print all or part of environment)입니다.
마지막 declare는 쉘환경변수를 선언하는 용도로 사용됩니다. 하지만, 변수리스트를 출력하는 목적으로도 사용되기도 합니다.
위 3가지의 차이점을 구분해서 기억해 두시기 바랍니다. 이번 장에서는 env에 대해서만 설명합니다. 설명드린바와 같이 env는 "environment"의 약어로서 쉘변수를 확인하거나 쉘환경에서 명령을 수행하는 명령어입니다. 가장 흔히 사용하는 "env"용도로는 현재 사용하고 있는 계정의 쉘변수들을 출력하는 것입니다. 말씀드린바와 같이 이 명령어는 printenv와 함께 익혀두셔야 합니다.
명령어위치 : /bin/env
사용형식
env [-] [-i] [-u name]
[--ignore-environment] [--unset=name] [--help]
[--version][name=값]... [명령 [인수...]] env
다음과 같이 "env"라고 하면 현재 사용하고 있는 사용자계정의 쉘변수들을 모두 확인 할 수 있습니다. 아래의 결과 첫번째 행의 HOSTNAME이라는 쉘변수가 있으며 이 변수에 저장된 값은 file.superuser.co.kr입니다.
[root@su249 test]# env HOSTNAME=su249.com TERM=vt100 SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=192.168.0.150 2492 22 QTDIR= OLDPWD=/root QTINC=/include SSH_TTY=/dev/pts/4 USER=root LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01: 35:*.svg=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36: *.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36: CCACHE_DIR=/var/cache/ccache SSH_AUTH_SOCK=/tmp/ssh-DHqvDW2752/agent.2752 MAIL=/var/spool/mail/root PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin: /sbin:/bin:/usr/sbin:/usr/bin:/root/bin INPUTRC=/etc/inputrc PWD=/root/test CCACHE_UMASK=002 LANG=ko_KR.eucKR SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SHLVL=1 HOME=/root SDL_AUDIODRIVER=esd LOGNAME=root QTLIB=/lib CVS_RSH=ssh SSH_CONNECTION=192.168.0.150 2492 192.168.0.249 22 LESSOPEN=|/usr/bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/bin/env [root@su249 test]# |
그리고 세번째행에 보시면 우리가 흔히 확인하고 사용하는 SHELL이라는 변수명이 있으며 여기에 저장된 값이 /bin/bash이며 현재 사용자(필자)가 사용하고 있는 쉘입니다.
또한 env로 확인 할 수 있는 아래 결과들의 변수들은 echo명령어로 하나씩 확인 할 수도 있습니다. 이 예는 다음 사용예에 나와 있습니다.
env에 아무런 옵션 없이 실행하는 결과와 printenv는 동일한 결과를 출력합니다. 아래의 예는 printenv의 결과를 출력한 것입니다.
[root@su249 test]# printenv HOSTNAME=su249.com TERM=vt100 SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=192.168.0.150 2492 22 QTDIR= OLDPWD=/root QTINC=/include SSH_TTY=/dev/pts/4 USER=root LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40; 33;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36: *.mp3=00; 36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36: CCACHE_DIR=/var/cache/ccache SSH_AUTH_SOCK=/tmp/ssh-DHqvDW2752/agent.2752 MAIL=/var/spool/mail/root PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin: /sbin:/bin:/usr/sbin:/usr/bin:/root/bin INPUTRC=/etc/inputrc PWD=/root/test CCACHE_UMASK=002 LANG=ko_KR.eucKR SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SHLVL=1 HOME=/root SDL_AUDIODRIVER=esd id=bible LOGNAME=root QTLIB=/lib CVS_RSH=ssh SSH_CONNECTION=192.168.0.150 2492 192.168.0.249 22 LESSOPEN=|/usr/bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/usr/bin/printenv [root@su249 test]# |
즉, 위의 예와 같이 printenv의 결과는 앞의 예에서 확인했던 env결과와 동일함을 알 수 있습니다.
관련자료
-
이전
-
다음