shell ?

남이섬·2024년 6월 23일
0

Shell 이란?

'셸(Shell)'은 사용자의 명령어를 해석하고 운영체제가 알아들을 수 있게 지시해주는 것으로, 사용자와 커널을 이어주는 것

'커널(kernel)'은 이와 같은 내용을 받아 하드웨어에 직접적으로 명령을 내려준다

셸은 하드웨어에 직접 명령을 수행하는 '커널'과 '사용자'를 이어주는 중간다리와 같은 역할을 한다

셸 : 사용자가 글자를 입력하여 컴퓨터에 명령할 수 있도록 하는 프로그램

터미널/콘솔 : 셸을 실행하기 위해 글자 입력을 받아 컴퓨터에 전달하거나 컴퓨터의 출력을 글자 화면에 쓰는 프로그램

shell의 종류

Unix나 Linux 시스템의 경우 ps 명령을 실행할 때 나타나는 프로세스 중에 bash, sh, ksh, csh 등이 셸 프로그램이며,

Windows의 경우 작업 관리자에서 볼 수 있는 explorer.exe가 셸이다

Windows의 경우 explorer.exe 이외에도 cmd.exe가 추가적으로 지원되는데, 이는 DOS 호환을 위한 것이다

DOS란 무엇인가 ?

DOS란 Disk Operating System의 약자로 개인용컴퓨터(PC;Persnal Computer) 의 운영체제에 붙이는 이름이다
이름에서 나타나 있듯이 디스크를 위주로 동작하고 있는데, 특히 디스크에서 파일을 읽어 오거나 기록하는 작업과 이러한 작업을 위하여 디스크 장치를 제어하고 관리하는 작업등을 수행 한다

sh (Bounce Shell)

프롬프트 : $(일반유저) / #(root유저)

  • 가장 오랜 기간 동안 UNIX 시스템의 표준 셸로 이용되었다
    상호대화형(interpreter) 방식을 취하고 있지 않다

  • /bin/sh와 /sbin/sh가 있다 (셸의 절대 경로)

  • ksh, zsh, bash 등이 이 계열이다

bash (Bourne-Again Shell)

프롬프트 : #

  • Bounce Shell의 변종이다

  • 리눅스에서 기본으로 지원되는 셸로, 사용자 계정을 생성할 때 특별한 셸을 지정하지 않으면 기본적으로 bash 셸로 지정된다

  • /bin/bash

csh (C프로그램 스타일 Shell)

프롬프트 : %

  • C언어와 유사한 언어를 사용한다

  • 상호 대화형 방식으로 구성되어 있다

  • Bounce Shell과 대부분 호환되며, 명령행 편집기능을 제공하지 않는다

ksh (Korn Shell)

프롬프트 : $

  • 유닉스에서 가장 많이 사용되고 있는 셸이다

  • Bounce Shell에 C Shell로부터 차용한 현대적 기능을 도입한 셸이다

셸은 단지 프로그램이며, 시스템에 대한 특별한 권한을 가지지는 않는다

누구나 자신만의 셸을 만들 수 있고, 위처럼 특정한 목적을 갖고 각각 고유한 기능과 개성을 가진 다양한 셸들이 존재한다

profile
즐겁게 살자

0개의 댓글