쉘 스크립트 과정 정리
1. 선수 지식
명령어(grep, sed, awk + head, tail, sort, cut, ....)
* grep CMD
* sed CMD
# sed [-n] '1,3p' file1
# sed [-n] '/root/p' file1
# sed -n '3p' /etc/hosts
# sed '1,3d' /etc/passwd
# sed 's/root/ROOT' /etc/group
* awk CMD
# awk '/root/' file1
# awk '{print $1, $2}' file1
# awk '/root/ {print $1, $2}' file1
# awk -F: '$3 >= 1000 && $3 <= 60000 {print $1}' /etc/passwd
# df -h / | tail -1 | awk '{print $5}' | sed 's/.$//'
# ifconfig ens33 | grep broadcast | awk '{print $5}' | awk -F. '{print $4}'
# ps -elf | awk '$2 == "Z" {print $0}'
+
* sort CMD + uniq CMD
# df -k
# du -sk /var
# cd /var ; du -sk * | sort -nr | more
# sort -u file1
# sort file1 | uniq -d
# sort file1 | uniq -u
* cut CMD
(주의) 필드 구분자 : 탭
# cut -c1-5 file1
# cut -d ":" -f 1 /etc/passwd
#
* tr CMD
# cat file1 | tr "[A-Z]" "[a-z]"
# cat file1 | tr "[a-z]" "[A-Z]"
* split CMD
# split -d -l 4 file1
* paste CMD
# paste file1 file2
* head CMD
* tail CMD
* wc CMD
쉘특성(리다이렉션, 파이프, 메타캐릭터, 엘리어스, 변수, 함수, 환경파일, ...)
* 리다이렉션(Redirection)
* 입력 리다이렉션
* 출력 리다이렉션
* 에러 리다이렉션
* 파이프(pipe)
* 쉘 기능(shell function)
* 변수(Variable)
지역변수
환경변수
특수변수
* 메타캐릭터(Metacharacter)
'', "", ``, \, ;
* 엘리어스(Alias)
* 함수(Function)
# fun () { CMD; CMD; CMD; }
# fun
# typeset -f
# unset -f fun
* 환경파일
* cat CMD + here documentation(<<)
* groupping(())
# (ls; date; cal) > cmd.log
* 조건부 실행
# [ -f /etc/passwd ] && echo "[ OK ]"
# [ -f /etc/passwd ] && echo "[ OK ]" || echo "[FAIL]"
* dirname CMD/basename CMD
# dirname /etc/sysconfig/network-scripts/ifcfg-ens33
# basename /etc/sysconfig/network-scripts/ifcfg-ens33
* eval CMD
"./cmd.sh -i IP -p PORT -t 4 ....."
CMD1="./cmd.sh "
CMD2="-i IP -p PORT "
CMD3="-t 4 ....."
eval $CMD1$CMD2$CMD3$CMD4
2. 쉘 스크립트
쉘 스크립트 생성 및 실행 방법
# vi test.sh ; bash -x test.sh
# vi test.sh ; . test.sh
# vi test.sh ; chmod 755 test.sh ; ./test.sh
# vi test.sh ; chmod 755 test.sh ; ./test.sh
매직넘버(#!/bin/bash)
주석
* 한 줄 => #
* 여러 줄 => : << EOF ~ EOF
입력 & 출력
* 입력(read CMD)
* 출력(echo CMD, printf CMD)
산술연산
* expr 4 + 2
* expr 4 - 2
* expr 4 \* 2
* expr 4 / 2
* expr 4 % 2
조건문
1. if 구문
if 조건 ; then
statement
elif 조건 ; then
statement
else
statement
fi
2. case 구문
case VAR in
var1|var2) statement1 ;;
var3|var4) statement2 ;;
*) statement3 ;;
esac
반복문
* for 구문
for VAR in 변수목록
do
statement
done
3. while 구문
while 조건
do
statement
done
* 반복문 제어
break
continue
3. 쉘 스크립트 프로그램 작성
* 로그 모니터링 프로그램 제작
* 리눅스 OS 초기 설정 확인 방법
'정보보안공부 > 정보보안전문과정' 카테고리의 다른 글
정보보안 과정 Day32 : 쉘 프로그래밍 실습 2 (0) | 2020.10.21 |
---|---|
정보보안 과정 Day31 : 쉘 프로그래밍 실습 (0) | 2020.10.20 |
정보보안 과정 Day28+29 : 웹 서버 FTP 서버 구축, bash shell script (0) | 2020.10.16 |
정보보안 과정 Day26+27 (0) | 2020.10.14 |
정보보안 과정 Day25 : 윈도우 서버 관리자 시작 (0) | 2020.10.12 |