[CentOS] 환경설정
by Choi HyeSun
변수 확인(환경변수/쉘변수/별칭)
printenv - 환경 변수 확인 프로그램
-
printenv $변수명
: 모든 환경 변수를 보여줌- 환경변수=값
-
printenv $변수명...
: 해당 변수(들)의 변수값(들)만 보여줌echo $변수명
으로도 볼 수 있음
-
예시
$ printenv
XDG_SESSION_ID=34
HOSTNAME=localhost.localdomain
SELINUX_ROLE_REQUESTED=
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
SSH_CLIENT=192.168.134.1 59401 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/1
USER=sun
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:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
MAIL=/var/spool/mail/root
PWD=/usr/local/sbin
LANG=ko_KR.UTF-8
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
HOME=/home/sun
SHLVL=2
LOGNAME=sun
SSH_CONNECTION=192.168.134.1 59401 192.168.134.4 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/printenv
$ printenv HOSTNAME
localhost.localdomain
$ printenv HOSTNAME SHELL
localhost.localdomain
/bin/bash
$ echo $HOSTNAME
localhost.localdomain
set
- 쉘 변수 & 환경 변수 전체 확인 Shell builtin(bash 내장 명령어)
-
결과를 알파벳 순으로 정렬해줌
-
echo $변수명
으로 낱개로도 볼 수 있음
$ set
BASH=/usr/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.2.46(2)-release'
COLUMNS=104
DIRSTACK=()
EUID=1000
GROUPS=()
HISTCONTROL=ignoredups
HISTFILE=/home/sun/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/home/sun
HOSTNAME=localhost.localdomain
HOSTTYPE=x86_64
IFS=$' \t\n'
LANG=ko_KR.UTF-8
LESSOPEN='||/usr/bin/lesspipe.sh %s'
LINES=21
LOGNAME=sun
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:'
MACHTYPE=x86_64-redhat-linux-gnu
MAIL=/var/spool/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PIPESTATUS=([0]="0")
PPID=26521
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
PS1='[\u@\h \W]\$ '
PS2='> '
PS4='+ '
PWD=/usr/local/sbin
SELINUX_LEVEL_REQUESTED=
SELINUX_ROLE_REQUESTED=
SELINUX_USE_CURRENT_RANGE=
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=2
SSH_CLIENT='192.168.134.1 59401 22'
SSH_CONNECTION='192.168.134.1 59401 192.168.134.4 22'
SSH_TTY=/dev/pts/1
TERM=xterm
UID=1000
USER=sun
XDG_RUNTIME_DIR=/run/user/0
XDG_SESSION_ID=34
_=set
colors=/home/sun/.dircolors
$ echo $PS2
>
alias
- 별칭확인
-
인자 없이 호출하면 별칭 전체 확인
- 별칭명=값
-
인자(1개 이상)로 별칭명을 명시하면, 해당 별칭명=값(들)을 출력
-
예시
$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias hi='echo hi'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
$ alias hi
alias hi='echo hi'
$ alias hi ll
alias hi='echo hi'
alias ll='ls -l --color=auto'
자주 쓰는 환경 변수
-
SHELL
-
사용자의 쉘 프로그램
-
예)
SHELL=/bin/bash
-
-
HOME
-
홈 디렉토리 경로명
-
예)
HOME=/home/sun
-
-
LANG
-
사용자 언어의 문자셋과 정렬 방식 정의
-
예)
LANG=ko_KR.UTF-8
-
-
OLDPWD
-
이전 작업 디렉토리,
cd -
시에 여기로 이동 -
예)
OLDPWD=/usr/local/sbin
-
-
PATH
-
실행 프로그램명을 입력할 때, 그 이름을 찾는 디렉토리 목록(콜론 구분)
-
예)
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
-
-
PS1
-
프롬프트 문자열 1, 쉘 프롬프트 내용을 정의(광범위하게 가능)
-
예)
PS1=[\u@\h \W]\$
-
-
PWD
-
현재 작업 디렉토리,
pwd
시 확인 가능 -
예)
PWD=/home/sun
-
-
TERM
-
사용자 터미널 타입 이름
-
예)
TERM=xterm
-
-
USER
-
사용자 이름
-
예)
USER=sun
-
-
HOSTNAME
-
장비명
-
HOSTNAME=localhost.localdomain
-
로그인 여부에 따른 쉘 환경 설정
로그인 쉘 세션
-
사용자 이름과 비밀번호를 입력
-
예) 가상 콘솔 세션이 시작할 때
로그인 쉘 세션용 시작파일
-
/etc/profile
- 모든 사용자에게 적용되는 일반 환경설정
-
~/.bash_profile
-
개인 사용자 시작파일
-
일반 환경설정(
/etc/profile
)을 확장하거나 무시할 수 있음
-
-
~/.bash_login
~/.bash_profile
파일이 없으면 bash는 이 스크립트를 읽게 됨
-
/.profile
-
/.bash_profile
과~/.bash_login
모두 없으면 bash는 이 파일을 읽음 -
데비안 배포판에서는 기본으로 설정되어 있음
-
비로그인 쉘 세션
- GUI 환경에서 터미널 세션을 실행할 때
비로그인 쉘 세션용 시작파일
-
/etc/bash.bashrc
- 모든 사용자에게 적용되는 일반 환경설정
-
~/.bashrc
-
개인 사용자 시작 파일
-
일반 환경설정을 확장하거나 무시할 수 있음
-
가장 중요한 파일, 항상 참조됨
-
비로그인 쉘은 기본적으로 해당 파일을 읽고, 로그인 쉘용의 시작 파일 대부분은 해당 파일을 기본적으로 참조하도록 만들어짐
-
시작 파일을 읽는 것 뿐만 아니라 로그인 쉘 같은 상위 프로세스로부터 환경 값을 물려받음
-
환경파일 실행/호출 순서
-
(1) 호출 /etc/profile
-
(1-1) 호출 및 실행 /etc/profile.d/(아래의 모든 sh파일)
-
(1-2) 실행 /etc/profile
-
-
(2) 호출 ~/.bash_profile
-
(2-1) 호출 ~/.bashrc
-
(2-1-1) 호출 및 실행 /etc/bashrc
-
(2-2) 실행 ~/.bashrc
-
(2-3) 실행 ~/.bash_profile
-
-
단, 호출 부분 위에 선언하면 당연히 먼저 실행
환경파일 편집에 대한 일반적인 규칙
-
.bash_profile
(또는 배포판에 따라 그에 준하는 파일, 우분투는.profile
)-
사용자의 PATH에 디렉토리 추가
-
부가적인 환경 변수를 정의
-
-
.bashrc
- 그 밖의 다른 것
-
시스템 관리자가 아니면 홈 디렉토리에 있는 파일만 편집
변경사항 적용
PATH 내용 적용
-
export 변수명
-
쉘 변수를 환경변수로 저장
-
쉘과 쉘의 자식 프로세스에 PATH(환경변수) 내용을 적용하라고 알려줌 (단, 터미널 유지시까지)
-
-
매번 쉘을 실행할 때마다 쉘 변수를 환경변수로 자동으로 설정하고 싶다면
.bashrc
파일에 변수를 저장export 변수명=값
형식
환경파일 적용
-
source $파일명
-
해당 파일명 파일을 참조하도록 명령
-
.bashrc
처럼 최초 세션이 시작될 때 참조되는 파일 등에 사용source .bashrc
Subscribe via RSS