리눅스 환경변수 삭제 - linugseu hwangyeongbyeonsu sagje

현재 터미널에만 적용하는 방법 ( 1회성 )
$ export 이름=값

name=value 해주실 때 =의 좌우에 공백이 있으면 안됩니다. 빈칸주지 마세요!

- - - -

$ env | grep 이름

env는 적용된 환경 변수 목록을 다 보여줍니다.

이때, grep 명령어를 이용하여 지정한 변수가 제대로 잘 등록됬는지 확인 할 수 있습니다.

혹은 $ echo $이름을 이용하여 확인할 수도 있습니다.

- - - -

환경변수 적용하기 ( 해지 하지 않는 한 영구성 )

1. 파일수정 bash.bashrc / bashrc

$ vim /etc/bash.bashrc

파일을 수정해 주시면 모든 사용자에게 환경변수를 영구적으로 등록하는 것과 같습니다.

파일을 열어주시고, 맨 마지막 혹은 맨 위에 사용자가 원하는 환경변수를 넣어주세요.

그런데 나는 모든 사용자말고 이 특정 사용자에게만 환경변수를 영구적으로 주고싶다.

$ vim /home/유저이름/.bashrc 파일을 수정해주시면 됩니다.

입력하는 방법은 1회성으로 입력하는 방법과 같습니다. ( export 이용 )

2. 수정한 내용 적용하기

$ source /etc/bash.bashrc
$ . /etc/bash.bashrc

위의 명령어 중 아무거나 하나만 실행시키시면 됩니다.

권한의 문제라는 에러가 나오면 당연히 앞에 sudo를 붙여주시면 됩니다.

환경변수 해제하기

영구적으로 저장하진 않았고 갑자기 환경변수가 필요없어서 삭제하고 싶다 하는 경우에 사용해주시면 됩니다.

영구적으로 저장했을 경우 해당 명령어는 딱! 명령어를 입력한 그 창에서만 환경변수가 지워지게 됩니다.

$ unset 이름

그렇다면, 영구적으로 지정한 환경변수는 어떻게 삭제할까?

  • 네, 생각하시는 것 처럼 이전에 수정했던 파일을 열어서 입력했던 부분을 지워주시면 됩니다.
  • 당연히 수정 후에는 수정한 내용을 적용도 해주셔야겠죠?
  • "파일 수정 - 수정 저장 - 터미널 종료 - 새 터미널" 하시고 확인해 보시면 지워진 것을 볼 수 있습니다.

Thanks for

  • 리눅스 환경변수 설정, 해제

0. 환경

- 필자는 CentOS 7(centos-release-7-9.2009.0.el7.centos.x86_64) 환경에서 설정했습니다.


1. 환경 변수

- 환경 변수(environment variable)는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임

- 컴퓨터 동작, 특히 쉘 명령 수행에 영향을 미치는 변수들

- 실행 환경을 설정하기 위한 변수

- 시스템의 속성을 기록하고 있는 변수

1-1. 환경 변수는 왜 사용하나요?

- 특정 디렉터리 경로, 실행파일 또는 명령 등을 환경 변수에 등록함으로써 사용하려고 할 때 직접 접근해서 실행하는 번거로움을 없애 작업 생산성편의성을 높일 수 있습니다. 

1. 환경변수 등록 없이 다음 경로의 sh파일 실행 (경로 a/b/c/test.sh)
# sh a/b/c/test.sh
hello linux

2. 환경변수 등록 후 다음 경로의 sh파일 실행 (경로 a/b/c/test.sh)
# test=a/b/c/test.sh
# $test
hello linux
리눅스 환경변수 삭제 - linugseu hwangyeongbyeonsu sagje

1.2 환경 변수 관련 파일, 명령어 변수

- 환경 변수는 지역 변수, 전역 변수 두 가지 유형이 존재합니다. 그에 따라 파일도 따로 존재합니다.

   ~/.bash_profile 지역 환경변수
   /etc/profile 전역 환경변수

- 환경 변수에 접근할 때는 변 수명 앞에 $를 붙여서 참조(사용)합니다.

- printenv: 환경 변수 목록 또는 특정 환경 변수 내용을 볼 수 있습니다.

등록된 전체 환경변수 확인
# printenv
XDG_SESSION_ID=889
HOSTNAME=localhost.localdomain
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
JAVA_HOME=/usr/local/bin/java_home
LANG=ko_KR.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
XDG_DATA_DIRS=/root/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/bin/printenv

등록된 특정 환경변수 확인
# printenv JAVA_HOME
/usr/local/bin/java_home

- 기본 환경 변수 주요 목록

  1) HOME : 사용자의 홈 디렉터리
  2) PATH : 실행파일을 찾는 경로
  3) LANG : 프로그램 사용 시 기본 지원되는 언어

  4) USER : 사용자의 이름

  5) PS1 : 명령 프롬프트 변수

# echo $HOME
/root
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# echo $LANG
ko_KR.UTF-8
# echo $USER
root
# echo $PS1
[\u@\h \W]\$
리눅스 환경변수 삭제 - linugseu hwangyeongbyeonsu sagje

대표적인 환경 변수 5가지만 소개했고 더 많은 기본 환경 변수가 존재합니다.

1.3 지역 환경 변수 VS 전역 환경 변수

- 지역 환경 변수는 설정한 환경 변수를 생성한 특정 사용자만 사용 가능합니다.

- 전역 환경 변수는 설정한 환경 변수를 모든 사용자가 사용 가능합니다.  


2. 설정

환경 변수 경로로 설정할 파일을 생성합니다.

테스트에 사용할 실행용 파일을 생성해 줍니다.
# cd /usr/local/bin
# echo 'echo "Hello ENV test"' > env_test
# chmod +x env_test
# ./env_test 
Hello ENV test

또는 
# /usr/local/bin/env_test

2-1. 환경변수 일시적 적용

- 환경 변수를 일시적으로 적용합니다. 일시적으로 적용한 환경변수는 재부팅하거나 로그아웃 할 경우 환경 변수가 사라집니다.

- 지역 환경변수 일시적 적용

지역 일시적 환경변수 사용법: 변수명=경로

# env1=/usr/local/bin/env_test
# $env1
Hello ENV test

- 전역 환경변수 일시적 적용

젼역 일시적 환경변수 사용법: export 변수명=경로

# export env2=/usr/local/bin/env_test
# $env2
Hello ENV test

- 지역 | 전역 환경 변수 다른 유저에서 실행해보기

# su hj
# whoami
hj
# $env1
# $env2
Hello ENV test

전역 변수는 잘 실행되지만 지역 변수는 실행이 되지 않습니다.
리눅스 환경변수 삭제 - linugseu hwangyeongbyeonsu sagje

- 환경 변수 해제

사용법: unset 환경 변수명

# unset env1

2-2. 환경 변수 영구 적용 1

- 환경 변수를 영구적으로 적용합니다. 일시적으로 적용한 환경변수는 재부팅하거나 로그아웃 해도 사라지지 않습니다.

1. vi, vim 편집 툴을 이용해 환경 변수를 적용합니다.

   지역 환경변수를 적용할 경우 ~/.bash_profile를 편집

   전역 환경변수를 적용할 경우 /etc/profile를 편집

2. Shift + G를 이용해 맨 밑으로 이동해 줍니다.

3. I를 눌러 편집 모드로 들어가 최하단에 export 환경 변수명=경로 를 작성해 줍니다.

4. source ~/.bash_profile 또는 source /etc/profile를 입력해 변경 내용을 적용해 줍니다.

- 지역 환경 변수 영구 적용

  (export env3=/usr/local/bin/env_test를 편집 툴을 이용해 최하단에 입력해 줍니다.)

# vi ~/.bashrc

Shift + G로 최하단으로 이동 후 입력 해줍니다. 
export env3=/usr/local/bin/env_test 


# source ~/.bashrc
# $env3
Hello ENV test

- 전역 환경 변수 영구 적용

# vi /etc/profile

Shift + G로 최하단으로 이동 후 입력 해줍니다. 
export env4=/usr/local/bin/env_test 

# source /etc/profile
# $env4
Hello ENV test

2-3. 전역 환경 변수 영구 적용 2

- 전역 환경 변수를 영구적으로 등록할 경우 /etc/profile 안에 새로운 변수를 넣거나 값을 바꾸면 된다고 생각할 수 있습니다. 그러나 만약 OS를 업데이트하는 경우 이 파일이 변경될 수도 있습니다. 백업하는 것도 방법이지만 /etc/profile.d 경로에 sh파일로 생성해 주면 더 안전하고 영구적으로 적용할 수 있습니다.

1. /etc/profile.d 경로에 touch를 이용해 확장자가 .sh인 파일을 생성해 줍니다.

2. vi, vim 편집 툴을 이용해 환경 변수를 적용합니다.

3.export 환경 변수명=경로 를 작성해 줍니다.

4. source 파일명. sh를 이용해 적용해 줍니다.

# cd /etc/profile.d/
# touch env_test.sh
# vi env_test.sh

툴을 이용해 입력해줍니다.
export env5=/usr/local/bin/env_test 

# source env_test.sh
# $env5
Hello ENV test