본문 바로가기
OS/Common

Shell(셸, 쉘) 종류 및 특징

by 코딩하는보기 2023. 11. 8.
728x90
반응형

Why is it called Shell? - 왜 셸(쉘)이라 부르는가?

Shell은 영어 단어로 하면 껍질, 껍데기란 뜻이다

Q. 왜 OS에서 터미널, cmd등을 쉘이라고 부르는가?

A. 사용자와 운영체제의 내부(커널) 사이의 인터페이스를 감싸는 층이기 때문에 그러한 이름이 붙었다

 

What Shell is... - 셸(쉘)이란...

셸(shell)은 사용자와 컴퓨터 운영체제간의 대화형 인터페이스를 말한다. 사용자는 셸을 통해 컴퓨터에 명령을 입력하고, 셸은 그 명령을 운영체제가 이해할 수 있는 형태로 변환하여 전달한다.

그리고 운영체제는 이 명령을 실행하고 결과를 사용자에게 보여준다.

 

Kind of Shells - 셸(쉘)의 종류

인터페이스별

  • 명령줄 인터페이스(CLI - Command Line Interface)
  • 그래픽 사용자 인터페이스(GUI - Graphic User Interface)

운영체제별

유닉스/리눅스 기반 셸

  • Bourne Shell (sh)
    유닉스 셸의 원형이며, 다른 많은 셸의 기반이 되었다
  • Bourne-Again Shell (bash)
    가장 흔히 사용되는 리눅스 셸 중 하나로, GNU 프로젝트의 일부이다
  • C Shell (csh)
    C 프로그래밍 언어와 유사한 문법을 가진 셸
  • Korn Shell (ksh)
    Bourne Shell과 C Shell의 장점을 결합하여 만들어진 셸
  • Z shell (zsh)
    bash의 확장판으로 볼 수 있으며, 많은 강력한 기능과 테마, 플러그인을 지원
  • Fish Shell (fish)
    사용자 친화적인 기능과 편리한 자동 완성 기능을 제공하는 최신 셸 중 하나
  • TC Shell (tcsh)
    C Shell의 확장판으로, 여러 개선사항을 포함

윈도우 기반 셸

  • Command Prompt (cmd.exe)
    윈도우의 기본적인 CLI(명령줄 인터페이스)
  • PowerShell
    고급 스크립팅 기능을 제공하며, .NET 프레임워크와 긴밀하게 통합되어 있음
  • Windows Subsystem for Linux (WSL)
    윈도우에서 리눅스 셸을 사용할 수 있게 해주는 호환 계층

기타 셸

  • Git Bash
    Git과 함께 제공되는 bash 셸로, 윈도우에서 bash 스크립트를 사용할 수 있게 해줌
  • Cygwin
    윈도우에서 리눅스와 유사한 환경을 제공하여, 여러 유닉스 셸을 사용할 수 있게 하는 도구

Features of each type of shell - 셸의 종류별 특징

크게 개발쪽에서 셸 스크립트로 프로그래밍을 한다고 하면 !#/bin/sh(본셸) 혹은 !#/bin/bash 두개 중에 하나로 작업한다

전역적인 호환을 위해선 /bin/sh로 하는 경우가 있는데.. 일단 두 셸의 차이를 알아보자

  SH BASH
history X O
alias X O
job control X O
file name auto complete X O
command line edit X O
shell script O O
start case $, (#) $(#)

 

현대의 macOS나 최신 Linux 배포판에서는 /bin/sh가 실제로 bash나 dash같은 현대 셸의 시뮬레이션 모드를 실행하는 경우가 많기 때문에 sh가 위의 기능들을 지원하는 것처럼 보일 수 있다

그러나 sh가 Bourne Shell이나 전통적인 POSIX이라면 /bin/sh는 위와 같은 기능들이 누락되어 있는게 맞다

Check which shell you are currently using - 현재 사용중인 셸 확인

echo $0

또는

echo $SHELL

Check available shells - 사용가능한 셸 확인

cat /etc/shells

Exec shell - 셸 프로세스 실행

exec sh
exec bash

나가기: exit

 

Change shell - 기본 셸 변경

chsh -s /bin/bash
또는
chsh -s $(which bash)

zsh를 사용하는 경우에는 iTerm에서 변경내역을 확인해보면 된다

Oh my zsh 설치

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

또는

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # install omyzsh
source .zshrc  # restart zsh profile

https://ohmyz.sh/#install

 

728x90
반응형

'OS > Common' 카테고리의 다른 글

텍스트 에디터 종류  (0) 2023.11.16

댓글