2024. 1. 31. 10:31리눅스/모두의 리눅스

728x90
반응형
사용자 명령어 해석기
사용자가 프롬프트에 입력한 명령어를 해석해서 커널에게 전달하는 역할
[user@hostname ~]$ echo hello
hello

[user@hostname ~]$ date
2024. 01. 31. (수) 08:00:00 KST
  1. 키보드로 입력한 date(echo) 문자열을 받아들입니다.
  2. date(echo) 명령어를 찾습니다.
  3. 발견한 명령어를 실행합니다.
  4. 실행한 결과로 얻은 문자열을 화면에 표시합니다.

3번은 커널이 수행합니다. 커널은 CPU나 메모리 같은 하드웨어를 관리하면서 명령어를 실행하고 프로세스를 관리합니다. date라는 문자열을 키보드로 입력하고 Enter를 입력하면 커널을 직접 조작한 것은 아닙니다.

 

사용자가 직접 커널을 조작할 수 없기 떄문에 둘 사이에서 명령어를 전달하고 결과를 출력하는 소프트웨어가 필요한데 그것이 "셸"입니다.

  1. 사용자가 명령어를 입력합니다
  2. 명령어을 찾습니다
  3. 찾은 명령어를 커널에게 실행 요청을 보냅니다.
  4. 커널이 명령을 실행 후 결과를 셸에게 전달합니다.
  5. 셸은 화면에 출력합니다.

셸은 리눅스를 감싸는 역할을 합니다. 커널을 보호하기 때문에 조개 껍질이라는 이름이 붙여졌다고 볼 수 있습니다. 또한, 사용자의 의뢰(명령어)를 커널에 전달하므로 메신저 혹은 비서라고 볼 수 있습니다.

https://phoenixnap.com/kb/linux-shells

현재 사용하고있는 셸 확인 및 사용가능한 셸 확인 방법

#로그인 셸 확인
echo $SHELL

# 사용가능한 셸 목록
cat /etc/shells

셸 종류

  • sh 
    AT&T 벨 연구소의 스티븐 본이 만들어서 본 셸이라고 불림
    리눅스뿐만 아니라 FreeBSD, Solaris, HP-UX, AIX 등 여러 운영 체제에서 사용
    sh는 긴 역사를 통해 표준 셸의 지위를 가지고 있음
    현재도 셸 스크립트를 작성할 때는 sh를 사용하는 것이 일반적
    기능이 적고 대화형에서 사용하기는 불편함
  • csh 
    C셸이라고 불림
    대화형 조작에 편리한 기능을 갖춤
    셸 스크립트 작성에 적합하지 않음
  • bash
    sh 바탕으로 기능이 추가된 셸
    대화형 조작에 필요한 기능 갖추고 있음
    기본 로그인 셸로 사용하고 있음
    셸 스크립트 작성에도 적합
  • tsch
    csh에 이어 C셸 계열
    대화형 조작에 편리한 기능이 많음
    셸 스크립트에는 미적합
    일반 사용자 프롬프트가 %임
  • zsh
    비교적 최근 개발된 셸
    bash, tcsh의 기능에 독자적인 기능 추가
    다양한 기능이 있어 메뉴얼만 17개 섹션
    초보자가 바로 시작하기에는 다소 어려움
    배우는 데 시간이 걸리나, 익숙해지면 효율을 크게 높일 수 있음

https://www.javatpoint.com/linux-shell

 

일시적으로 셸 바꾸기

현재 사용 중인 셸을 sh로 변경

$ sh

sh로 바꾼 상태에서 bash 실행

$ bash

셸 위에서 기동한 셸은 로그인 셸이 아닌 비로그인 셸(일반 셸)라고 부릅니다. logout 명령어로 로그아웃이 안되며 exit로 빠져나와야 합니다.

터미널

터미널이란 컴퓨터의 입출력만을 담당하는 전용 하드웨어를 말합니다. 입력 장치인 키보드와 출력 장치인 모니터로 구성됩니다. 현재는 하드웨어 터미널 보다 소프트웨어로 구현한 터미널 에뮬레이터가 사용됩니다. 터미널 에뮬레이터는 애플리케이션으로 동작합니다. 

터미널 에뮬레이터는 입출력 화면을 제공만 하는 소프트웨어입니다. 사실 화면에 입력을 대기하고 있는 화면은 터미널 에뮬레이터 입니다.

https://www.44bits.io/ko/keyword/command-line-interface-cli-shell-and-terminal


참고사이트:

https://www.youtube.com/watch?app=desktop&v=dsUyFss2Sh4

 

반응형

'리눅스 > 모두의 리눅스' 카테고리의 다른 글

파일 조작의 기본  (1) 2024.02.12
파일과 디렉터리  (1) 2024.02.10
셸 도움 기능  (1) 2024.02.07
리눅스  (0) 2024.01.31
iptables 방화벽의 NAT 설정하기  (0) 2024.01.30