본문 바로가기

LINUX/기초

Shell Script 맛보기

 

 

셸 스크립트(shell script)는 셸이나 명령 줄 인터프리터에서 돌아가도록 작성되었거나 한 운영 체제를 위해 쓰인 스크립트이다. 단순한 도메인 고유 언어로 여기기도 한다. 셸 스크립트가 수행하는 일반 기능으로는 파일 이용, 프로그램 실행, 문자열 출력 등이 있다.

셸 스크립트라는 말은 유닉스 셸을 위해 쓰인 스크립트를 말하는 반면, COMMAND.COM(도스)과 cmd.exe (윈도) 명령 줄 스크립트는 보통 배치 파일이라고 불리지만 이 글에는 두 개의 속성 모두를 논한다.

.sh라는 파일 확장자를 가진 파일이 특정 종류의 셸 스크립트를 가리키는 것이 보통이지만, 대부분의 셸 스크립트는 파일 확장자를 지니지 않는다.

 

위키백과에서 따온 설명인데 뭔소린지 모르겠음.

 

셸을 통해 실행 가능한 스크립트(대본) 파일을 만든다 라고 생각하면 쉬움.

스크립트는 내가 원하는 기능을 대본 마냥 쭈욱 쓴 것 이라고 생각하셈.

더 어렵나..?

 

무튼

여태껏 파일을 만들어서 읽고(r) 쓰는(w) 것만 해왔음

실행(x)을 해볼 차례

 

0. 우선 내 셸이 무엇인지 확인해보자

echo $0

/bin/bash이 나옴. 다른 셸을 설치했다면 설치한 셸이 나올거임.

 

1. 실행해볼 파일을 만듦

touch asdf

 

2. 일단 실행해봄

./asdf (여기서 ./는 현재 디렉토리를 의미함)

쏼라쏼라 허가 거부의 오류가 뜸.

 

3. 실행가능한 파일로 바꿔줌

chmod +x asdf

 

4. 권한이 추가 되었는지 확인하고 실행해봄

ls -la asdf; ./asdf

x가 추가되었음. -rwxrwxr-x 그리고 2번의 허가 거부오류도 안남. 굿

 

5. 이제 vi 편집기로 asdf파일에 내가 원하는 기능을 가진 스크립트를 작성해주면 됨.

vi asdf

 

6. 일단 어떤 셸로 실행되는건지 알려줘야 하니까

#! /bin/bash

 

7. 이제 본격적인 스크립트 작성. 지금부터 쓰는 내용이 이 파일의 기능을 나타낸다.

내가 asdf 파일을 실행했을 때 하고 싶은 기능은 현재 디렉토리의 모든 txt파일을 backup 디렉토리에 백업하는 것이다.

>> backup이라는 디렉토리를 만들고 backup디렉토리 안에 현재 디렉토리에 있는 모든 txt파일을 복사할 것이고,

>> backup이라는 디렉토리가 이미 있다면 디렉토리를 만들지 않고 그 안에 모든 txt파일을 복사할 것이다.

라는 내용을 쓰면 된다.

if ! [ -d backup ] ; then

        mkdir backup

fi

cp *.txt backup

 

 

*설명

if (만약에) ! (반대) [ (조건) ] ; then (~라면)

          실행문 1

fi (if문 끝)

실행문 2

 

 주의점

첫줄 띄어쓰기, 실행문1 앞은 tap 

 *.txt의 * 는 와일드 카드로 "모든"을 의미 

 

만약에 조건이 아니라면 실행문 1을 실행 후 실행문 2를 실행하고

먄약에 조건이 맞다면 실행문 2만 실행

 

 

다시말해,

backup이라는 디렉토리가 없다면(있다면)

backup 디렉토리를 만들고(무시)

backup 디렉토리에 모든 txt파일을 복사한다.

 

 

작성 내용

 

8. 저장 후 나가기

:wq

 

9. asdf 를 실행해서 해당 기능이 잘 되는지 확인해보기

./asdf

 

10. 확인 작업

ls -la

drwxrwxr-x 2 root root  4096  6월 19 07:57 backup

ls -la backup

ee.txt

'LINUX > 기초' 카테고리의 다른 글

파일이동 ssh  (0) 2021.04.30
권한에 대해 깔짝 - 추후 추가  (0) 2020.06.18
Linux Directory  (0) 2020.06.18
Linux의 Kernel과 Shell이 무엇인지 아라보자  (0) 2020.06.18
Output Redirection  (0) 2020.06.15