IT 끄적이기

Shell(쉘): 명령어를 해석하고 실행하는 프로그램

미르아 2025. 1. 8. 14:52
728x90
 

리눅스에서 작업을 하다가 문득 궁금해져서 기본 개념을 정리하기 위해 기록!

sh (Bourne Shell)

  • 역사: 1979년 AT&T에서 개발된 초기 쉘.
  • 특징:
    • POSIX 표준을 따르는 가장 기본적인 쉘.
    • 가볍고 단순하며, 대부분의 Unix/Linux 시스템에 기본 포함.
    • 제약:
      • 기능이 최소화되어 있어 스크립팅에서 현대적인 기능(배열, 편리한 문법 등)이 부족.
      • bash 같은 최신 쉘보다 불편.
  • 사용 예: 주로 호환성 요구사항이 높은 스크립트에서 사용.

bash (Bourne Again Shell)

  • 역사: sh의 확장판으로 GNU 프로젝트에서 개발 (1989년).
  • 특징:
    • sh의 모든 기능을 포함하며, 더 많은 기능 추가.
    • 배열, 조건문 개선, 명령어 자동완성, 명령어 히스토리 지원.
    • 현대적인 리눅스 배포판의 기본 쉘.
  • 사용 예: 대부분의 리눅스 사용자들이 사용하는 기본 쉘.
  • 차이점:
    • sh는 단순, bash는 확장된 기능 제공.
    • 예: bash는 배열, 히스토리 검색, 명령 자동완성 등 지원.

zsh (Z Shell)

  • 역사: 1990년대에 개발된 고급 쉘.
  • 특징:
    • bash의 기능을 포함하면서도 훨씬 강력한 사용자 정의 및 플러그인 지원.
    • 테마, 플러그인 등을 쉽게 사용할 수 있음.
    • 자동완성 기능이 더 강력하며, 명령어 입력이 편리함.
    • Oh My Zsh 같은 플러그인 관리 도구로 꾸미기 쉽고, 개발자들에게 인기.
  • 사용 예: 맥OS 기본 쉘(zsh), 개발자들 사이에서 인기.

Text Editor (텍스트 편집기)

vi (Visual Interface)

  • 역사: 1976년 Bill Joy가 개발.
  • 특징:
    • 초기 Unix 텍스트 편집기 중 하나로, 가볍고 어디서나 사용할 수 있음.
    • 모드 기반: 명령 모드, 입력 모드로 나뉨.
    • GUI 없이 터미널 환경에서 작동.
  • 제약:
    • 현대적 편집기 기능(구문 강조, 복잡한 검색 등)이 부족.
    • 초보자에게 배우기 어려움.

vim (Vi Improved)

  • 역사: vi의 확장판으로 1991년 Bram Moolenaar가 개발.
  • 특징:
    • vi의 모든 기능 포함 + 현대적 기능 추가.
    • 강력한 기능:
      • 구문 강조, 다중 파일 편집, 플러그인 지원.
      • 검색/치환, 자동완성 등.
    • 모든 Unix/Linux 시스템에서 쉽게 설치 가능.
  • 사용 예:
    • 터미널 환경에서 코드를 작성하거나 설정 파일을 수정할 때.
    • vim은 많은 개발자가 선호하는 강력한 편집기.

주요 차이점 요약

도구역할특징
sh 기본 쉘 POSIX 표준, 단순한 스크립트 실행용.
bash 기본 쉘 + 확장 자동완성, 배열 등 현대적 기능 포함. 대부분의 리눅스 기본 쉘.
zsh 고급 쉘 플러그인, 테마, 강력한 자동완성. 맥OS 기본 쉘.
vi 기본 텍스트 편집기 간단하지만 제한적인 기능. 터미널 환경에서 사용.
vim 고급 텍스트 편집기 vi에 구문 강조, 플러그인 등 추가된 강력한 편집기.

 

728x90