[Linux & Unix] 환경변수

GreenBean·2022년 3월 16일
0
post-thumbnail

환경변수

Login Sehll와 Non-Login Shell 차이점

Login Shell

  • 로그인은 계정과 암호를 입력해서 Shell을 실행하는 것을 말함
    • 따라서 ssh로 접속하거나 로컬에서 GUI를 통해 Shell을 실행하는 것은 Login Shell
  • .profile, .bash_profile 이 두 파일은 Login할 때 로드되는 파일
    • .profile은 꼭 bash가 아니더라도 로그인하면 로드되며, .bash_profile은 bash로 로그인할 때만 실행됨

Non Login Shell

  • Non-Login Shell은 로그인 없이 실행하는 Shell을 말함
    • ssh로 접속하고 나서 다시 bash를 실행하는 경우나, GUI 세션에서 터미널을 띄우는 것도 여기 해당
    • sudo bashsu도 해당
  • 단 Mac Os X에서는 로그인 여부와 관계 없이 모든 터미널 창을 Login Shell로 실행
    • 따라서 .bash_profile이 로드됨

.bashrc와 .bash_profile 차이점

.bashrc

  • 이미 로그인 한 상태에서 새 터미널 창을 열 때마다 실행
    • Non-Login Shell에서 실행됨

.bash_profile

  • 시스템에 로그인 할 때마다 실행
    • Login Shell에서 실행됨

.profile

  • 로그인할 때 로드
    • PATH처럼 로그인 할 때 로드해야 하는데 bash와 관계없는 것들은 여기에 넣으면 됨
  • 만약 Mac에서 새 터니멀 창을 열 때마다 .bashrc를 로드하고 싶다면 .bash_profile에서 .bashrc를 로드하면 됨

Tip! 추가 내용

Shell Prompt 정보 & 색상 변경하기

  • 사용자의 시스템 사용환경을 개별적으로 사용할 수 있도록 지원하는 사용자별 시스템 환경변수를 Shell 변수라고 함
    • Shell 변수들 가운데 PS1이라는 변수가 prompt의 정보를 포함하고 있음

Prompt 기본 설정 확인

$ echo $SHELL
/bin/bash
$ echo $PS1
\h:\W \u\$
  • \h
    • 현재 호스트의 이름
  • \W
    • 현재 위치의 디렉토리
  • \u
    • 현재 로그인된 사용자

Prompt에 나타낼 수 있는 정보

Prompt 색상 정보 (ANSI color)

  • 색상은 0에서 7까지 사용 가능
    • 색상 값 앞에 30, 40, 90, 100을 더해서 사용
    • 예를 들어 32는 Normal Green을 나타내고 42는 Bright 옵션을 더하게 됨

PS1 변수 변경하기

  • 전체 사용자 적용
    • etc/bashrc
    • 모든 사용자들에게 적용되는 shell 설정 파일
  • 개별 사용자 적용
    • ~/.bashrc
    • 모든 사용자들의 홈 디렉터리에 존재하며 각 개별 사용자들의 shell을 수정할 수 있음

Tip! EC2 안에서 설정

  • .bash_profile 설정 변경
    • vim ~/.bash_profile
    • 적용: source ~/.bash_profile
  • 혹은 .profile 설정 변경
    • vim ~/.profile
    • 적용: source ~/.profile
# .bash_profile 안에 추가
export PS1="\[\e[1;36m\]HWAYA <EC2>\[\e[0m\]
$PS1"

profile
🌱 Backend-Dev | hwaya2828@gmail.com

0개의 댓글