본문 바로가기

LINUX

[LINUX] 쉘과 쉘스크립트

Shell 쉘

껍데기, 주변

사용자가 명령을 입력하면 그 명령을 컴퓨터가 이해할 수 있도록 하는 프로그램

커널과 사용자간의 다리 역할

 

Kernel 커널

알맹이, 핵심, 코어

하드웨어를 직접적으로 제어하는 중심

 

쉘 <-> 커널 <-> 하드웨어 동작 과정

사용자가 입력한 명령을 해석해서 커널이 이해할 수 있는 방식으로 커널에게 전달

-> 커널은 하드웨어를 제어해서 어떤 처리를 수행할 수 있도록 명령

-> 하드웨어는 기계가 동작하면서 처리 결과를 커널 -> 다시 쉘 -> 우리는 결과를 볼 수 있게 됨

 

사용자는 직접 커널을 제어하기 어렵기 때문에 쉘을 통해 커널에게 전달해주는 것이다.

 

Shell과 Kernel이 분리된 이유

여러 가지의 쉘이 생길 수 있음

사용자가 선호하는 쉘을 선택하여 커널을 제어할 수 있도록 함

 

프롬프트

일반 유저는 $ 프롬프트를 사용하고, root 유저는 # 프롬프트를 사용함

 

 

쉘의 종류 - bash (배쉬쉘) zsh(지쉘)

 

부모가 동일하다. 지쉘이 좀 더 편리하다.

 

$ echo $0 --> 지금 사용하는 쉘이 무엇인지 알 수 있다.

 

bash

- 리눅스의 표준 쉘

- 우분투와 페도라에서 사용하는 쉘

 

zsh

지쉘을 설치하고 싶다! 하면 --> sudo apt-get install zsh

 

 

Shell Script 쉘 스크립트

 

순차적으로 실행되어야 하는 명령의 순서를 어딘가에 적어놓고 재사용하자! 그것이 쉘 스크립트

쉘 스크립트를 통해 자동화된 작업을 처리할 수 있다.

 

/bin

루트 디렉토리 바로 아래에 위치하며, 유닉스 계열의 탑재되어 있는 기본 프로그램들이 위치하는 디렉토리

그동안 사용했던 명령어가 사실은 폴더 형태로 존재하는 프로그램이었어 !! 대박사건 !!

 

 

backup 쉘 스크립트를 생성해보자.

 

#!/bin/bash			// bash 언어를 통해 해석되어야함
if ! [ -d bak ]; then		// if[ -d bak ] : bak 라는 디렉토리가 존재하니?
        mkdir bak		// bak 디렉토리가 없다면 만든다
fi				// 조건문 끝
cp *.log bak			// 현재 디렉토리에서 .log 확장자의 모든 파일을 bak에 복사한다

 

 

'LINUX' 카테고리의 다른 글

[LINUX] 프로세스와 실행  (0) 2021.02.01
[LINUX] 디렉토리 구조와 파일 찾기  (0) 2021.02.01
[LINUX] IO Redirection  (0) 2021.02.01
[LINUX] 리눅스 기초  (0) 2021.02.01
리눅스 기본 명령어  (0) 2021.01.16