7장. 셸 스크립트 프로그래밍 (1) - 셸 스크립트 작성과 실행

728x90
반응형

출처 : https://www.youtube.com/watch?v=luGBPz3ibik&list=PLVsNizTWUw7FqN2gq79Cb3R6qkS7mqOJk&index=45

 

이번 장에서는 리눅스의 셸을 잘 활용하는 데 필요한 셸 스크립트 프로그래밍에 관해 학습한다.

 

리눅스의 셸은 명령과 프로그램을 실행할 때 사용하는 인터페이스이다. Windows의 명령 프롬프트와 비슷해 보이지만, 셸은 더 강력한 프로그래밍 기능이 있다.

 

셸의 기본

셸은 사용자가 입력한 명령을 해석해 커널에 전달하거나 커널의 처리 결과를 사용자에게 전달하는 역할을 한다. 텍스트 모드나 터미널처럼 명령을 입력하는 환경이 셸이다.

 

Rocky Linux의 bash

  • Rocky Linux에서 기본적으로 제공하는 셸은 bash(Bourne Again SHell) 셸이다.
  • bash 셸의 특징
    • Alias 기능 (명령어 단축 기능)
    • History 기능 (위/아래 화살표로 이전에 입력했던 명령어 불러오기)
    • 연산 기능
    • Job Control 기능
    • 자동 이름 완성 기능 (Tab 키)
    • 프롬프트 제어 기능
    • 명령 편집 기능
  • 셸의 명령문 처리 방법
    • (프롬프트) 명령어 [옵션...][인자...]
    • ex) # ls -l, rm -rf /mydir, find . / -name "*.conf"

 

환경 변수

  • "echo $환경변수이름" 으로 확인 가능
  • "export 환경변수=값" 으로 환경 변수의 값을 변경
  • 주요 환경변수
    •  

 

 

셸 스크립트 프로그래밍 실습

  • 리눅스의 셸 스크립트 문법은 C 언어와 유사하게 프로그래밍이 가능하다.
  • 변수, 반복문, 제어문 등의 사용이 가능하다.
  • 별도로 컴파일하지 않고 텍스트 파일 형태로 바로 실행이 가능하다.
  • nano, vi, gedit 에디터로 작성 가능하다.
  • 리눅스의 많은 부분이 셸 스크립트로 작성되어있기 때문에, 셸 프로그래밍을 공부하면 좋다.

 

셸 스크립트 작성과 실행

  • nano나 gedit으로 작성
  • 셸 스크립트 파일의 확장명은 되도록 *.sh로 해주는 것이 좋다. 그러면 파일 이름만으로 이 파일이 셸 스크립트 파일이라는 것을 알 수 있다.
  • 셸 스크립트 파일을 /usr/local/bin/ 디렉토리에 복사하고, 속성을 755로 변경해주면 모든 사용자가 스크립트를 사용할 수 있다.
  • 이 작업은 보안상 root만 수행한다.

 

실행 방법

  • sh <스크립트 파일>로 실행
  • "chmod + x <스크립트 파일>" 명령으로 실행 가능 속성으로 변경한 후, "./<스크립트파일>" 명령으로 실행

 

실습

server 가상 머신을 설정 완료 상태로 초기화하고 root 사용자로 접속한다.

 

 

터미널에 gedit name.sh 명령을 입력해 새로운 파일을 gedit 에디터로 실행한다.

 

 

간단한 셸 스크립트를 작성한다.

#!/bin/sh -> 특별한 형태의 주석(#!)으로 bash를 사용하겠다는 의미이다. 
             첫 행에 꼭 써줘야 한다.
echo "사용자 이름: " $USER -> echo는 print와 동일하다. 
                              "사용자 이름: "이 출력되고, 그 다음 $USER라는 환경변수의 내용이 출력된다.
echo "홈 디렉토리: " $HOME
exit 0 -> 종료 코드를 반환해준다. 
          다른 스크립트에서 이 스크립트를 호출한 후 제대로 실행되었는지 확인하려면 
          적절한 종료 코드를 반환하는 것이 중요하다.

 

 

sh name.sh 명령을 입력하면 위 그림과 같이 사용자 이름과 홈 디렉토리가 출력된다.

 

 

혹은 파일 자체를 실행 파일 속성으로 바꿔도 된다. chmod 명령을 입력해 모든 사용자에게 실행 권한을 부여하면 된다.

chmod +x name.sh

 

 

./name.sh 를 입력하면 실행이 된다.

 

 

변수

변수는 필요한 값을 계속 변경해 저장할 때 사용한다. 셸 스크립트의 구조는 변경할 필요가 없는데 설정해야 하는 값이 상황에 따라 다르다면, 변수에 필요한 값을 계속 바꾸는 방법으로 프로그래밍해 다양한 상황에 대처할 수 있다.

 

변수의 기본

  • 변수를 사용하기 전에 미리 선언하지 않으며, 변수에 처음 값이 할당되면서 자동으로 변수가 생성된다.
  • 모든 변수는 문자열(String)으로 취급한다. 즉, 숫자를 넣어도 문자로 취급한다.
  • 변수 이름은 대소문자를 구분한다.
  • 변수를 대입할 때 "=" 좌우에는 공백이 없어야 한다.

 

 

728x90
반응형