ksh프로그램문법.ppt

Similar documents
Microsoft PowerPoint - 02-Shell-Programming

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

Microsoft PowerPoint UNIX Shell.ppt

<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

Microsoft Word - Lab_080104A.docx

Microsoft PowerPoint UNIX Shell.pptx

1 Shell script What the shell?

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - comp_prac_081223_2.pptx

PowerPoint 프레젠테이션

Linux SHELL

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

6주차.key

/chroot/lib/ /chroot/etc/

Microsoft PowerPoint - u5.pptx

Microsoft PowerPoint - 05_(Linux)_(Fundamental)_Shell_Programming

Linux SHELL

Microsoft PowerPoint - chap05-제어문.pptx

untitled

PowerPoint 프레젠테이션

Microsoft PowerPoint 세션.ppt

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

슬라이드 1

휠세미나3 ver0.4

2009년 상반기 사업계획

chap2

Microsoft PowerPoint - u5.pptx

OnTuneV3_Agent_Install

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - 게시물2 - unix07.ppt [호환 모드]

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

INDEX 1. 개요 데이터백업스크립트작성 crontab 을이용한자동백업예약 활용 - 다른서버에백업하기

PowerPoint 프레젠테이션

1장. 유닉스 시스템 프로그래밍 개요

Microsoft PowerPoint - chap9 [호환 모드]

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Content Shell 이란? Redirection & Pipes Shell Programming 변수 조건 프로그램제어 리스트 함수 Shell 에내장된명령 Here documents Page 2

PowerPoint 프레젠테이션

ABC 11장

PowerPoint 프레젠테이션

슬라이드 1

vi 사용법

Microsoft PowerPoint 자바-기본문법(Ch2).pptx


Chapter_06

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - chap04-연산자.pptx

PowerPoint 프레젠테이션

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Microsoft PowerPoint - e pptx

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

Tcl의 문법

Java ...

제2장 리눅스 사용

<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D>

2009년 상반기 사업계획

Microsoft PowerPoint - u6.pptx

Adobe Flash 취약점 분석 (CVE )

슬라이드 1


01Àå

10.

Microsoft PowerPoint - ch09_파이프 [호환 모드]

2009년 상반기 사업계획

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

제2장 유닉스 사용

USER GUIDE

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Solaris 10 (x86) Installation Guide for VMware 7 Writer : 이경호

Microsoft PowerPoint oshw1.ppt [호환 모드]

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

제1장 Unix란 무엇인가?

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

윈도우즈프로그래밍(1)

Microsoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]

Frama-C/JESSIS 사용법 소개

Microsoft PowerPoint - 5. 사용자 계정관리-1(2016-1학기).ppt [호환 모드]

歯처리.PDF

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션


PowerPoint 프레젠테이션

Transcription:

http://www.suntraining.co.kr Korn shell programming yae_kim@suned.co.kr 썬교육사업부 Sun Microsystems Korea

Sun Microsystems 교육입과를환영합니다

Korn shell 프로그래밍과정진행과정 OBEJCT - UNIX shell 특징과 shell script 소개 - UNIX 기본명령어 review - Script 기본작성법과 debugging 방법 - 기본변수선언및로그인시마다반복되는환경파일개념및활용 - 특정문구나표현식을이용하여패턴뽑아내는 grep 명령활용 - grep에서발전한패턴추출및대체기능의 sed 명령활용 - data 추출의꽃, 레포트화시키는 nawk의활용

Korn shell 을활용한프로그래밍과정진행과정 OBEJCT - 쉘에서인식되어지는특수변수및특수기호들의활용 - 조건을이용한분기문사용 - 조건을이용한반복문사용 - 반복문제어기능을가진특수명령어 - korn shell 문법비교표를이용한프로그램역변환 - 작성프로그램 : 자동화 ftp 프로그램, 구구단, 집단메일발송, 시스템사용시간에따른요금추출, 메뉴프로그램작성, 호스트이름변경프로그램작성, 로또프로그램작성등

Module 1: UNIX Shells and Shell Scripts * unix 명령 review - 변수대체기능 : $ 변수대체 - 명령대체기능 : ` 명령 ` -process 구조확인 : pmap pid, pstack pid truss o filename command * exec 명령 : exec () 의반환코드를 ppid 코드이용하여제어 * 기본명령조합 ps f tail +2 sort n who tr s cut f2 d * 사용자로그인과정의환경파일 -/etc/profile ~/.profile ~/.kshrc ( 단, ~/.profile 에서미리선언 ) * 간단한휴지통프로그램작성

Module 1: UNIX Shells and Shell Scripts -shell 의특징 : 특수기호해석, 명령해석, 프로그래밍가능 ( 해석순서 : alias - 내장명령 - PATH 변수 옵션 인수 기호 ) -shell 의종류 : sh: 가장기본적인쉘 (/bin/sh) csh: 명령별명, 명령내역, 명령재실행, 파일이름완성지원 ksh: csh 의기능을가져가며문법은 sh 의문법동일 bash: LINUX 에서발전, 화살표키이용기능편리함 - 쉘프로그램실행 : fork(), exec() 호출로인한자식쉘이해석위해동작 -shell script 의적용 : 시스템 boot 시적용 script, 사용자 login 환경파일사용자목적에따른 script -script 개발을위한생각 : 전체작업에대한업무파악 몇번반복할작업인지생각 - data 전달방식에대해생각 ( 사용자입력등 )- 조건을이용한분기작업을생각 프로그램문장을제어할명령이나단계를고려할것

Module 2: Writing and Debugging Scripts -shell script : unix 명령들집합 ( 구조 : 순차, 분기, 루프 ) -shell script 실행방법들 : # chmod 744 filename ; filename # ksh filename # ksh x filename #../filename -#! : script 내부의명령해석쉘정의 -# : script 내부에서주석문처리 -script debugging : ksh x filename (script 내 set x 동일 ) ksh v filename (script 내 set v 동일 ) ksh f filename (script 내 set f 동일 )

Module 3: Shell Variables &Initialization Files * 변수선언 : - 기본변수문법 : 지역변수 ( 변수명 = 값 ) 환경변수 ( 변수명 = 값 ; export 변수명 ) - 특수변수예약 : $0, $1, ${10}, $*, $# 등이용 - 사용자정의변수선언 : read 변수명 * 변수확인 : echo $ 변수명, set, env * 미리예약된 ksh 변수 : HOME, PATH, PS1, PS2, PS3, PWD, SHELL * Quoting 문자 : 특수문자의의미상실문자 -\ : 바로뒤특수문자하나의미상실 - : 모든특수문자의미상실 - : 변수대체, 명령대체, \ 기능외의모든문자의미상실 * 산술연산방법 : -sh : expr 값 + 값 -ksh : expr 값 + 값, (( 변수 = 값 + 값 )), let 변수 = 값 + 값

Module 4: Regular Expressions and grep * 문법 : grep [-viw] 패턴파일명파일내패턴검색 * 다양한 grep 기능 : pkginfo grep I netscape 대소문자구분없슴 ps f grep vi pid 패턴제외 ps ef grep c wc 계산 grep iwroot /etc/passwd * 정규표현식 : ps ef grep ksh$ 라인끝이 ksh패턴 ls l grep ^- 라인시작이 인패턴 grep \$ /etc/init.d/nfs.server 특별의미죽임 grep [y-z] /etc/passwd 패턴범위지정 grep \<uucp\> /etc/passwd 단어패턴정의

Module 5: The sed Editor Sed : 파일의내용일부변경, 파일내용추출 sed 옵션 action 인수 files > outfile 유형 : sed -n 라인번호, 라인번호 p filename sed -n / 패턴 /p filename sed / 패턴 /d filename sed s/ 찾을패턴 / 변경패턴 /g filename sed -f 패턴파일명 filename

Module 6: The nawk Programming Language nawk: 패턴추출, 필드작업, report 작업, 프로그램기능 일반문법 : nawk 패턴 { action} inputfile 예 : date nawk {print $2,$3, $1 } 예 : who nawk /root/ {print $1 \t $NF} 예 : who nawk BEGIN { print 현재로그인한 \ 사람들의명단입니다. } ; {print $1} ; END { \ print 총 NR 명이로그인하고있습니다. } 예 : nawk BEGIN { FS= : ; OFS= \t } { print \ $1, $7 } END { print 시스템계정은총 NR 명 }

Module 6: The nawk Programming Language nawk: 패턴추출, 필드작업, report 작업, 프로그램기능 일반문법 : # nawk 패턴 { action} inputfile 예 : # nawk -f 패턴파일명 inputfile 참조 : # cat 패턴파일명 BEGIN { FS= : ; OFS= \t } {print $1, $7} END { print 시스템계정은총 NR 명 } 예 : # nawk BEGIN { count=0} /N[EOW] { print $0 \ ; count=count +1} END { print north count, \ count} data.file 예 : # nawk {printf %10s %5s \n, $2, $1 > \ outfile } data.file

Module 7: Conditionals 조건비교명령 : test 값비교연산자값상수비교 : [ 값 lt 값 ] 문자비교 : [ 값 = 값 ] 파일비교 : [ -f 파일명 ] 사용자입력값을미리지정하는특수문자 : << 키워드 분기문 : 한번조건을비교하여한번실행된다. if 조건비교명령 then 실행명령들 else 실행명령들 fi case 패턴값 in 패턴 ) 실행명령 ;; *) 실행명령 ;; esac

Module 8: Interactive script 스크립트작성시 i/o 를위한명령어들 Print : echo 와동일한명령어나추가의기능이더있다. 예 ) -n, --, \n, \b Read : 프로그램진행중사용자에게입력을요구하여입력값을변수값으로사용한다. 예 ) read 변수명발전 : Read 변수? 사용자입력요구시메세지 파일 i/o 변환문자 : 기본입력과출력방향을변환시킨다. 문법 : 명령어 i/o 변환문자파일명 i/o 변환문자 : >, >>, 2>, >&fd, exec fd> 파일명 exec fd <&- Here 문자 : <<

Module 9: loops 조건을검사하여조건이만족되는한반복수행프로그램 break : 루프문내에서루프의흐름을제어하여루프문을강제로종료한다. continue : 루프문내에서루프의흐름을제어하여루프문을강제로다시조건검사한다. shift : 불필요한인수의개수를줄이고자할때. for 변수 in 인수리스트 do 명령어들 done 인수리스트 : 1. 직접입력 2. 변수대체 3. 명령대체 4. $1 같은예약변수 5. 파일명

Module 9: Loops * while 조건명령 do 명령들 done * until 명령은 while 과똑같은문법이나조건이거짓을참으로생각 * PS3= 지시문 select 와함께쓰이는변수. Select 문장앞에서선언 ( select 는 ksh 의명령으로메뉴를표현해준다.) select 변수 in 인수리스트 do 명령어 done

Module10: Advanced variables,parameters and Argument list * ksh에서변수타입을지정하기 : typeset -옵션변수 typeset -i a a 변수는 integer 형의변수값만가짐 * ksh 에서 array 선언 : array 는기본이 string 임. 필요시정수선언 arrary_name[ 요소번호 ]= 값 { arrary_name[ 요소번호 ]} { arrary_name[*]} { #arrary_name[*]} unset arrary_name * Positional parameter 선언 : set ( 표준입력으로값받아들이기 ) set 값값값 echo $1 $2 $3

쉘프로그램작성시확인사항 1. 몇번실행을반복할작업인지고려 ( 분기문 반복문선택 ) 2. Data 전달값을고정시킬것인지, 프로그램실행시함께입력할것인지, 프로그램실행이후에사용자에게입력을요구할것인지고려 3. 순차적으로실행될필요한유닉스명령어를정확히인지할것 4. 프로그램을강제로종료시키는입력을받아들일것인지고려 5. 프로그램을로그인시마다적용할것인지를고려하여환경파일안에입력할지고려 6. 프로그램실행권한을고정시킬것인지결정할것

수고많으셨습니다 http://www.suntrai ning.co.kr