셸의 역할과 리눅스 커널
date명령어를 실행했을 때 리눅스 내부에서 일어나는 일
- 키보드로 입력한 date문자열을 받아들인다.
- date 명령어를 찾는다.
- 발견한 명령어를 실행한다. ➡️ 리눅스의 본체인 커널이 수행한다.
- 실행한 결과로 얻은 문자열을 화면에 표시한다.
💡커널이란? 운영 체제의 중심에서 CPU나 메모리 같은 하드웨어를 관리하면서 명령어를 싱행하고 프로세스를 관리한다.
* 리눅스에서는 사용자가 커널을 직접 조작할 수 없다. 커널과 사용자사이에 명령어를 받아들이고 커널의 실행 결과를 출력하는 소프트웨어가 필요하다. 이 역할을 수행하는 소프트웨어가 바로 셸이다.
즉, 셸이란 커널의 인터페이스이다.
리눅스 사용자(직접 커널에 접근 X)
⬆️ ⬇️
커널 ⬅️ 셸
셸과 커널이 분리되어 있는 이유
- 커널을 바꾸지 않고 셸만 바꿀 수 있다.
- 리눅스 외 OS(FreeBSD, NetBSD, Solaris 등)를 사용할 때 셸만 이식하면 똑같이 사용이 가능한다.
- 셸을 사용할 때 에러가 발생하거나 지나치게 높은 부하가 발생해도 본체인 리눅스 커널에 미치는 영향을 최소한으로 한다.
- 즉, 자유도와 유연성이 높아지고, OS에 구애받지 않는다.
프롬프트
user@user-VirtualBox:~$
⬆️ ⬆️
사용자 이름 호스트 이름
일반 사용자 : @
슈퍼 사용자 : #
로그인 셸
로그인 후 처음으로 시작되는 셸을 말한다.
대화형 조작과 셸 스크립트
대화형(인터렉티브) 방식 : 명령어를 직접 입력하고 그 결과를 확인하는 조작 방식
셸 스크립트 : 실행하고 싶은 명령어들을 미리파일에 기록하고 그 파일을 셸에 넘겨주는 방식
#!/bin/ sh
today =$( date '+%d')
if [ $ today -eq 20 ]; then
echo "오늘은 20일입니다. 출근 일자를 확인해주세요"
fi
셸 종류
sh
AT&T 벨 연구소의 Steven Borune이 만들어서 본 셸(B셸)이라고도 불리며, 아주 오래전에 만들어졌다.
오래된 셸이라 기능이 적고 특히 대화형에서 사용하기 불편하다.
csh
chs도 무척 오래된 셸 중 하나로 C셸이라고 부른다.
sh보다 대화형 조작에 편리한 기능을 가지고 있지만 셸 스크립트 작성에는 적합하지 않다.
bash
sh를 바탕으로 기능이 추가된 셸이다.
대화형 조작에 필요한 기능을 갖추고 잇어 많은 리눅스에서 기본 로그인 셸로 사용한다.
셸 스크립트를 작성하는 데도 적합하다.
🔍 bash 셸을 많이 사용하는 이유
- 리눅스의 기본 로그인 셸로 사용되고 있어 활용도가 높다.
- 대화형 셸과 셸 스크립트 양쪽 모두에 적합하다.
- sh와 호환성이 있어 기존 sh 셸 스크립트를 그대로 사용할 수 있다.
- 리눅스 외 운영체제에서 사용할 수 있다.
- 사용자가 많아 관련 정보를 찾기 쉽다.
tsch
csh에 이어 개발된 C셸 계역의 셸이다. 대화형 조작에 편리한 기능을 갖추고 있다.
하지만 csh와 마찬가지로 셸 스크립트에는 적합하지 않다.
참고) C셸 계열에서는 일반 사용자 프롬프트가 $이 아닌 %이다.
zsh
최근에 개발된 셸로, bash와 tcsh의 기능에 독자적인 기능이 추가되어있다.
익숙해지면 작업 효율을 크게 높일 수 있지만, 기술을 익히는데 시간이 소요된다.
Terminal
Terminal이란 컴퓨터의 입출력만을 담당하는 전용 하드웨어를 말한다.
터미널 에뮬레이터와 셸은 완전히 다른 소프트웨어이다. 혼동하면 안됨!
만약 window에서 linux로 원격 로그인하면 터미널 에뮬레이터는 window머신에서 돌아가고, 셸은 linux머신에서 돌아간다.
'[ STUDY ] > Linux' 카테고리의 다른 글
[ 모두의 리눅스 ] 파일과 디렉터리 (0) | 2025.01.06 |
---|---|
[ 모두의 리눅스 ] 리눅스란 (1) | 2025.01.06 |
[ Linux ] 리눅스 기본 개념 & 명령어 (0) | 2024.10.08 |
[ Linux ] 가상머신에 Ubuntu Linux 설치하고 세팅하기 (2) | 2024.10.06 |
[ Linux ] Linux 용어 정리 (0) | 2024.10.03 |