학습 목표
관리자로서의 리눅스 ~ 자동화
- 시스템 관리자가 하는 일을 이해할 수 있다.
- 사용자 및 루트 권한에 대해 이해하고, 사용자 및 그룹 관리를 할 수있다.
- 파일의 권한을 변경하고 관리할 수 있다.
- 프로그램과 프로세스의 차이를 이해하고, 프로세스를 확인/종료할 수 있다.
- 백그라운드 프로세스와 서비스를 이해하고, 관리할 수 있다.
- 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”
- 예시) USER_NAME=steve, 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
'Code States > TIL' 카테고리의 다른 글
[0314] (페어) 리눅스 운영체제 - 리눅스 실습 (0) | 2023.03.14 |
---|---|
[0314] 리눅스 운영체제 - 시스템 모니터링 (0) | 2023.03.14 |
[0313] 리눅스 운영체제 - 서비스 관리 (1) | 2023.03.14 |
[0313] 리눅스 운영체제 - 프로세스 관리 (1) | 2023.03.14 |
[0310] 리눅스 운영체제 - 관리자로서의 리눅스 (0) | 2023.03.10 |