shell別 start-up file

markyang92·2021년 7월 13일
1

shell-script

목록 보기
1/19
post-thumbnail

로그인 shell, 비-로그인 shell

로그인 shell

  • 로그인 shell
    • /bin/login과 같은 프로그램을 사용하여, 터미널과 함께 시스템에 맨 처음 로그인할 때 받게되는 것
    • ssh 또한 로그인 shell을 받게된다.
  • bash가 로그인 shell로 실행할 경우

비-로그인 셸

  • 로그인을 한 후, 추가로 실행하는 추가 셸이다. 이는 로그인 셸이 아닌 'interactive Shell'이다.
    • Windowing system terminal program, xterm, GNOME terminal은 구체적으로 로그인 shell을 요구 하지 않는 한 '비-로그인' shell을 구동한다.
  • bash가 비 로그인 shell로 실행할 경우

    • 한 번 로그인하면, 비-로그인 shell이 실행되는 것임. (그 때 마다 ~/.bashrc 적용)
      • 그러한 이유로, ~/.bash_profile 같이 로그인 shell 용 같은 스크립트엔 '무거운' 내용, ~/.bashrc에는 '가벼운' 내용
  • 최근에는 데스크톱 사용자들이 그래픽 디스플레이 매니저를 통해 로그인을 하고, 로그인 및 비-로그인 모델을 유지하기 위해 non-interactive 로그인 셸을 시작한다.
    • 이렇게 하지 않으면, 전체 환경을 ~/.bashrc에 설정 해야한다. 그렇지 않으면, 터미널 윈도우 셸에서 어떤 환경도 볼 수 없다.
    • 콘솔이나 원격으로 로그인 하고 싶다면, 이런 로그인 셸들은 ~/.bashrc에 신경을 쓰지 않기 때문에 ~/.bash_profile도 필요하다. 하지만 최근에는 ~/.bashrc를 잘 구성해서 ~/.bashrc~/.bash_profile로도 사용될 수 있게 구성되어 있다.

startup files by shell

shell   type        pathstarting time
본 쉘system(global)/etc/profile로그인 때 (로그인 때란 것은, 로그인 시에만 실행되고 끝)
본 쉘user~/.profile사용자 로그인 때
Bash 쉘system/etc/profile (본 쉘과 같다)로그인 때
Bash 쉘system/etc/bash.bashrc비-로그인 쉘
Bash 쉘user~/.bash_profile로그인 때(즉, 로그인 할 때만 적용)
Bash 쉘user~/.bashrc로그인 및 서브 쉘(즉 쉘 창을 열면 다시 실행)
Bash 쉘user~/.bash_logout로그아웃
zsh 쉘user~/.zshrc로그인 및 서브 쉘(즉 쉘 창을 열면 다시 실행됨)

/etc/profile

  1. $BASH != /bin/sh 라면, 기본적으로 Bash를 사용하므로, . /etc/bash.bashrc로 global bash.bashrc를 실행한다.
  1. 본쉘을 사용하면 간단하게 PS='$ '가 적용됨

~/.profile

  • ~/.profile은 유저의 '로그인' 때 실행 됨

zsh 기본 쉘 일 경우


start-up file에서 피해야할 행동

  1. 셸 스타트업 파일에 그래픽 명령을 넣지 않는다.
  2. 셸 스타트업 파일에 DISPLAY 환경 변수를 설정하지 않는다.
  3. 셸 스타트업 파일에 터미널 유형을 설정하지 않는다.
  4. 디폴트 스타트업 파일에 상세한 주석을 충분히 첨부한다.
  5. 스타트업 파일에서 표준 출력으로 인쇄하는 명령을 실행하지 앟는다.
  6. 셸 스타트업 파일에 LD_LIBRARY_PATH를 절대 설정하지 않는다.

profile
pllpokko@alumni.kaist.ac.kr

0개의 댓글