1. 쉘 스크립트 파일 작성/실행하는 법
1) 파일명을 .sh 로 끝나게 작성하기
- Ubuntu
ubuntu@ip-172-31-39-75:~$ vi first.sh
파일명이 .sh 로 끝나지 않아도 쉘 스크립트는 정상 작동하지만, 파일명만 보고도 쉘 스크립트 파일인지 알 수 있도록 .sh 로 끝나게 작성한다.
2) 파일 첫 줄에 #!/bin/bash 작성하기
- Ubuntu vim
#!/bin/bash
위 코드는 해당 스크립트를 어떤 쉘(shell)로 실행할 지 명시하기 위해 작성한다. 지금은 "쉘 스크립트를 작성할 때 첫 줄에 쓰는 코드" 라고만 알고 넘어간다.
3) 자동으로 실행시키고 싶은 명령어들 순서대로 입력하기
쉘 스크립트 파일은 명령어들을 자동으로 알아서 실행시켜주는 역할을 한다.
- Ubuntu vim
#!/bin/bash
echo 1
echo 2
echo 3...
~
~
~
~
:wq
명령어를 입력한 후 저장한다. 작성이 잘 되었는지 확인한다.
- Ubuntu
ubuntu@ip-172-31-39-75:~$ cat first.sh
#!/bin/bash
echo 1
echo 2
echo 3...
4) 쉘 스크립트 파일 실행하기
쉘 스크립트 파일을 실행시키는 방법은, 실행시키고자 하는 파일의 경로를 명령어로 입력하면 된다.
- Ubuntu
ubuntu@ip-172-31-39-75:~$ ./first.sh
-bash: ./first.sh: Permission denied
명령어를 입력하니 Permission denied 에러가 발생한다. 왜 Permission denied 에러가 발생했는지 분석해본다.
2. Permission denied 에러 분석하기
- Ubuntu
ubuntu@ip-172-31-39-75:~$ ls -l
total 88
-rw-rw-r-- 1 ubuntu ubuntu 124 Nov 11 13:33 all.txt
-rw-rw-r-- 1 ubuntu ubuntu 53 Oct 25 08:48 app.txt
drwxrwxr-x 4 ubuntu ubuntu 4096 Oct 22 13:47 awesome-service
-rw-rw-r-- 1 ubuntu ubuntu 13 Nov 10 10:04 directory.txt
-rw-rw-r-- 1 ubuntu ubuntu 48894 Oct 26 12:22 dummy.txt
-rw-rw-r-- 1 ubuntu ubuntu 154 Nov 12 13:12 error.txt
-rw-rw-r-- 1 ubuntu ubuntu 36 Dec 1 12:54 first.sh
drwxrwxr-x 7 ubuntu ubuntu 4096 Nov 13 11:59 linux-springboot
-rw-rw-r-- 1 ubuntu ubuntu 0 Nov 11 13:26 list.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 Nov 11 12:50 list2.txt
-rw-rw-r-- 1 ubuntu ubuntu 51 Nov 11 13:11 list3.txt
-rw-rw-r-- 1 ubuntu ubuntu 0 Nov 11 13:17 list4.txt
-r--r--r-- 1 ubuntu ubuntu 0 Nov 3 13:41 myfile.txt
drwxrwxr-x 3 ubuntu ubuntu 4096 Oct 20 14:11 new-box
-rw-rw-r-- 1 ubuntu ubuntu 26 Nov 12 13:03 result.txt
ubuntu@ip-172-31-39-75:~$ ls -l first.sh
-rw-rw-r-- 1 ubuntu ubuntu 36 Dec 1 12:54 first.sh
first.sh 파일 권한을 살펴본다.
파일 유형은 일반 파일, 소유자가 ubuntu, 소유 그룹이 ubuntu, 파일 권한은 rw-rw-r-- 로 설정되어 있다. ubuntu 사용자로 접근하면 rw- 권한만 가지고 있고 x 에 대한 권한은 가지고 있지 않다. 따라서 쉘 스크립트 파일 실행시 Permission denied 에러가 발생한 것이다.
모든 사용자에 대해 실행 권한(x)을 부여하려면 chmod 775 first.sh 명령어를 입력하면 된다.
그런데 명령어를 입력하기 위해 바꿀 권한을 숫자로 계산하는게 어렵고 귀찮을 때가 있다. 따라서 조금 더 쉽게 사용할 수 있는 명령어를 사용한다.
- Ubuntu
ubuntu@ip-172-31-39-75:~$ chmod +x first.sh
ubuntu@ip-172-31-39-75:~$ ls -l first.sh
-rwxrwxr-x 1 ubuntu ubuntu 36 Dec 1 12:54 first.sh
chmod +x first.sh 명령어에서 +x 는 모든 사용자에게 실행 권한(x)을 추가(+)하겠다는 의미이다.
실행 권한이 잘 적용된 것을 확인할 수 있다.
쉘 스크립트 파일을 실행시켜본다.
- Ubuntu
ubuntu@ip-172-31-39-75:~$ ./first.sh
1
2
3...
쉘 스크립트 파일에 작성한 명령어들이 순차적으로 실행된 것을 확인할 수 있다.
3. 쉘 스크립트의 역할
쉘 스크립트 파일은 쉘 스크립트에서 작성한 리눅스 명령어를 순서대로 실행시키는 역할을 한다. 이 덕분에 여러 복잡한 명령어들을 하나의 쉘 스크립트 파일로 간단히 실행시킬 수 있다. 그래서 어떤 작업을 자동화할 때 쉘 스크립트를 많이 활용한다.
참고링크 : https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90%EB%8F%84-%EC%9D%B4%ED%95%B4%ED%95%A0-%EC%88%98-%EC%9E%88%EB%8A%94-%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%9E%85
비전공자도 이해할 수 있는 리눅스 입문/실전| JSCODE 박재성 - 인프런 강의
현재 평점 5.0점 수강생 316명인 강의를 만나보세요. 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 '리눅스 입문' 강의를 만들어봤습니다! 리눅스를 처음 배우시는 분, Per
www.inflearn.com
'강의 실습 > 비전공자도 이해할 수 있는 리눅스 입문 실전' 카테고리의 다른 글
| [참고] 쉘 스크립트 공부 지침 (0) | 2025.12.03 |
|---|---|
| [실습] 'git pull 받아오기 → Spring Boot 빌드 → 빌드된 jar 파일 실행'의 과정을 자동화하기 (0) | 2025.12.02 |
| 문자열을 터미널 화면에 출력하는 명령어 (echo) (0) | 2025.11.30 |
| 로그 실시간으로 확인하는 법 (tail -f) (0) | 2025.11.29 |
| 컴퓨터가 느려질 때 CPU, Memory 성능 체크해서 원인 파악하기 (top) (0) | 2025.11.28 |
댓글