티스토리 뷰
리눅스 시스템 환경 변수 구조 이해
자신만의 리눅스 환경을 만들기 위해서는 리눅스 시스템 환경 변수 구조에 대한 이해가 필요하다.
특히 Alias를 정의한다거나 , 환경 또는 패스를 사전에 정의하기 위해서는 더욱 그렇다.
필자는 Alias를 추가하기 위해 들여다 보다가 몇가지 흥미로운 점들을 발견하였고, 이에 대해 정리하고저 한다.
우선 아래와 같은 구조를 이해하면, 환경 변수를 세팅하는 데 매우 편리하다.
몇가지 테스팅을 해 보니 구조는 위의 그림과 같다는 데 결론에 도달하였다.
또한 각각의 구성 파일에 접근해 보면, 어떤 경우에 사용하라는 것인지에 대해 주석처리와 함께 상세히 소개 되고 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # /etc/profile은 실제 들여다 보면 위와 같이 소개가 된다. 시스템 전역에 걸친 환경을 정의하며, 시작시 /etc/profile.d 하위에 존재하는 shell들이 함께 실행 된다. [root@web whchoi]# ls /etc/profile.d/ 256term.csh colorgrep.sh csh.local less.csh which2.csh 256term.sh colorls.csh lang.csh less.sh which2.sh colorgrep.csh colorls.sh lang.sh sh.local # 시스템 부팅과 동시에 로딩되는 Shell들이며,사용자 전체가 공통으로 할당 받는 환경이 된다. # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile # /etc/bashrc는 파일을 열어 보면, 시스템 전반에 걸친 함수와 alias를 선언하도록 되어 있다. # 또한 /etc/profile을 그대로 참조하여 사용하도록 되어 있는 하위 개념이다. [root@web whchoi]# more ~/.bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # Get the aliases and functions # 실제 사용자별 shell profile과 shellrc를 들여다 보면 더욱 더 분명해 진다. # bash_profile은 사용자 환경에 맞게 로그인 이후에 로딩되어 할당 받는 환경이다. [root@web whchoi]# more ~/.bashrc # .bashrc # User specific aliases and functions # 사용자 홈디렉토리에 위치한 .bashrc는 로그인 하거나, 현재 터미널에서 다시 .bashrc를 로딩하면 즉각 환경이 반영된다. # bash_profile 과 bashrc는 유사하지만 실행하는 데 있어서 다소 차이가 존재한다. | cs |
ntp 동기화를 위해 해당 시간대의 NTP Pool zone을 확인한다.
www.ntppool.org 에서 확인 할 수 있다.
그렇다면 만약 alias를 사용자 별로 다르게 선언한다면 어디가 가장 좋을까?
정답은 따로 없지만, ~/.bashrc 에 위치하는 것이 가장 좋다.
또한 모든 사용자에게 alias를 공통적으로 내려 준다면 어디가 가장 좋을까?
이것은 되도록이면 /etc/bashrc 에 위치하는 것이, 가장 좋다는 것을 쉽게 알 수 있다.
아래 나의 시스템에 적용한 /etc/bashrc를 보자.
몇개의 alias와 환경변수를 넣은 예제이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. # are we an interactive shell? alias nmclidev='nmcli dev sh -a | awk '/IP4/'' alias yumu='yum update' alias yumi='yum -y install' alias lsa='ls -al' alias fwlist='firewall-cmd --list-all' HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S ' export HISTTIMEFORMAT 이하 생략 | cs |
'운영체제 > Linux 일반' 카테고리의 다른 글
Apache vs Nginx (4) | 2019.03.27 |
---|
공지사항