Presentation is loading. Please wait.

Presentation is loading. Please wait.

6장 리눅스 쉘 정보보안 연구실 김동민.

Similar presentations


Presentation on theme: "6장 리눅스 쉘 정보보안 연구실 김동민."— Presentation transcript:

1 6장 리눅스 쉘 정보보안 연구실 김동민

2 목차 리눅스 쉘 개요 쉘 스크립트 만들기 쉘의 기초 문법 쉘 스크립트 연습

3 리눅스 쉘 개요

4 리눅스 쉘 개요 Linux Shell ? Compiler 리눅스 커널과 사용자 프로그램 중간에 위치한 명령어 해석기
사용자 프로그램(사용자)에서 실행한 명령어를 기계어로 변경하여 커널에 전달 Compiler 작성된 소스코드를 기계어로 변경하여 컴퓨터가 처리할 수 있도록 변경 리눅스 커널의 응답 User Program Shell Linux Kernel 사용자 프로그램의 요청

5 리눅스 쉘 개요 쉘의 종류 Bash Shell Bourne Shell Korn Shell C Shell TC Shell
Bourne Agine Shell Bash Shell 가장 많이 사용되는 리눅스 쉘 Bourne Shell 을 기반으로 하며 C Shell 과 Korn Shell 의 장점을 결합

6 리눅스 쉘 개요 CentOS 5.6 에서 기본적으로 제공되는 쉘 현재 자신이 사용하고 있는 쉘 확인
# cat /etc/shells 현재 자신이 사용하고 있는 쉘 확인 SHELL 변수에 저장된 값을 확인 # echo $SHELL

7 리눅스 쉘 개요 쉘 변경(임시적 변경) 단, SHELL 변수의 값이 변경되는 것은 아님 원하는 쉘 이름을 사용하여 변경 가능
exit 명령어를 통해 기존의 Bash Shell 로 돌아올 수 있음 단, SHELL 변수의 값이 변경되는 것은 아님

8 리눅스 쉘 개요 쉘 변경(영구적 변경) chsh 명령어를 사용하여 영구적으로 쉘 변경 가능
변경 이후 ssh 명령어를 사용하여 재 로그인 필요

9 리눅스 쉘 개요 쉘 환경 변수 현재 환경변수 값 확인 환경변수 변경 쉘 환경을 설정하는 방법
사용자가 원하는 환경으로 설정 가능 현재 환경변수 값 확인 # echo $[환경변수이름] # printenv [환경변수이름] 환경변수 변경 # export [환경변수이름] = [변수 값]

10 리눅스 쉘 개요 쉘의 유용한 기능 명령 자동완성 기능 명령 히스토리 기능 메타문자 사용 기능 리다이렉션 기능
명령어의 일부만 알고 있을 경우 명령어의 길이가 길 경우 디렉토리 자동완성에도 가능 <tab> 키를 사용

11 쉘 스크립트 만들기

12 쉘 스크립트 만들기 쉘 스크립트란? 쉘 스크립트 장점 쉘을 통해 프로그램을 만드는 방법
리눅스에서 제공하는 명령어를 통해 프로그램 만들기 DOS 에서 작성 가능한 Batch(.bat 파일)와 유사한 기능 쉘 스크립트 장점 C언어와 유사한 형태의 프로그래밍 가능 리눅스 환경의 명령어나 환경 변수 지정을 적용 가능하다

13 쉘 스크립트 만들기 변수 변수 설정 환경변수를 사용한 변수 설정 프로그래밍 언어에 있어 어떤 값을 담을 수 있는 공간
변수이름=값 대소문자 구별 환경변수를 사용한 변수 설정 # 변수이름=값 # export [변수이름]

14 쉘 스크립트 만들기 VI 에디터를 통해 쉘 스크립트 파일 생성 쉘 스크립트 파일은 확장자를 .sh 로 생성
파일의 가장 첫 라인은 어떤 쉘을 사용하는지 표기 Bash Shell : /bin/bash C Shell : /bin/csh Korn Shell : /bin/ksh 작성된 쉘 스크립트 파일은 sh 명령어를 통해서 실행

15 쉘 스크립트 만들기 표준입력을 통해 사용자로부터 입력 값을 받는 쉘 스크립트 작성 read 문을 사용하여 작성

16 쉘 스크립트 만들기 쉘 스크립트 파일에서 리눅스 명령어 사용하기 1 mkdir을 사용한 디렉토리 생성

17 쉘 스크립트 만들기 쉘 스크립트 파일에서 리눅스 명령어 사용하기 2
chmod 명령어를 사용하여 생성된 디렉토리의 권한 설정하기

18 쉘의 기초 문법

19 쉘의 기초 문법 쉘 프로그래밍 문법 교재에서 제시한 문법의 종류
다른 프로그래밍 언어와 마찬가지로 쉘 스크립트도 문법을 알아야 작성 가능하다 비교적 쉽다고 한다 교재에서 제시한 문법의 종류 비교 파일 연산 출력 입력 제어문 관계 연산자

20 쉘의 기초 문법 크기 비교 문법 표현 식 의미 [ 변수A –gt 변수B ] A > B [ 변수A –lt 변수B ]
[ 변수A –ge 변수B ] A >= B [ 변수A –le 변수B ] A <= B [ 변수A –eq 변수B ] A == B [ 변수A –ne 변수B ] A != B

21 쉘의 기초 문법 문자열 비교 문법 표현 식 의미 “문자열1” = “문자열2” 두 문자열이 같으면 true
“문자열1” ! “문자열2” 두 문자열이 다르면 true -z “문자열” 문자열의 길이가 0이면 true -n “문자열” 문자열의 길이가 0이 아니면 true

22 쉘의 기초 문법 문자열 비교 문법 예제 두 개의 문자열을 입력 받아 서로 비교하는 프로그램
처음 문자열의 길이가 0이라면 비교하지 않고 종료

23 쉘의 기초 문법 파일 다루기 변수에 파일의 경로를 설정하여 해당 파일을 다루는 문법
표현 방식에 따라서 파일과 디렉토리를 다룰 수 있다

24 쉘의 기초 문법 숫자 계산 문법 expr 문법 expr 명령어를 사용하여 계산 기본적인 사칙연산과 나머지 연산이 가능하다
연산자와 피 연산자 사이엔 공백이 필요하다 # expr 좀 까다로운 문법을 가진다 expr 문법 곱하기 기호와 연산의 우선순위를 표현하는 괄호기호의 사용이 좀 특별함 10 \* 20 \( \) \* 10

25 쉘의 기초 문법 expr 명령어의 문제점 이유 쉘 스크립트 파일 내에서 제한으로 사용됨
Bash shell 에서 더 이상 지원하지 않는 문법 체계

26 쉘의 기초 문법 해결 방법 $(( 산술식 )) 명령어로 해결 가능
expr 명령어 처럼 곱하기나 괄호 연산자에 ‘\’를 포함 시킬 필요가 없음

27 쉘의 기초 문법 기본 출력 기본 입력 echo 명령어를 사용하여 출력 문자열에 공백이 있을 경우 “ “로 묶어서 표현
read 명령어를 사용하여 입력 read [변수이름]

28 쉘의 기초 문법 관계 연산자 프로그래밍 언어에서 ‘&&’ 나 ‘||’ 의미를 나타내는 연산자 표현 식 의미 -a && -o

29 쉘의 기초 문법 제어문 조건문 반복문 if 문 case 문 for 문 while 문 until 문

30 쉘의 기초 문법 if 문 case 문 조건문의 한 형태로 조건식을 계산하여 해당하는 루틴으로 이동
하나의 if 문이 끝나면 fi 키워드를 사용하여 종료 조건식이 참이라면 then 이후의 루틴이 동작 조건식이 거짓이라면 else 이후의 루틴이 동작 여러 조건식을 사용하기 위해 ‘elif’ 키워드도 존재 case 문 switch case 문과 유사한 형태지만 switch 키워드는 사용하지 않음 변수 값을 기준으로 값의 패턴에 따라 해당 루틴을 설정하게 됨 switch case 문의 경우 break 키워드를 사용하지만 case 문은 exit 문을 사용함 하나의 case 문이 끝나면 esac 키워드를 사용하여 종료

31 쉘의 기초 문법 case 문 예제 입력 키에 대한 결과 출력하기

32 쉘의 기초 문법 for 문 일반적인 프로그래밍 언어와 다른 문법을 사용함 for 변수이름 in 1 2 3 4 5
변수에 1부터 5까지 값이 하나씩 대입되면서 반복되는 형태 for 문 안에서 실행 되야 하는 루틴은 do 키워드 안에서 이루어짐 하나의 for문이 종료되면 done 키워드를 사용하여 종료

33 쉘의 기초 문법 while 문 until 문 일반적인 프로그래밍 언어의 while 문과 유사한 형태
조건식이 참이면 do 키워드 내의 실행문이 실행되는 형태 하나의 while 문이 종료되면 done 키워드를 사용하여 종료 while 문에 의해 무한루프 상태가 되면 Ctrl + c 단축키를 사용하여 빠져 나올 수 있다 until 문 while 문과 반대로 동작 조건식이 참이면 동작하지 않음…

34 쉘의 기초 문법 continue, break 키워드 일반적인 프로그래밍 언어에서 사용되는 키워드와 동일한 기능을 수행

35 쉘의 기초 문법 사용자 정의 함수 함수 선언 함수 사용 함수이름 () { 실행문
C 언어와 유사하게 사용자가 정의한 함수를 선언하고 사용할 수 있음 함수 선언 함수 사용 함수 이름만 적어주면 됨 함수이름 () { 실행문

36 쉘의 기초 문법 함수의 파라미터 이용하기 함수 호출 시 파라미터를 입력하여 함수에서 해당 파라미터를 처리하는 방법
함수 선언 시 딱히 무언가 해줄 필요는 없다 함수내의 실행문에서 넘겨지는 인자값의 순서에따라 1부터 사용할 수 있다 함수 사용 시 함수명 뒤에 인자값을 넘겨주기만 하면 된다

37 쉘 스크립트 연습

38 쉘 스크립트 연습 예제를 통한 쉘 스크립트 프로그래밍 연습 구구단 프로그램 사용자 관리 프로그램 메일관리 프로그램 etc…

39 Q & A

40 Thanks


Download ppt "6장 리눅스 쉘 정보보안 연구실 김동민."

Similar presentations


Ads by Google