목차

     

     

     

     

     

    1. 문자열얼 터미널 화면에 출력하는 명령어 ( echo )

    문자열을 터미널 화면에 출력하는 명령어 ( echo ) 

    리눅스 명령어에서  echo  는 Java에서의  System.out.println()  , Javascript 에서의  console.log()  와 같은 역할을 하는 명령어이다.

     

    $ echo 1234
    $ echo abcd # 숫자, 문자 상관없이 전부 다 입력 가능
    $ echo study linux # 띄어쓰기가 있어도 입력 가능
    $ echo "ㄱㄴㄷㄹ" # 쌍따옴표로 묶어서도 입력 가능

     

     


     

    2. 쉘 스크립트 파일 작성/실행 방법

    쉘 스크립트 파일 작성/실행 방법

    1) 파일명을  .sh  로 끝나게 작성하기

    $ vi first.sh

     

    파일명이  .sh  로 끝나게 작성하지 않아도 쉘 스크립트는 정상적으로 작동한다. 하지만 파일명만 보고 쉘 스크립트 파일인지 바로 알아볼 수 있게, 파일명을  .sh  로 끝나게 작성하는 것

     

     

    2) 파일 첫 줄에  #!/bin/bash  작성하기

    first.sh

    #!/bin/bash

     

     위 코드는 해당 스크립트를 어떤 쉘(shell) 로 실행할 지를 명시하기 위해 작성한다. 구체적으로 말하면 '이 파일은 bash 쉘로 해석해서 실행하라' 라는 의미이다.
    쉘(shell) 이 뭔지, 다양한 쉘(shell) 에는 어떤 것들이 있는지는 다음에 알아보기로 하자.

     

     

    3) 자동으로 실행시키고 싶은 명령어들 순서대로 입력하기

    first.sh

    #!/bin/bash
    echo 1
    echo 2
    echo 3...

     

    위와 같이 입력하고 파일을 저장하고 나오자.

     

     

    4) 쉘 스크립트 파일 실행하기

    아래와 같이 실행시키고자 하는 파일의 경로를 명령어로 입력하면 된다.

    $ ./first.sh

     

    하지만 명령어를 입력해보면  Permission denied  라고 에러가 뜬다.

     

     

    Permission denied 에러 분석하기

    $ ls -l first.sh # first.sh 에 대한 파일 세부 정보 확인하기

     

     first.sh 파일의 권한이  rw-rw-r--  으로 설정되어있다. 따라서 ubuntu 사용자로 접근하면  rw-  권하만 가지고 있고  에 대한 권한이 없으므로 실행되지 않는다. 

    아래와 같이  chmod  를 이용하여 권한을 변경하자.

    $ chmod +x first.sh  # 모든 사용자에게 실행 권한(x) 을 추가
    
    $ ls -l first.sh # 권한 확인

     

     

    다시 쉘 스크립트 파일을 실행 해보자.

     

     

    정상적으로 쉘 스크립트 파일이 실행됐음을 확인할 수 있다. 쉘 스크립트 파일에 작성한 명령어들이 순차적으로 실행 되었다.

     

     

    쉘 스크립트의 역할

    위에서 처럼 쉘 스크립트는 작성한 리눅스 명령어들을 순서대로 실행시키는 역할을 한다. 이 덕분에 여러 복잡한 명령어들을 쉘 스크립트 파일 하나로 간단하게 실행시킬 수 있다. 그래서 어떤 작업을 자동화하기 위해 쉘 스크립트를 활용한다.

     

     


     

    3. 쉘 스크립트를 통해 자동화 해보기

    'git pull 받아오기 → Spring Boot 빌드 → 빌드된 jar 파일 실행' 의 과정을 자동화 해보기

    백엔드 서버를 배포하는 과정을 자동화 해보자. 수동으로 백엔드 서버를 배포할 때 입력하는 리눅스 명령어를 차례대로 쉘 스크립트 파일에 작성하면 된다.

     

    1. 쉘 스크립트 파일 생성

    $ cd ~
    $ vi deploy.sh

     

     

    2. 쉘 스크립트 파일 작성

    #!/bin/bash
    
    echo "----git pull 받아오기----"
    cd /home/ubuntu/linux-springboot
    git pull origin main
    
    echo "----빌드하기----"
    ./gradlew clean build
    
    echo "----빌드된 jar 파일을 백그라운드로 실행시키기----"
    cd build/libs
    nohup java -jar linux-springboot-0.0.1-SNAPSHOT.jar >> app.log 2>&1 &
    
    echo "----Spring Boot 서버 실행 완료----"

     

     

    3. 쉘 스크립트 실행시키기

    $ ./deploy.sh

     

     

    4. Spring Boot 서버 실행되었는지 확인하기

     

     

     

    + Recent posts