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

Slides:



Advertisements
Similar presentations
Computer Programming in C Chapter 년 가을학기 부산대학교 전자전기정보컴퓨터공학부.
Advertisements

Ch 7. Spring EL (Spring Framework 3.0 M3) 백기선
Linux Shell 박철승.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
Visual Basic과 MS-Access를 이용한 렌터카 관리 프로그램
(PCB 설계) OrCAD 실습을 위한 자기 주도적 학습 자료1 충남기계공업고등학교 공동실습소 전자통신과 연구회.
웹 프로그래밍 및 실습 (Web Programming & Practice) 기초 프로그래밍 최 미정 강원대학교 IT 대학 컴퓨터과학전공.
Actors, Cameras, Action ! Scenes, Actors, Cameras 3D Transformations
프로그래밍 기초와 실습 Chapter 7 Enumeration Types and typedef.
Chapter 5 Concepts 발표자 : 인공지능연구실 박진희.
Term Project Detail Design 2 Traffic Generator So Jung LEE Dpnm Lab. CSE POSTECH
Database Programming의 원리
KyungHee Univ. 1-0 문자열 입 · 출력 프로그램 작성 예. KyungHee Univ. 1-1  모니터에 문자열 출력 하는 프로그램 작성  표준 출력 장치에 문자를 출력 하는 함수 함수의 기본형 : void SCI_OutChar(letter)  문자를.
Module 8 Memory Structure For Data Storage
Chapter 40Classic Applications Contents UNIX Shell Accounts Logging in to Internet Hosts by Using Telnet Getting Information About.
Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University.
SOAP 실전예제 Internet Computing KUT Youn-Hee Han.
C# 3.0 & LINQ 천호민 Visual C# MVP zmeun.tistory.com.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 실 습실 습 6 WEEK 1 - INTRODUCTION TO VOID FUNCTIONS (PROCEDURES)
The Knowledge Flow Interface 김개원 데이터베이스 연구실. 1. Overview.
12 Chapter 2 엑셀 데이터 다루기 엑셀의 작업구조 데이터 저장소 셀 ①장부 ②페이지 ③항목 ①장부 = 통합문서 ②페이지 = 워크시트 ③항목 = 셀 셀주소 A1: A 열 1 행 셀.
Korn Shell Programming1 AIX Ver. 4 Korn Shell Programming.
© 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5/e Starting Out with C++: Early Objects 5 th Edition Chapter 2 C++
Computer Programming in C Chapter 년 가을학기 부산대학교 전자전기정보컴퓨터공학부.
1 Linux Command. Advanced Compiler Laboratory2 Simple linux cmds ls List information about FILEs, by default the current directory. pwd Print Working.
Lab 3. 프로세스 생성과 종료 (Unix/Linux) One, Two 출력하는 onetwo.c 코딩, 컴파일, 실행
Hanyang Univ.  강의 목표 ◦ 임베디드 개발 환경의 이해  강의 내용 ◦ 교차 컴파일 환경 구축 및 부트로더 실습 Hanyang Univ.
LINUX System : Lecture 4 Basic UNIX commands Acknowledgement : (i) wikipedia.org, (ii)
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 3 수식과.
숙명여대 창병모 2011 가을 1. 2 A command processor that's run in a text window  allows the user to type commands which cause actions,  can also read commands.
기술로 고객의 마음을 움직입니다 1 WebtoB 4.0 소개 KAIST 박대연 교수
IT CookBook, 초보자의 첫 번째 엑셀 2007 엑셀 2007 기초. 2 이 장에서 배울 내용  Section 01 엑셀 2007 기본 기능 익히기  Section 02 데이터 입력 및 편집  Section 03 워크시트 편집 및 관리  Section 04.
Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University.
Korea University Dept.of Industrial System & Information Engineering User Interface Lab The GOMS Family of User Interface Analysis Techniques : Comparison.
User-defined Functions CSED421: Database Systems Labs.
Embedded System Expert Regular Expression – Veloxsoft Member Education 1 / 20 Regular Expression Veloxsoft Member Education 작성, 발표 : 개발 5 팀.
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 관리 페이지 접속방법 (AP 설정 변경.
스레드 프로그래밍 Lecture #7.
Simulink 강의 노트 작성 일자 : 2007, 01, 30 저 자 : 임 종수. 강의 순서 -- Section Simulink 의 특징과 install 시 주의사항. 2. simple simulink model 개발. 3. simulink 의 계산 방법.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 실 습실 습 3.
프로그래밍 기초와 실습 Chapter 6 The Fundamental Data Types.
Chapter 2. UNP configuration, MAKEFILE, Echo program 백 일 우
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 1 컴퓨터와.
1 Router 동작 mode (1/2) User Mode Router 동작 상태, Interface 의 상태, 현황등을 check 할 수 있는 command 사용 가능 Router Configuration 의 변경은 불가 Privileged Mode Router 의 Full.
Windows95 VxD Design and Win32 Application inter face 발 표 : 노 원국 ( 컴퓨터 시스템 설계 )
Kernel Programming Task Management ( 월 ) 이 병 희
Shell Programming Concept of the Shell Environment of Shell Shell as programming language.
Loading the Data Warehouse (Chapter10) Data Warehousing Lab. Semester 2 HyunSuk Jung.
Ubiquitous Computing Practice - Part 4(RSSI) - Laboratory of Intelligent KUT ( Yong-hwan Kim Spring.
영상 획득 영상 저장 카메라 파라메터 커스텀 이미지
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 실 습실 습 7 WEEK 1 – 구조체 (STRUCTURES)
컴파일러 입문 제 5 장 Context-Free 문법.
VHDL의 기본 Lecture #6.
TCP/IP Illustrated Vol.1 Ch.10 : Dynamic Routing Protocls ( 수 ) 안 진 섭
Go by Example Closures ~ Errors , Sam Jo.
9-4 The Shifter  Shifter shifts the value on Bus B  Right shift and Left shift Bidirectional shift register with parallel load First clock pulse 에 Bus.
실전 이미지 처리 프로그래밍 Lecture #10. 강의 목차 ▶ 실제 게임을 구현하는 데 필요한 화면 구성을 알아본다. ▶ Canvas 클래스와 Graphics 클래스를 이용해 가장 기본적인 게임 화면을 하나씩 직접 구현해 본다. 2Mobile Programming.
방명록 제작. 목차  기본 레이아웃  DB 구조  방명록 구조  코드 설명  화면 설명.
Chapter 7. Pipe 2 pipe 개요  Simple IPC (inter process communication) mechanism  두 프로세스간 통신 기능 제공  동작 방식  수도관 (pipe) 을.
Chapter 3 An Introduction to the Utilities. Introduction u Unix utilities : PART2. The Unix Utility Programs 참조  사용자 확인 및 상호 메시지 관련 l finger, who, w,
10 DAX Calculation For Tabular or PowerPivot Model
아주대학교 LifecareScienceLAB Android Seminar 2 nd class Android Software Development 2011/04/13 – p.m. 06:00 – 팔달관 409 호 아주대학교.
솔라리스 10 Chapter 11 퍼미션 관리 Solaris4. RBAC 관리. RBAC ( Role Based Access Control ) 개념 –RBAC 는 시스템 자원의 권한 분배, 사용 권한 등을 설 정하는 역할을 한다. RBAC 구성 요소 –RBAC 구성 파일.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 실 습실 습 4.
Android Android-File (DMI) Kang GiHoon. DMI--Kang Gihoon Android File  내부 파일  res 디렉토리의 raw 파일  assets 디렉토리의 파일  sdcard 의 파일.
Speech signal processing & its real-time implementation
May.28 1 Multimedia Lab  만나는 곳의 Junction 이 제대로 생겼는지 확인할 것.
데이터 베이스 설계 및 실습 #11 - JSP 예제.
C 프로그래밍 개발 도구. 컴파일러 gnu c compiler 컴파일 gcc sample.c 실행 a.out 실행 파일 지정 컴파일 gcc –o sample sample.c 실행 sample.
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ORACLE XML DB Repository 이 윤 주 인터넷기술 (032ITI10)
Presentation transcript:

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

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

리눅스 쉘 개요

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

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

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

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

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

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

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

쉘 스크립트 만들기

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

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

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

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

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

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

쉘의 기초 문법

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

쉘의 기초 문법 크기 비교 문법 표현 식 의미 [ 변수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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

쉘 스크립트 연습

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

Q & A

Thanks