본문 바로가기

Program/토스뱅크 사이버보안 엔지니어 부트캠프(공격&방어 기술)

[Linux] 쉘 프로그래밍

1. 변수

1.1 환경 변수(Environment Variables)

쉘 환경과 관련한 정보를 저장하는 변수

쉘에 의해 정의되고 사용자가 변경 가능

변수명 설명
PATH 쉘이 명령어를 찾을 때 참조하는 디렉토리 경로
HOME 로그인시 사용자의 홈디렉토리
PS1 쉘 프롬프트
TERM 터미널 이름
SHELL 쉘 종류
LOGNAME 로그인 사용자 계정

 

 

1.2 사용자 정의 변수(User Defined Variables)

사용자가 정의해서 사용 가능한 변수

 

 

1.3 특수 변수(Special Variables)

쉘의 수행을 돕는 변수

쉘에 의해 설정되며 읽기전용으로 사용

$ 변수명 설명
$ $ 현재 쉘의 PID
$ ? 실행된 마지막 명령의 종료 상태
$ # 위치 매개변수의 수(아규먼트의 총 개수)
$ - 쉘에 설정된 현재 플래그
$ ! 실행된 마지막 백그라운드 명령의 프로세스 넘버
$ * $1부터 $n까지 모든 매개 변수 목록
$ @  

 

 

1.4 위치 매개 변수(Positional Parameter)

쉘 스크립트 수행 시 전달 받는 위치 아규먼트

변수명 설명
$0 명령어
$1 - $9 위치 매개 변수 1-9

 

 

 

2. 조건문

2.1 test

test [expression]
[expression]

조건문을 검사하여 조건의 결과가 참이면 0, 거짓이면 1을 반환한다.

 

 

2.2 문자열 검사

비교 설명
str1 = str2 같으면 true, 다르면 false 반환
str1 != str2 다르면 true, 같으면 false 반환
str Null이 아니면 true, Null이면 false 반환
-n str 문자열의 길이가 0이 아니면 true, 0이면 false 반환
-z str 문자열의 길이가 0이면 true, 0이 아니면 false 반환

 

 

2.3 산술 비교

비교 해석 설명
A -eq B equal then A와 B가 같으면 true 반환
A -ne B not equal to A와 B가 다르면 true 반환
A -gt B greater than A와 B보다 크면 true 반환
A -ge B greater than or equal to A와 B보다 크거나 같으면 true 반환
A -lt B less than A와 B보다 작으면 true 반환
A -le B less than or equal to A와 B보다 작거나 같으면 true 반환

 

 

2.4 파일 검사

파일 검사 file 결과
-d file 디렉토리파일이면 ture 반환
-f file 일반파일이면 ture 반환
-b file 블록파일이면 ture 반환
-c file 원시파일(캐릭터파일)이면 ture 반환
-l file 심볼릭 링크 파일이면 ture 반환
-r file 파일 읽기가 가능하면 ture 반환
-w file 파일 쓰기가 가능하면 ture 반환
-x file 파일 실행이 가능하면 ture 반환
-s file 파일이 존재하면서 크기가 0이 아니면 ture 반환
-p file 파이프 파일이면 ture 반환
-u file SetID 설정 파일이면 ture 반환
-g file SetGID 설정 파일이면 ture 반환
-k file Stickybit 설정 파일이면 ture 반환

 

 

2.5 논리 연산자

논리 연산자 설명
! NOT
-a AND
-o OR
() 우선순위 연산

 

 

3. 제어문

3.1 if~then~elif~else~fi 문

if 조건
then
   명령1
elif 조건
then
   명령2
...
else
   명령n
fi

- 예시

 

 

3.2 case 문

case variable in
패턴1)
	명령1 ;;
패턴2)
	명령2 ;;
...
*)
	명령n ;;
esac

 

- 예시

 

 

4. 반복문

4.1 for

for 변수 [in][값]
do
  명령
done

 

 

4.2 while

whle 조건
do
  명령
done

 

 

4.3 until

until 조건
do
  명령
done

 

 

5. 내부 명령어

내부 명령어 설명 비고
exit 쉘 스크립트 종료  
continue 진행 중인 작업을 중단하고 반복문 처음으로 이동 반복문에서 사용
break 반복을 종료하고 done 다음 명령을 실행 반복문에서 사용
return 쉘 함수 종료 시 결과 값 반환  
read 표준입력에서 입력 받아 변수에 할당  
expr 수식의 결과 출력