퐈니썬's LIfe - 잘 실패하자 RSS 태그 관리 글쓰기 방명록
리눅스 (2)
2021-07-14 14:26:42
728x90
반응형

쉘스크립트를 사용하다보면, 반복적인 작업이나, 자주 사용되는 작업을 쉘프로그램으로 만들때가 있습니다.

이런 경우 때에 따라 입력을 받아야하는 경우도 있는데요!

제가 쉘스크립트에서 어떻게 사용자의 입력을 받고 처리하는 지에 대해 포스트 하겠습니다.

 

주로 "case"와 "read"를 조합하여 많이 사용합니다.

 

01. case 사용법

case는 "특정 경우"에 action 취하게 하는 역할을 합니다.

<문법>
case 문자열 in 
    경우1) 명령어1;;
    경우2) 명령어2;;
    ...
   esac

문자열이 경우1과 같으면 명령어1을 실행하고, 문자열이 경우2와 같으면 명령어2를 실행해!!...

이런 식인겁니다.

쉘스크립트에서 if문과 같이 case문도 끝날때는 case를 거꾸로 "esac"를 작성해야합니다!

 

01.1. 충족한 경우에 명령어 여러개 실행하기

어떤 경우를 만족하였을때, 여러개의 명령어가 실행되어야 한다!

case 문자열 in
	경우1)
    명령어
    명령어
    명령어
    ...
    경우2)
    명령어
    명령어
    명령어
    ...
    * ) 
    명령어
    명령어
    명령어
    ...
    
esac

 

01.2. case문을 통해 프로그램의 -help 만들기

위를 응용하여 어떤 프로그램의 사용법이나, 설명, 입력변수에 대한 설명 등등을 만들어 볼 수 있습니다.

#!/bin/bash
PROGRAM="$0"
VERSION="0.0.1"
export USERNAME=`logname`

Usage()
{	
    echo  "                                            "  	
    echo  "Usage: $0 TEST"
    echo  "                                            "  
    echo  "    --version | -v  : Print out version"	
    echo  "    --help    | -h  : Print out this help message"	
} 


while true
do

   case "$1" in 
   --version | -v)
	echo -e "$0 version"
	echo -e ${VERSION}
	exit 0
	;;
   --help | -h)
	Usage
	exit 0
	;;
   -*)
	echo Unrecognized flag : "$1"
	Usage
	exit 0
	;;
   *)
	break
	;;
   esac
done

 

-h를 입력하든, -help를 입력하든 작성된 Usage()를 호출할수 있고, -v, -version을 입력하면 버전에 대한 정보를 반환할 수 있습니다.

 

02. read 사용법

read는 "사용자 입력"을 받을 수 있는 명령어입니다.  굉장히 유용해요!

<문법>
read 입력변수

<예시>
echo "사용자의 이름은 무엇입니까"
read username
echo "사용자의 이름은 ${username}입니다."

##출력
사용자의 이름은 무엇입니까
panython
사용자의 이름은 panython입니다.

 

03. case 문과 read 명령어를 이용한 쉘 프로그램 사용 예제

간략하게 두 가자의 사용법을 확인해보았습니다.

저는 이 두 가지를 조합해서 유저에게 어떤 행동에 대하여 의사를 물어볼때 사용합니다.

 

사용 예제는 아래와 같습니다.

 

<예제>

#!/bin/bash

read -p "재부팅을 진행하시겠습니까?[y/n] :" yn
case $yn in
	[Yy]* ) echo "재부팅을 합니다." && sudo -S reboot;;
	[Nn]* ) echo "재부팅을 하지 않습니다.";;
	* ) echo "y 나 n로 입력해주십시오.";;
esac

 

프로그램 설치후, 컴퓨터를 재부팅 해야할때 해당 코드를 사용하는데요!

read를 통해 yn이라는 문자열을 받고 이 문자열이 y인지 n인지에 따라 명령어가 실행 될 수 있도록 합니다!!

여기 나름의 팁은 [Yy], [Nn]과 같이 사용하면, 대소문자에 대해 인식이 가능합니다!

 

 

 

항상 배우고 싶습니다! 많은 피드백 주시면 감사하겠습니다.

 

728x90
반응형
2021-02-23 18:54:52
728x90
반응형

1장. CentOS 7 Linux 얻기

CentOS는 "The Community ENTerprise Operating System"의 약자로 Red Hat 계열의 리눅스와 완전하게 호환되는 무료 기업용 리눅스 운영체제 입니다. 서버 하드웨어 자원 및 프로세스를 관리하기 위해서는 반드시 필요한 소프트웨어 입니다. 부팅 USB, CD나 DVD를 가지고 계시다면, 바로 "2장 CentOS 7 Linux 설치" 로 이동하십시오.

만약 부팅 USB, CD나 DVD를 가지고 계시지 않다면, 아래 링크를 통해 ISO 이미지 파일을 다운로드 하실 수 있습니다. DVD ISO 설치를 권장합니다.

CentOS Mirror

  • DVD ISO : CentOS의 최소한 패키지와, 일반패키지를 포함해 선택 가능한 파일 (권장)
  • Everything ISO : CentOS와 관려된 모든 패키지가 포함된 파일
  • Minimal ISO : CentOS를 사용하기 위한 최소한 패키지만 포함한 파일

ISO 이미지 파일을 다운로드 한 후, 다음을 수행하여 부팅 USB를 제작 할 수 있습니다.

  1. 부팅 USB 제작 유틸리티인 Rufus 를 다운로드 받습니다. (htps://rufus.ie/참조)
  2. Rufus 실행하여 장치 목록에 설치할 USB 장치를 선택합니다.
  3. 부트 선택 항목에 [선택] 목록을 통하여 설치하고자하는 ISO를 지정합니다.
  4. 시작 버튼을 누르고 상태란 아래에 완료가 되면 부팅 USB 제작이 완료됩니다.

그림 1.1. Rufus 부팅 USB 제작 설정 완료 화면

2장. CentOS 7 Linux 설치

CentOS 7 Linux DVD나 최소 부트

  1. 매체에서 설치 프로그램을 시작하려면, 다음 절차를 따르십시오:
  2. 설치에 필요하지 않는 외부 FireWire나 USB 디스크의 연결을 모두 해제하십시오.
  3. 컴퓨터 전원을 켜십시오.
  4. 미디어(부트매체; 부팅 USB..)를 컴퓨터에 삽입하십시오.
  5. 컴퓨터 전워을 켜십시오.

미디어에서 부팅을 하기 위해서 특별한 키나 키조합을 눌러야 할 필요가 있습니다. 대부분의 컴퓨터나 서버에서 컴퓨터를 킨 직후 화면에 짧은 메세지가 나타납니다. "Press F10 to select boot device" 과 같은 문장이 전형적인 예입니다. 실제로 구체적인 메세지나 눌러야 할 키의 종류는 컴퓨터나 서버에 따라 달라질 수 있습니다. 해당 컴퓨터나 서버의 문서를 참조하십시오.

2.1. CentOS 7 Linux 시스템 부트

부트 미디어는 몇 가지 옵션과 함께 화면에 부트 메뉴를 표시합니다. 만약 60초간 아무런 키를 누르지 않는다면, 기본적으로 [Test this media & Install CenOS 7] 항목으로 진입합니다. DVD를 체크할 필요성이 없기 때문에, [Install CentOS 7] 항목으로 진입합니다.

그림 2.1 CentOS 7 Linux 부팅 화면

2.2 CentOS 7 Linux 설치 가이드

CentOS 7 Linux 설치 환경은 그래픽 환경으로 표기됩니다. 해당 섹션부터 CentOS 7 Linux 설치 환경에 대한 설명과 절차를 기술합니다.

2.2.1 설치과정 언어 설정

마우스를 사용하여, 설치 과정의 기본값으로 사용하고자 하는 언어를 선택하실 수 있습니다. (그림 2.2 참조)

본 가이드에서는 영문으로 진행합니다. 선택을 마치셨으면, Continue를 누르고 계속 진행합니다.

그림 2.2 CentOS 7 Linux 언어설정 화면

2.2.2 설치 옵션 화면

마우스를 사용하여, 설치 옵션을 설정하실 수 있습니다. 설치 옵션 화면은 아래의 내용을 참조하십시오. (그림 2.3 참조)

  • DATE & TIME : OS상에서의 시간을 설정.
  • KEYBOARD : 키보드 언어 설정
  • LANGUAGE SUPPORT : OS 시스템 언어 설정
  • INSTALLATION SOURCE : 설치 소스 설정 (기본값: DVD설정)
  • SOFTWARE SELECTION : 서버 설치 환경 설정 (필요한 패키지 선택가능)
  • INSTALLATION DESTINATION : OS 설치 저장소 설정
  • NETWORK & HOSTNAME : 네트워크 및 유저 설정

그림 2.3 CentOS 7 Linux 설치 옵션설정 화면

2.2.3 DATE & TIME, KEYBOARD, LANGUAGE SUPPORT 설정

마우스를 사용하여, 설치 옵션을 설정하실 수 있습니다. 해당 옵션들은 사용자에 따라 선택하시면 됩니다. DATE & TIME의 경우 추후 Network Time protocol 설저을 통해 동기화가 가능합니다.

2.2.4 INSTALLATION SOURCE 설정

설치 소스를 어떻게 설정 할지에 대한 항목입니다. 마우스를 사용하여, 설치 옵션을 설정하실 수 있습니다. 기본적으로 DVD로 설정되어있습니다. 본 가이드에서는 부팅 USB로 진행하므로 별도의 설정이 필요하지 않습니다. (그림 2.4 참조)

그림 2.4 CentOS 7 Linux Installation source 설정 화면

2.2.5 SOFTWARE SELECTION 설정

CentOS 7 Linux의 설치 환경일 설정하는 항목입니다. OS 설치의 목적에 따라 Base Environment를 설정하고, Add-Ons for selected Environment 목록을 통해 필요한 패키지를 설정하도록 합니다.

본 가이드에서는 UI 환경을 사용하고자, Base Environment는 "GNOME Desktop"을 설정하고, 추가적인 패키지는 설정하지 않도록 하였습니다. (그림 2.5 참조)

그림 2.5 CentOS 7 Linux software selection 설정 화면

2.2.6 INSTALLATION DESTINATION 설정

CentOS 7 Linux의 설치 저장소를 설정하는 항목입니다. 기본적으로 Local Standard Disks 항목을 통해 설치하고자 하는 disk를 설정합니다. 설정 후에 partitioning을 하여 설치를 합니다.

특별히 파티션을 정할 필요가 없다면, "Automatically configure partitioning." 으로 설정하여 설치를 진행하십시오. (그림 2.6 참조)

설정이 완료되면, "Begin Installation" 을 클릭하여 설치를 진행하십시오. (그림 2.7 참조)

그림 2.6 CentOS 7 Linux Installation destination 설정 화면

그림 2.7 CentOS 7 Linux 설치 시작

2.2.7 슈퍼유저(super user) 암호 설정 및 계정 생성

  1. 슈퍼 유저(super user) 암호 설정 : 시스템 관리 및 프로세스에서 중요한 슈퍼유저 계정은 루트계정으로 모든권한을 가진 계정입니다. "ROOT PASSWORD" 를 통해 암호를 설정합니다. 차후 관리하면서 터미널 커맨드라인을 통해 변경이 가능합니다. (그림 2.8 참조)
  2. 계정 생성 : CentOS 7 Linux는 hostname 형태의 짧은 호스트 이름으로 물어봅니다. 이를 계정이라고 지칭합니다. 많은 네트워크 연결된 시스템에서 자동적으로 도메인명을 제공해서, 사용자는 호스트명만 입력하도록 돕는, DHCP(Dynamic Host Configuration Protocol) 서비스를 제공합니다. 계정 생성은 이후에 서버로의 네트워크 접속에 중요합니다. (그림 2.8 참조)

그림 2.8 CentOS 7 Linux 계정 설정

2.2.8 라이센스 동의

계정 생성 이후에 "LICENSE INFORMATION" 항목을 클릭합니다. 이 화면은 CentOS 7 Linux의 전체 라이센스 항목을 표시합니다. (그림 2.9참조)

그림 2.9 CentOS 7 Linux 라이센스 화면

라이센스 약관에 동의한다면, "약관에 동의합니다."를 선택하시고 "완료"를 클릭하십시오.

2.2.9 CentOS 7 Linux 설치완료

설치가 완료 된 후에, 기본 설정 확인을 위한 창들이 나타납니다. 해당 항목들 확인하고 "NEXT" 를 클릭해주십시오. (그림 2.10 참조)

그림 2.10 CentOS 7 Linux 설치 죄종단계

그림 2.11 CentOS 7 Linux 바탕화면

728x90
반응형