안녕하세요. 오늘은 Shell이 무엇인지 한 번 알아보려고 합니다.
Shell(쉘)이란 운영 체제에서 커널과 이용자 사이에 끼어서 이용자의 명령을 해석하고 그 처리 결과를 뿌려주는 시스템 프로그램입니다.
그렇다면 유저, 하드웨어, 운영체제는 알겠는데, 커널은 무엇일까요? 커널은 운영 체제를 규정짓는 매우 중요한 부분입니다. 하드웨어를 직접적으로 조작하고, 자원을 프로세스에게 나눠주고, 각종 제어 (프로세스, 메모리)등 운영체제 역할의 모든 부분을 하고 있는 녀석이라고 보시면 됩니다. (간혹가다 커널이 운영체제라는 말이 있기도 했습니다. 허나 이는 올바른 표현이라고 하기엔 부족함이 있습니다) 커널의 존재가 운영체제의 정체성을 결정하기에 페도라, 우분투 등이 모두 리눅스로 묶이는 것도 이들이 같은 리눅스 커널을 이용하기 있기 때문입니다.
한가지 예를 들어볼까요? 저희가 리눅스 명령창에서 아래와 같은 명령어를 입력했다고 합시다.
ls -al
쉘의 경우 명령어를 해석해서 커널로 넘기며, 커널은 하드웨어에게 명령어를 처리하게 만듭니다. 그 응답값을 다시 쉘에게 주면서 그 응답을 저희에게 띄워주게됩니다.
그렇다면 커널과 쉘을 왜 구분지어서 사용을 할까요? 이에 대한 해답은 아래에서 참고하시길 바랍니다.
저는 우분투를 설치해서 사용하고 있는데 Bash가 기본 쉘입니다. 그 말은 즉슨 다른 쉘도 존재합니다. Zshell이 바로 그것입니다.
사실 두 개의 쉘이 비슷비슷하지만, Zshell의 경우 추가적인 기능을 가지고 있습니다. 그렇기 때문에 많은 사람들이 ZShell을 편하다고 말을 합니다.
echo $0 # 이 명렁어로 어떤 Shell을 사용하는지 알 수 있습니다.
그 외에도 다른 쉘이 존재하기 때문에, 원하는 쉘을 이용하시면 됩니다. 이게 가능한 이유가 커널과 쉘을 통합해서 사용하지 않고, 구분했기 때문에 가능한 일입니다.
이상 Shell은 무엇일까요?였습니다 ^_^
'Linux > Linux' 카테고리의 다른 글
Linux에서 프로세스 모니터링하기 (0) | 2020.03.13 |
---|---|
Linux에서 파일 찾기, 환경 변수 (0) | 2020.03.11 |
IO Redirection - output (0) | 2020.03.09 |
명령어로 file을 다운 받기 - wget (0) | 2020.03.08 |
Package Manager (0) | 2020.03.07 |