2. shell

2.1_ 셸의 개념 및 종류

① 셸의 개념과 특징 - 순서

  • Bourne Shell 
    • 기본 셸
  • C 셸
    • c 언어 기반
    • 히스토리, 별명, 작업 제어
    • 편집 기능 X
  • tcsh
    • C 셸 통합
    • csh기능 강화
    • 명령어 완성 기능, 명령행 편집기능
  • ksh
    • 본 셸 확장
    • 작업 제어, 앨리어스, 히스토리 기능, vi 및 emacs 스타일 명령행 편집 기능, 명령행 완성 기능
  • bash
    • 본 셸 기반
    • 리눅스의 표준 셸
    • 명령어 : sh와 호환
    • ksh + csh 기능 참고
      • 명령어 히스토리, 명령어 완성, 히스토리 치환, 명령어 편집 지원
    • POSIX와 호환됨

② 셸의 확인과 변경

  • 셸의 확인
    • echo $SHELL
      • 로그인 후 사용중인 셸 확인
    • chsh -l
      • /etc/shells 파일 안의 셸들 나열
      • 셸 목록 확인
    • cat /etc/shells 
      • 현재 시스템에서 사용 할 수 있는 셸들 확인
    • etc/passwd
      • 로그인 시 부여되는 셸 정보 확인
  • 셸의 변경
    • chsh

 

2.2_셸 환경 변수

① 셸 변수와 환경 변수

  • 셸 변수
    • 변수명=값
  • 환경 변수

② 주요 환경변수

  • 주요 환경변수
    • HOME
    • PATH
    • LANG : 언어
    • TERM : 로그인한 터미널 종류
    • PWD : 사용자의 현재 작업 디렉터리
    • SHELL : 로그인 셸
    • USER : 사용자의 이름
    • DISPLAY : X 윈도우에서 프로그램 실행시 출력되는 창
    • PS1 : 프롬포트 변수
    • PS2 : 2차 프롬포트 변수
    • HISTFILE : 히스토리 파일의 절대경로
    • HISTSIZE : 히스토리 파일에 저장되는 명령어의 개수
    • HISTFILESIZE : 히스토리 파일의 파일 크기
    • HOSTNAME : 시스템의 호스트명
    • MAIL : 도착한 메일이 저장되는 경로
    • TMOUT : 사용자가 로그인한 후 일정기간동안 작업안할때, 로그아웃 시키는 초
    • UID : 사용자 UID
  • 환경변의 사용 및 변경
    • 프롬포트 형식
      • \d : 요일 월 일 형태로 날짜 표시
      • \h : 호스트 이름 표시
      • \s : 사용 중인 셸 이름 표시
      • \t : 24시 형태의 현재 시간 표시
      • \T : 12시 형태의 현재 시간 표시
      • \@ : 12시 형태의 현재 시간에 AM/PM 추가 표시
      • \u : 현재 사용자의 이름
      • \w : 현재 작업 디렉터리의 절대경로
      • \W : 현재 작업 디렉터리의 전체 경로 중 마지막 디렉터리만
      • \! : 현재 명령의 히스토리 넘버
      • \\ : \를 표시

③ 배시셸의 주요 기능과 관련 파일

  • history
    • 히스토리 리스트에 있는 명령어들 출력됨
    • 명령어들 : .bash_history파일에 추가 기록됨
    • 로그아웃 -> 메모리에 기억된 명령의 목록 파일에 저장
    • 명령문
      • !! : 마지막에 사용한 명령 실행
      • !n : n번째 사용한 명령 실행
      • !-n : 사용한 명령 목록을 역으로 해서 
      • !문자열 : 가장 최근에 사용한 명령 중에 '문자열'로 시작하는 명령 찾아 실행
      • !?문자열? : '문자열' 포함하고 있는 명령 찾아 실행
      • ^문자열1^문자열2 : '문자열 1을 문자열2로 대체한 후 실행
    • 환경변수
      • HISTSIZE
      • HISTFILESIZE
      • HISTFLE
      • HISTCONTROL
      • HISTTIMEFORMAT
  • alias
    • 별명
    • unalias : 해제
      • ex) alias ls = 'ls -alF' : ls라고 명령 실행-> 'ls -alF' 실행 되도록
    • 셸 관련 파일 및 디렉터리
      • /etc/profile : 시스템 전체 적용, 시작관련 프로그램 설정
      • /etc/bashrc : 시스템 전체 적용, alias와 함수를 설정
      • ~/.bash_profile : 개인 사용자 환경설정, 시작프로그램, 로그인 시 읽어드림
        • 사용자가 PATH같은 환경변수 수정 시 사용
      • ./~bashrc : 개인 사용자, alias와 함수들 있음, alias 이 파일에서 설정
      • ~/.bash_logout : 개인 사용자가 로그아웃할 때
      • /etc/profile.d :  일반 사용자의 alias 설정 등과 관련된 스크립트 존재

+ Recent posts