강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

레벨264-3 : 생성한 쉘변수의 export속성제거하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

레벨264-3 : 생성한 쉘변수의 export속성제거하기

 

아래와 같이 아무런 옵션 없이 export라고만 하면 현재 정의된 변수와 값들이 출력됩니다.  -p옵션을 사용하여 "export -p"라고 하여도 마찬가지입니다.

 

[root@file root]# export

declare -x BASH_ENV="/root/.bashrc"

declare -x G_BROKEN_FILENAMES="1"

declare -x HISTSIZE="1000"

declare -x HOME="/root"

declare -x HOSTNAME="file.superuser.co.kr"

declare -x INPUTRC="/etc/inputrc"

declare -x LANG="en_US.UTF-8"

declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"

declare -x LOGNAME="root"

declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;

01:or=01;.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"

declare -x MAIL="/var/spool/mail/root"

declare -x OLDPWD

declare -x PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:

/usr/X11R6/bin:/root/bin"

declare -x PWD="/root"

declare -x SHELL="/bin/bash"

declare -x SHLVL="1"

declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"

declare -x TERM="vt100"

declare -x USER="root"

declare -x USERNAME="root"

[root@file root]#

 

그리고 아래와 같이 NAME이라는 변수에 "ParkSungSoo"값을 넣어 export시켰습니다.  그리고 다시 export라는 명령어를 실행하여 현재 정의된 변수들을 확인 하였습니다.  아래 결과에서는 앞의 결과에는 없었던 NAME이라는 변수와 값이 출력됨을 확인할 있습니다.

 

[root@file root]# export NAME=ParkSungSoo

[root@file root]#

[root@file root]# export

declare -x BASH_ENV="/root/.bashrc"

declare -x G_BROKEN_FILENAMES="1"

declare -x HISTSIZE="1000"

declare -x HOME="/root"

declare -x HOSTNAME="file.superuser.co.kr"

declare -x INPUTRC="/etc/inputrc"

declare -x LANG="en_US.UTF-8"

declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"

declare -x LOGNAME="root"

declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;

35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"

declare -x MAIL="/var/spool/mail/root"

declare -x NAME="ParkSungSoo"

declare -x OLDPWD

declare -x PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:

/usr/X11R6/bin:/root/bin"

declare -x PWD="/root"

declare -x SHELL="/bin/bash"

declare -x SHLVL="1"

declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"

declare -x TERM="vt100"

declare -x USER="root"

declare -x USERNAME="root"

[root@file root]#

 

그리고 정의된 NAME이라는 변수를 다음과 같이 제거하였습니다.  export 이용하여 변수를 제거하려면 다음과 같은 형식을 사용합니다.

 

사용형식 : export -n 변수명

 

, export 할당하였던 변수를 제거하려면 -n옵션을 사용합니다.

 

그리고 아래는 NAME이라는 변수를 제거한 후에 다시 export명령어를 실행하여 현재 정의된 변수들을 확인한 것입니다.

 

[root@file root]# export -n NAME

[root@file root]#

[root@file root]# export

declare -x BASH_ENV="/root/.bashrc"

declare -x G_BROKEN_FILENAMES="1"

declare -x HISTSIZE="1000"

declare -x HOME="/root"

declare -x HOSTNAME="file.superuser.co.kr"

declare -x INPUTRC="/etc/inputrc"

declare -x LANG="en_US.UTF-8"

declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"

declare -x LOGNAME="root"

declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;
;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"

declare -x MAIL="/var/spool/mail/root"

declare -x OLDPWD

declare -x PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:

/usr/X11R6/bin:/root/bin"

declare -x PWD="/root"

declare -x SHELL="/bin/bash"

declare -x SHLVL="1"

declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"

declare -x TERM="vt100"

declare -x USER="root"

declare -x USERNAME="root"

[root@file root]#

 

결과 NAME이라는 변수가 export해제된 것을 확인할 있습니다.  이렇게 정의된 변수를 해제하려면 -n옵션을 사용하시면 됩니다. 거듭 당부 드리는 말씀이지만 export 책의 declare 함께 공부하시기 바랍니다.

 

 

 

레벨264-4 : export명령어로 사용자의 PATH추가하기

 

이번에는 실무적인 예를 들어보겠습니다. , 시스템을 사용하는 도중에 PATH 추가해야 하는 경우가 발생할 있습니다. , 기존 PATH 새로운 PATH 추가하는 경우가 발생할 있겠지요. 이런 경우에도 export 이용하여 간편하게 PATH 추가할 있습니다. 참고로 여기서 말하는 PATH 명령어PATH 의미하는 것으로 사용자가 실행한 (외부)명령어를 실행시키기 위하여 검색하게 디렉토리의 경로를 의미합니다. 명령어PATH 쉘변수인 PATH라는 이름의 쉘변수에 저장되어 있습니다. 따라서 자기자신의 명령어PATH 확인하려면 PATH라는 쉘변수의 값을 echo 출력해 보면 됩니다.

 

다음은 현재 사용자의 명령어PATH 확인한 것입니다.

 

[bible@su250 ~]$ echo $PATH

/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/bible/bin

[bible@su250 ~]$

 

여기에 /sbin이라는 새로운 PATH 추가하고자 합니다. 다음과 같이 하십시오.

 

[bible@su250 ~]$ export PATH=$PATH:/sbin

[bible@su250 ~]$

[bible@su250 ~]$ echo $PATH

/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/bible/bin:/sbin

[bible@su250 ~]$

 

이제부터는 사용자는 현재 디렉토리위치가 어디든 /sbin 있는 명령어들을 경로지정 없이 바로 실행할 있습니다. 당연히 개별 명령어들의 실행권한은 있어야만 합니다. 개별명령어들의 실행권한문제는 여기서 설명하고 있는 PATH와는 전혀 다른 개념입니다.

 

참고로 이렇게 export명령어로 추가된 PATH경로는 다음에 재로그인하면 없어져버립니다. 따라서 재로그인 후에도 지속적으로 PATH추가된 상태를 유지하려면 개별사용자의 .bash_profile이라는 파일에 추가PATH 설정하시기 바랍니다. .bash_profile이라는 파일에 대한 자세한 설명은 책의 .bash_profile편을 참고하십시오.

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  75 명