각진 세상에 둥근 춤을 추자

[Linux] 쉘 스크립트 (Shell Script) 기본 커맨드 및 파일 작성하기 본문

Linux

[Linux] 쉘 스크립트 (Shell Script) 기본 커맨드 및 파일 작성하기

circle.j 2024. 8. 19. 15:17
쉘 스크립트(Shell Script)란?

리눅스, 유닉스 등과 같은 운영 체제에서 명령어들을 자동으로 실행하기 위해 작성된 스크립트 파일이다. 
해당 스크립트 파일은 사용자가 직접 터미널에 입력하는 명령어를 모아놓은 것으로, 
한꺼번에 여러 명령어를 실행하거나 반복적인 작업을 자동화할 때 유용하다.

쉘 스크립트 파일은 일반적으로 .sh 확장자를 사용한다.

예를 들어, 간단한 쉘 스크립트 파일은 다음과 같다.

#!/bin/bash
echo "Hello, World!"
  • "#!/bin/bash" - 스크립트가 bash 쉘에서 실행될 것임을 명시
  • 'echo' - "Hello, World!" 라는 문자열을 출력하는 명령어

 


기본 커맨드 

1. 'echo'
- 메시지 또는 변수 값을 출력한다.

echo "Hello, World!"
echo $HOME  # 사용자 홈 디렉토리 경로 출력

 

2. 'cd' (change directory)
- 디렉토리를 변경한다.

cd /home/user/docs  # 지정된 디렉토리로 이동
cd ..               # 상위 디렉토리로 이동

 

3. 'ls'
- 디렉토리 내 파일과 디렉토리 목록을 표시한다.

ls                  # 현재 디렉토리의 파일 및 디렉토리 목록 출력
ls -l               # 상세 정보와 함께 목록 출력
ls -a               # 숨김 파일까지 포함한 목록 출력

 

4. 'pwd' (print working directory)
- 현재 작업 중인 디렉토리 경로를 출력한다. 

pwd  # 현재 디렉토리 경로 출력

 

5. 'cp' (copy)
- 파일 또는 디렉토리를 복사한다.

cp source.txt destination.txt  # 파일 복사
cp -r /source/ /destination/   # 디렉토리 복사 (재귀적으로)

 

6. 'mv' (move)
- 파일 또는 디렉토리를 이동하거나 이름을 변경한다.

mv oldname.txt newname.txt  # 파일 이름 변경
mv /source/file.txt /destination/  # 파일 이동

 

7. 'rm' (remove)
- 파일 또는 디렉토리를 삭제한다.

rm file.txt            # 파일 삭제
rm -r /directory/      # 디렉토리 삭제 (재귀적으로)
rm -f file.txt         # 강제로 파일 삭제 (경고 없이)

 

8. 'chmod' (change mode)
- 파일 또는 디렉토리의 권한을 변경한다.

chmod +x script.sh  # 스크립트 파일에 실행 권한 추가
chmod 755 file.txt  # 소유자에게 모든 권한, 그룹 및 다른 사용자에게 읽기/실행 권한 부여

 

9. 'chown' (change ownership)
- 파일 또는 디렉토리의 소유자와 그룹을 변경한다.

chown user:group file.txt  # 소유자와 그룹 변경

 

10. 'touch'
- 빈 파일을 생성하거나 기존 파일의 수정 시간을 변경한다.

touch newfile.txt  # 새로운 빈 파일 생성

 

11. 'mkdir' (make directory)
- 새로운 디렉토리를 생성한다.

mkdir newdir  # 새로운 디렉토리 생성
mkdir -p /parentdir/childdir  # 부모 디렉토리가 없으면 함께 생성

 

12. 'rmdir' 
- 빈 디렉토리를 삭제한다.

rmdir emptydir  # 빈 디렉토리 삭제

 

13. 'cat'
- 파일 내용을 출력하거나, 여러 파일을 하나로 합친다. 

cat file.txt  # 파일 내용 출력
cat file1.txt file2.txt > combined.txt  # 파일 합치기

 

14. 'grep'
- 파일이나 출력된 텍스트에서 특정 패턴을 검색한다.

grep "Hello" file.txt  # 파일에서 "Hello"가 포함된 줄 검색

 

15. 'find'
- 지정된 경로에서 파일이나 디렉토리를 검색한다.

find /path -name "*.txt"  # 특정 확장자를 가진 파일 검색

 

16. 'sleep'
- 지정된 시간동안 스크립트의 실행을 일시 중지한다.

sleep 5  # 5초 동안 대기

 

17. 'date'
- 현재 날짜와 시간을 출력한다.

date  # 현재 날짜 및 시간 출력

 

18. 'read'
- 사용자로부터 입력 받는다.

read userInput  # 사용자로부터 입력을 받아 변수에 저장
echo "You entered: $userInput"

 


쉘 스크립트 파일 작성하기

1. 쉘 스크립트 파일 작성하기

우선, 리눅스 터미널을 열고 쉘 스크립트 파일을 생성한다. 
예를 들어, 'test.sh'라는 파일을 만들고 편집한다.

vi test.sh

 

 

2. 스크립트 내용 작성하기

쉘 스크립트 내용을 작성한다. 

#!/bin/bash
# 간단한 테스트 스크립트

echo "안녕하세요! 이 스크립트는 정상적으로 작동하고 있습니다."
echo "현재 날짜와 시간은:"
date

  • #!/bin/bash는 이 스크립트가 bash 쉘에서 실행될 것임을 명시한다.
  • echo 명령어는 메시지를 출력한다.
  • date 명령어는 현재 날짜와 시간을 출력한다.

 

에디터는 esc > :wq! > Enter로 저장 후 종료한다. 

 

3. 쉘 스크립트 파일에 권한 부여하기 

chmod 755 test.sh

755는 소유자가 rwx (읽기, 쓰기, 실행) 권한을 가지며, 그룹과 기타 사용자에게는 r-x (읽기, 실행) 권한을 부여하는 것을 의미한다. 

 

4. 쉘 스크립트 실행하기

스크립트는 다음 명령어 중 하나로 실행한다. 

bash test.sh
sh test.sh