코딩 기록 저장소

[PART2] 리눅스 운영 및 관리 - Ch.02 셸(Shell) 관리 본문

개인 공부/[자격증] 리눅스 마스터 2급

[PART2] 리눅스 운영 및 관리 - Ch.02 셸(Shell) 관리

KimNang 2024. 11. 12. 23:58

01. 셸의 특징 및 명령어

셸 (Shell)

- 사용자가 입력한 명령어를 해석하여 커널에 전달함

- 윈도(도스)에서의 'command,com'과 유사한 기능을 수행

- 사용자가 로그인 시 실행되어 사용 환경 제공

- 셸 프로그래밍 언어(스크립트 언어)

- 리다이렉션(Redirection)과 파이프( | ) 기능을 수행

- 사용자 셸 프롬프트(본 셸 계열 : $, C 셸 계열 : %)

 

  종류 실행 파일 특징
본 셸 계열 본 셸 /bin/sh - 1979년 Bell 연구소의  Steve Bourne이 개발
- 유닉스의 기본 셸
콘 셸 /bin/ksh - 1986년 AT&T사의 David Korn이 개발
- Bell 연구소에서 개발한 본 셸의 확장 버전
- 명령어 완성 기능, 히스토리 기능 지원
배시 셸 /bin/bash - 1989년 Brian Jhan Fox가 개발
- 본 셸을 기반으로 GNU 프로젝트에서 개발
- POSIX 호환으로 다양한 운영체제에서 사용 가능 (리눅스, 맥OS X 등)
- 명령어 자동 완성, 명령어 편집, 히스토리, 명령어 치환 기능 등 지원
- 리눅스의 기본 셸
지 셸 /bin/zsh - 1990년 Paul Falstad가 개발
- 본 셸의 확장 버전으로, 콘 셸의 개선 버전
셸 (Shell)
- 명령어 자동 완성, 명령어 편집, 강력한 히스토리 기능 지원
- 탭이나 방향키를 이용해 선택 기능 지원
C 셸 계열 C 셸 /bin/csh - 1981년 Berkley 대학의 Bill Joy가 개발
- C 언어의 특징을 포함
- 다양한 프로그래밍 작성 기능 지원
- 히스토리, 별칭, 작업 제어 등의 기능 지원
TC 셸 /bin/tcsh - 1982년 Ken Greer가 개발
- C 셸의 확장 버전으로, BSD 계열에서 많이 사용
- 명령어 편집, 명령어 자동 완성, 자동 로그아웃 기능 지원
- 사용자 로그인 상태, 터미널 모니터링 기능 지원
- emacs, history explorer 기능 지원
셸 관련 파일
  1. /etc/shells
    - 사용자들이 사용 가능한 셸을 정의하는 파일
    [root@localhost ~]# cat /etc/shells
  2. /etc/passwd
    - 사용자의 계정 정보가 저장되는 파일
    [root@localhost ~]# cat /etc/passwd
셸 관련 명령어
  1. echo $SHELL
    - 현재 로그인한 사용자가 사용하는 셸을 확인하는 명령어
    • 기본 형식
      [root@localhost ~]# echo [셸 환경변수]
  2. chsh
    - 사용할 셸 종류를 변경하는 명령어
    • 기본 형식
      [root@localhost ~]# chsh [옵션] [셸 종류]
    • 옵션
      -l '/etc/shells' 파일의 내용을 출력
      -s 지정하는 셸로 변경
      -u 도움말 출력
  3. usermod
    - 사용자 계정 정보를 변경하는 명령어
    • 변경 예시
      [root@localhost ~]# usermod -s /bin/csh test

02. 환경설정

환경변수

- 환경변수는 현재 사용하고 있는 셸(Bash 등)의 실행 파일에 대한 위치를 저장하는 변수를 말하며 변수명과 값으로 구성됨

  1. 종류
    전역 변수 - 전체 셸에 영향을 미치는 변수
    - 하위 셸에 기능 상속 가능
    지역 변수 - 특정 사용자에게만 적용되는 변수
    - 하위 셸에 상속 불가능
  2. 주요 환경 변수
    DISPLAY X 윈도 환경에서 화면 출력을 위해 접속할 x 서버의 주소 및 장치 번호
    HOME 사용자의 홈 디렉터리
    HOSTNAME 호스트 명
    LANG 기본 지원 언어
    PS1 셸 프롬프트 선언 변수
    PS2 2차 셸 프롬프트 선언 변수
    PWD 현재 작업 디렉터리
    SHELL 로그인 셸
    TERM 터미널 명
    TMOUT 자동 로그아웃 시간
    USER 사용자 명
  3. 환경변수 관련 명령어
    1. export
      - 환경변수 목록을 확인하는 명령어
    2. echo $변수명
      - 화면에 텍스트를 출력하는 명령어
    3. export 변수명=변수값
      - 해당 변수명에 변수값을 등록하는 명령어
    4. export 변수명=$변수명:변수값
      - 현재 PATH에 경로를 추가하는 명령어