shell script ? 04 spring sparcs

21
SHELLScript ? 04 Spring SPARCS Yiseul Cho ([email protected]. kr)

Upload: azura

Post on 23-Jan-2016

55 views

Category:

Documents


0 download

DESCRIPTION

SHELL Script ? 04 Spring SPARCS. Yiseul Cho ([email protected]). INDEX. SHELL SHELL& SHELL Script SHELL Script EX SYNTAX 복습 HW ★ REFERENCE. user. Shell. user. 커널. user. 1. Shell. Interface between user and kernel Command Interpreter Bourn Shell C Shell Korn Shell - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SHELL Script ? 04 Spring SPARCS

SHELLScript ? 04 Spring SPARCS

Yiseul Cho([email protected])

Page 2: SHELL Script ? 04 Spring SPARCS

INDEX SHELL SHELL& SHELL Script SHELL Script EX SYNTAX 복습 HW ★ REFERENCE

Page 3: SHELL Script ? 04 Spring SPARCS

1.Shell Interface between user and kernel Command Interpreter

Bourn Shell C Shell Korn Shell Bash Tcsh

커널user

user

userShel

l

Page 4: SHELL Script ? 04 Spring SPARCS

1.5 Shell & Shell Script

Shell Script 란 ? 명령어들의 모음 ( + 간단한 구조화 프로그래밍 ) Shell 프로그램 시스템 콜 , 여러 프로그래밍 도구들 ,

유틸리티 , 실행파일 , 쉘 내부명령어 등

Page 5: SHELL Script ? 04 Spring SPARCS

2.Shell Script EX - =_=;

#!/bin/bashmutttelnet aratelnet skatelnet locoexit 0

Page 6: SHELL Script ? 04 Spring SPARCS

2.1 Shell Script EX- Korea Herald

오늘 날짜의 영자 신문을 보여준다

#!/bin/bash YEAR=`date +%Y` M=`date +%m` d=`date +%d` sec=$RANDOM let "sec %=40" ((sec+=10)) lynx -nolist -verbose –dump www.kor eaherald.co.kr/SITE/data/html_dir/$YEA R/$M/$d/${YEAR}${M}${d}00${sec}.a sp|tail +4|sed -e 's/\[LINK\]//g' -e's/ \[INLINE\]//g' |less -r exit 0

Page 7: SHELL Script ? 04 Spring SPARCS

2.2 Shell Script EX– Process Control

#!/bin/bashProcess=$*Num=`pidof $Process`kill –s 9 $Numexit 0

Page 8: SHELL Script ? 04 Spring SPARCS

3. Basic Syntax # comments… list; list; list; … list | list | list … list && list || list … list < input > output list &

(list) `list` “list” ‘list’ { list;} name=value name () { list;}

Page 9: SHELL Script ? 04 Spring SPARCS

유닉스툴에서 배웠을 내용 복습 Pipelining Redirection Job control 그밖에 shell commands

Page 10: SHELL Script ? 04 Spring SPARCS

3.1 Syntax(1) - if if list; then list; [elif list; then list; ] ... [ else list; ] fi

# 주인을 알아보는 프로그램 ^^;;#!/usr/bin/bashme=$1;If [“$me”=“idewi”]; thenecho “Hi~”;else echo “$1, who are u -_-?”;fi

Page 11: SHELL Script ? 04 Spring SPARCS

3.2 Syntax(2)- for

for arg in [list] do command... done

# 현재 디렉토리의 파일# 대문자 -> 소문자

#!/bin/bashfor f in *; do mv $f `echo $f | tr '[A-Z]' '[a-z]'`doneexit 0

Page 12: SHELL Script ? 04 Spring SPARCS

3.3 Syntax(3)- case case "$variable" in

"$condition1" ) command...;;

"$condition2" ) command...;;

esac

#!/bin/bashecho " 아무키나 누른 다음

리턴을 치세요 ." read Keypress case "$Keypress" in [a-z] ) echo " 소문자 ";; [A-Z] ) echo " 대문자 ";; [0-9] ) echo " 숫자 ";; * ) echo " 구두점이나 , 공백

문자 등등 ";; esac # [ 대괄호 ] 속 범위의 문자들을

받아 들입니다 . exit 0

Page 13: SHELL Script ? 04 Spring SPARCS

4. 복습 Example#!/usr/local/bin/bashfor i in`cat /SPARCS/mail/aliases.d /sparcs2003`;dofinger $i | egrep -h 'Last login'

>/home/idewi/homework/$i;

done;tar cvzf airlover.tar.gz /home/i

dewi/homework; ls /home/idewi/homework ;exit 0;

#!/usr/local/bin/bashlynx -dump keyterms.html | cat

> imsi;a=$((`wc -l < imsi`/2));cat imsi | tail -$a | cut -c52- >

imsi2 ;rm -f imsi;for i in `cat imsi2`;doecho $i | cut -c60-;lynx -dump "../$i";done;exit 1;

Page 14: SHELL Script ? 04 Spring SPARCS

5. HW

지금까지 본 Shell Script 무슨 일을 하는가 ? 왜 쓸까 ?

편리하다 많이 쓰자 ^^

Page 15: SHELL Script ? 04 Spring SPARCS

그렇다면 숙제는 ?

1. 모두 nugu 의 개인 정보중 생일 정보를 입력한다 .

2. nugu 를 이용해서 04 학번 회원들의 이름 아이디 생일의 정보만을 추려낸 파일을 생성해서 idewi 회원에게 메일을 보낸다

파일첨부 ^^

힌트는 세미나시간중에…ㅎㅁㅎ /~

Page 16: SHELL Script ? 04 Spring SPARCS

6. Reference

http://doc.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/index.html

http://doc.kldp.org/Translations/html/Sed-KLDP/introduction.html

UNIX IN A NUTSHELL

Page 17: SHELL Script ? 04 Spring SPARCS

INTERFACE?

사용자에게 컴퓨터를 편리하게 사용할 수 있는 환경을 제공하는 설계 내용 .

사용자가 컴퓨터나 프로그램과 의사소통을 하고 쉽고 편리하게 사용할 수 있도록 하는 것이 목적이다 .

Page 18: SHELL Script ? 04 Spring SPARCS

File

File

Program

Program

<

|

>

Etc..

>> << <<< 2>&1 2> &> …

Redirection & pipe

Page 19: SHELL Script ? 04 Spring SPARCS

커널 kernel( 알멩이 ) 이라는 이름에서 보듯이 , 커널이란 , 유닉스

시스템이 시작될 때 - 이것을 흔히 부팅 작업 이라고 하지요 -, 가장 먼저 읽혀지는 핵심 부분입니다 .

커널은 그 시스템의 모든 자원을 관리하고 , 당신이 어떤한 자원을 요청할 때 , 그것을 준비해서 당신의 타당한 작업을 할 수 있도록 해 줍니다 . 굳이 당신이 그 커널 자체에 대해서 모두 알아야 할 필요는 없습니다 . 중요한 것은 커널이 이런 것이고 , 이러한 작업을 한다는 것 정도만 알아도 충분할 것입니다 .

File Management System, Memory Management System, Process Management System

Page 20: SHELL Script ? 04 Spring SPARCS

대문자 소문자 바꾸기 주석지우기 (#!은 제외 ) 로긴과 동시에 새메일의 도착여부를 알림& 지난번 로긴후의 흐른 시간도 함께 ^^;

Page 21: SHELL Script ? 04 Spring SPARCS

오늘의 영자 신문 긁어오기한방에 프로세스 kill 하기 >_< (pidof & kill)메일을 읽은 시간 학번별로 정리해서 보여주는

스크립트 (finger 에서 메일 수신을 알려줄때 procmail 을 실행하는 사람은 안됨 !

&& /var/mail 은 퍼미션 권한이 없음 -0-)