Linux Shell(쉘)

사용자에게 키보드로 명령을 받아 OS가 해당 명령을 수행하도록 하는 프로그램이다.

쉘(Shell) 이란?

사용자에게 명령을 받아 OS가 해당 명령을 해석하여 수행하도록 하는 프로그램이다.

쉘은 사용자와 시스템 간의 대화를 가능하게 해 주는 운영체제의 명령 해석기이다. 일반적으로 운영체제의 핵심이 되는 커널의 주위에 존재한다. 명령어 해석기라고 표현할 수 있으며, Unix에는 여러 가지의 쉘이 존재하고 사용자는 자신의 목적과 취향에 따라 원하는 쉘을 선택하여 사용할 수 있다.

쉘의 종류

Linux에서 이용할 수 있는 쉘에니느 몇가지 종류가 있다. 자주 이용하는 쉘의 특징을 간단히 설명하겠다. 또한 디폴트로 이용할 수 있는 쉘은 /bin/sh에 심볼릭 링크로 설정된 것이다.

  • bash (Bourne-Again Shell) /bin/bash

    • GNU에서 개발하였다.
    • 명령 이력, 디렉터리 스택, 명령 변환 기능, 명령이나 파일명의 자동보완 기능 등을 지원하는 고기능 쉘이다.
    • 대부분의 Linux 시스템에 표준으로 탐재되어 있다.
  • csh (C Shell) - /bin/sh

    • 미국 버클리 대학에서 개발하였다.
    • C 언어와 매우 비슷한 쉘로, BSD 계열 OS에서 주로 이용한다.
  • ksh - /bin/ksh

    • David Korn이 개발하였다.
    • 초보자를 위해 표준 환경이 적용되어 있는 Bourne쉘의 슈퍼셋이다.
    • 유닉스 지식을 가지고 있는 사람들에게 인정받고 있는 쉘이다.
  • tcsh /bin/tcsh

    • csh를 개선한 버전으로, 명령이나 파일명 등의 자동보완 기능을 갖고 있다.
    • 사용자 중심이고 속도가 빠르다.
  • zsh (Z shell)

    • bash와 호환성 있는 쉘로, 고속으로 작동하는 것이 특징이다.

macOS 버전 10.15 인 ‘카탈리나’ 부터 기본 Shell이 bash에서 zsh로 변경 되었다.*

쉘 명령

현재 사용중인 쉘 확인

아래 명령로 현재 사용중인 쉘이 무엇인지 확인 할 수 있다.

% env | grep SHELL
SHELL=/bin/zsh

혹은, 아래 같은 명령으로도 가능하다.

% echo $SHELL
/bin/zsh

맥에서 설치되어 있는 쉘 확인하기

아래 명령으로 맥에 현재 설치되어 있는 쉘 목록을 확인할 수 있다.

cat /etc/shells
% cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

사용하고 있는 쉘 변경하기

chsh 명령을 사용하면, 사용하는 쉘을 변경할 수 있다.

chsh -s /bin/bash
% chsh -s /bin/bash
Changing shell for user.
Password for user:

참조




최종 수정 : 2022-09-18