또 뭐하지

[포너블 기초] 생활코딩 리눅스 섹션 3. 쉘과 쉘스크립트 본문

I.sly()/9기 기초 - 포너블

[포너블 기초] 생활코딩 리눅스 섹션 3. 쉘과 쉘스크립트

mameul 2024. 3. 23. 08:38
728x90

SHELL VS KERNEL

우리가 입력하는 명령은 shell을 대상으로 한다. shell은 이 명령을 해석해서 kernel에게 전달한다. kernel은 이를 다시 해석하여 hardware에 전달한다.
shell과 kernel을 분리함으로써 사용자에게 맞는 shell 사용할 수 있도록 한다.

 

bash vs zsh

ehco $0 을 통해서 사용하는 shell 프로그램을 확인할 수 있다.

  • cd 예시
    • bash : 숨긴 파일까지 표시된다, 아래 zsh에서 제공하는 기능을 사용할 수 없다
    • zsh : 숨긴 파일이 보이지 않는다, 경로 자동 완성 기능이 있다(첫글자만 입력하고 tab), 파일 변경이 용이하다

Shell script

순차적으로 진행되야하는 여러 명령을 저장해둔 파일. shell script를 통해서 여러 자동화된 작업을 수행할 수 있다.

<shell script 예시>

#!/bin/bash
if ! [ -d bak ]; then
        mkdir bak
fi
cp *.log bak

bash를 실행하고, 현재 디렉토리에 bak 디렉토리가 없으면 만들고, 현재 디렉토리에 있는 log 확장자를 가진 모든 파일을 bak에 복사한다.

chmod +x backup

파일을 처음 만들면 기본적으로 실행이 되지 않기 때문에 위 코드를 이용하여 backup 파일에 실행가능한 모드를 추가한다(+x)