Computer Science/OS

[OS] 리눅스 / 셸

Bay Im 2024. 9. 4. 00:54
  • Shell
    • 커널과 사용자의 다리 역할
    • 명령 해석 및 실행
    • 주요 셸
      • bash
        • GNU 의해 개발
        • 다양한 OS 사용 가능
        • 리눅스의 표준 셸
        • ex) echo $SHELL /bin/bash
      • csh
        • C기반이고 버클리 대학에서 개발
        • 히스토리 기능, 별명 기능, 작업 제어
      • tcsh
        • csh의 강화 셸
      • ksh
        • AT&T 개발
        • 명령어 완성 기능, 히스토리 기능
  • 셸 확인
    • echo $SHELL
      • 사용 중인 셸 확인
    • chsh -l 혹은 cat /etc/shells
      • 변경 가능한 셸 확인
  • 셸 변경
    • chsh 입력→ 사용자 암호 입력→ 절대 경로 입력→ 다음 로그인부터 유효
  • 셸 변수
    • 특정 셸에서만 적용되는 변수
    • 변수명=값 형태로 지정한다
    • 변수값 출력시 echo $변수명 으로 확인한다
  • 환경 변수
    • 현재 설정된 전체 환경변수의 값은 env로 확인한다.
    • env의 주요 환경 변수
      • HOME: 홈 디렉터리
      • PATH: 실행파일 찾는 디렉터리 경로
      • LANG: 기본 언어
        • LANG=C 는 영어로 변경
      • TERM: 로그인한 터미널 종류
      • PWD: 현재 작업 디렉터리
      • SHELL: 로그인 셸
      • PSI: 프롬포트 변수
      • PS2: 2차 프롬포트 변수
      • HISTFILE: 히소트리 파일의 절대 경로
      • HISTSIZE: 히스토리에 저장되는 명령어 개수
      • HISTFILESIZE: 히스토리 파일의 크기
      • TMOUT: 일정시간 작업 안하면 로그아웃 시키는 시간
  • history
    • 사용자가 입력한 명령어 확인
    • !로 대체 가능하다
    • 표시
      • !!: 마지막 명령 실행
      • !n: n번째 사용한 명령 실행
      • !-n: 역으로 n번째 명령 실행
      • !문자열: 최근에 사용한 문자열로 시작하는 명령 실행
      • !?문자열?: 최근에 사용한 해당 문자열 포함하는 명령 실행
    • 예시
      • history 5
        • 최근에 입력한 마지막 5개 명령어 출력
      • history
        • 히스토리에 저장된 명령어 목록 출력
    • 관련 환경변수
      • HISTSIZE: 히스토리 스택 크기 변수이며 단위는 명령의 개수
      • HISTFILESIZE: 실질적인 히스토리 파일 크기
      • HISTFILE: 히스토리 파일 위치 출력
  • alias
    • 사용자 정의 명령 지정
    • unalias로 해제 가능하다
    • 예시
      • alias aaa = ‘ls -alf’
      • unalias aaa
      • 그냥 alias 만 적으면 현재 설정된 alias 목록이 출력된다.
  • 셸 관련 디렉터리
    • /etc/profile: 모든 사용자의 환경변수와 시작관련 설정 파일
    • /etc/bashsrc: 모든 사용자의 alias와 함수 설정
    • ~/.bash_profile: 개인 사용자의 환경설정과 시작 프로그램 설정
    • ~/.bashsrc: 개인 사용자의 alias와 함수
    • ~/.bash_logout: 개인 로그아웃시 수행하는 설정 지정
    • PATH 경로 추가는 export PATH= $PATH:/usr/~~ 파일명은 쓰지말고 디렉터리 까지만!
728x90