》 Linux 명령어로 프로그래밍 코드 짜기
》 반복적인 작업 자동화 가능
● 실행
# 실행
sh [file name] # sh ex01.sh
# 권한 주기
chmod 755 [file name]
● 변수
》 변수명=값 (띄어쓰기 금지)
》 변수명=`명령어`
》 변수 사용 시 변수명 앞에 $ 붙여줌
test=hello
echo $test
# 출력 : hello
- 환경 변수 : 시스템 환경과 관련된 정보 저장
- 변수명이 모두 대문자
- PATH : 쉘이 명령어의 실행 파일을 찾을 때 참조하는 디렉토리 경로
- PS1 : 쉘 프롬프트 모양
- 사용자 정의 변수 : 사용자가 프로그래밍할 때 사용
- 변수명에 문자, 숫자, _ 사용 가능
- 변수명의 첫 문자는 문자 또는 _
- 특수 변수 : 특수한 의미
- 현재 쉘의 PID, 실행된 마지막 백그라운드 명령 프로세스 넘버
- 위치 매개 변수 : $0, $1~$9
- (ex) sh ex01.sh -test abcd
- $0 : ex01.sh
- $1 : -test
- $2 : abcd
● 조건문
》 기본 조건문
if [ 조건 ] # 띄어쓰기 맞춰주기
then
명령어 # 들여쓰기는 안맞춰줘도 됨
fi
》 나머지 조건문
if [ 조건 ]
then
명령어1
else
명령어2
fi
》 추가 조건문
if [ 조건1 ]
then
명령어1
elif [ 조건2 ]
then
명령어2
else
명령어3
fi
》 조건
문자열 검사 | |
str1 = str2 | 문자열이 같으면 True, 다르면 False |
str1 != str2 | 문자열이 다르면 True, 같으면 False |
str | 문자열이 비어있지 않으면 True, 비어있으면 False |
산술 비교 | |
A -eq B | (==) A와 B가 같으면 True |
A -ne B | (!=) A와 B가 다르면 True |
A -gt B | (>) A가 B보다 크면 True |
A -ge B | (>=) A가 B보다 크거나 같으면 True |
A -lt B | (<) A가 B보다 작으면 True |
A -le B | (<=) A가 B보다 작거나 같으면 True |
파일 검사 | |
-d file | directory일 때 True |
-f file | 일반 파일이면 True |
-l file | 링크 파일이면 True |
-r file | 읽기 가능하면 True |
-w file | 쓰기 가능하면 True |
-x file | 실행 가능하면 True |
-u file | SetUID 설정 파일이면 True |
-g file | SetGID 설정 파일이면 True |
-k file | Sticky Bit 설정 파일이면 True |
논리 조건 연산 | |
! | NOT 연산 |
-a | AND 연산 |
-o | OR 연산 |
● 반복문
》 For 문
#!/bin/bash
for 변수 in 범위
do
명령어
done
》 While 문
#!/bin/bash
while [ 조건 ]
do
명령어
done
● 활용
- cut
- -d : 구분자 지정
- -f : 몇 번째 필드인지 지정
- awk
- -F : cut -d랑 비슷하지만 " "를 기준으로 구분지었을 때 d는 띄어쓰기 하나를 구분자로 지정한다면 F는 공백 자체를 구분자로 지정
- wc
- -c : 문자 수
- -l : 라인 수
- sed
- -i : 변경한 내용 저장 (없으면 단순 출력)
- sed 's/[패턴1]/[패턴2]/g' [파일] : 패턴1을 패턴2로 변경
- sed '/[패턴]/d' [파일] : 패턴이 포함된 라인 삭제
- sed '/^$/d' [파일] : 공백 라인 삭제
》 root 계정의 파일시스템 메모리 사용량 현황
'CLOUD > IaC' 카테고리의 다른 글
[Redis] Master - Slave - Sentinel (0) | 2023.03.28 |
---|---|
[Shell Programming] 쉘 스크립트 안에서 쉘 스크립트 실행하기 (0) | 2023.03.27 |
[Redis] Master Clustering(3) - Slave Clustering(3) (0) | 2023.03.24 |
[Redis] Master - Slave (0) | 2023.03.24 |
[Redis] 시작하기 (0) | 2023.03.24 |