Code States/TIL

[0313] 리눅스 운영체제 - 자동화

ki1111m2 2023. 3. 14. 10:02

학습 목표

관리자로서의 리눅스 ~ 자동화

  • 시스템 관리자가 하는 일을 이해할 수 있다.
  • 사용자 및 루트 권한에 대해 이해하고, 사용자 및 그룹 관리를 할 수있다.
  • 파일의 권한을 변경하고 관리할 수 있다.
  • 프로그램과 프로세스의 차이를 이해하고, 프로세스를 확인/종료할 수 있다.
  • 백그라운드 프로세스와 서비스를 이해하고, 관리할 수 있다.
  • cron 및 bash 스크립트를 이용해서 자동화를 할 수 있다.

자동화


  • 쉘(Shell)
    • 운영체제의 기능이나 서비스를 구현할 수 있는 명령어를 사용자에게 받아서 실행할 수 있는 인터페이스를 제공
    • 사용자의 명령어를 실행해주는 프로그램 즉, 사용자와 운영체제의 다리 역할

Getting Started


#!/bin/sh
# This is a comment!
echo Hello World        # This is a comment, too!
  • 1번 라인: 파일 실행 위치를 나타냄
  • 2번 라인: #이 붙은 라인은 주석으로, 프로그램에선 무시됨
  • 3번 라인: 코드가 짜여지는 라인
  • echo
    • “”로 묶지 않을 시, 사이에 있는 띄어쓰기는 1개만 인식
    • *만 사용할 시, 모든 파일/폴더 출력

변수


  • 변수명=변수
    • 반드시 띄어쓰기 없이 선언
    • 자료형 상관 없이 선언
    • 사용할 때는 $변수명
    • 전역변수로 사용하고 싶다면, export 변수명
  • read 변수명
    • 변수명에 변수 입력받음
  • 변수명 뒤에 추가하고 싶을 때 { }
    • 예시) USER_NAME=steve, USER_NAME_file이 만들고 싶다면?
      • touch ${USER_NAME}_file → steve_file 생성
    • 만약, USER_NAME에 공백(Steve Parker)이 들어가있다면?
      • Steve와 Parker_file로 2개의 파일 생성
      • 이를 방지하기 위하여 “ “ 사용 → “${USER_NAME}_file”

반복문


  • for문
for i in 목록 
do
	반복문 
done

 

 

  • while문
while [조건문]
do
	코드;
done
  • 콜론(:): true와 같은 기능으로 강제종료 전까지 계속 반복
#!/bin/sh
while :
do
  echo "Please type something in (^C to quit)"
  read INPUT_STRING
  echo "You typed: $INPUT_STRING"
done
  • 다른 파일에 있는 내용을 변수로 사용할 경우
#!/bin/sh
while read input_text
do
  case $input_text in
        hello)          echo English    ;;
        howdy)          echo American   ;;
        gday)           echo Australian ;;
        bonjour)        echo French     ;;
        "guten tag")    echo German     ;;
        *)              echo Unknown Language: $input_text
                ;;
   esac
done < myfile.txt	#myfile.txt에 있는 내용을 input_text의 값으로 사용

조건문


if [조건문]
then
	코드
elif [조건문]
then
	코드
else
	코드
fi
  • then은 반드시 다른 라인에 있어야 하며, 같은 라인에 쓸 경우 조건문 [ ] 뒤에 ; 붙인 후 then