Upload
azura
View
68
Download
0
Embed Size (px)
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
Citation preview
SHELLScript ? 04 Spring SPARCS
Yiseul Cho([email protected])
INDEX SHELL SHELL& SHELL Script SHELL Script EX SYNTAX 복습 HW ★ REFERENCE
1.Shell Interface between user and kernel Command Interpreter
Bourn Shell C Shell Korn Shell Bash Tcsh
커널user
user
userShel
l
1.5 Shell & Shell Script
Shell Script 란 ? 명령어들의 모음 ( + 간단한 구조화 프로그래밍 ) Shell 프로그램 시스템 콜 , 여러 프로그래밍 도구들 ,
유틸리티 , 실행파일 , 쉘 내부명령어 등
2.Shell Script EX - =_=;
#!/bin/bashmutttelnet aratelnet skatelnet locoexit 0
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
2.2 Shell Script EX– Process Control
#!/bin/bashProcess=$*Num=`pidof $Process`kill –s 9 $Numexit 0
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;}
유닉스툴에서 배웠을 내용 복습 Pipelining Redirection Job control 그밖에 shell commands
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
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
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
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;
5. HW
지금까지 본 Shell Script 무슨 일을 하는가 ? 왜 쓸까 ?
편리하다 많이 쓰자 ^^
그렇다면 숙제는 ?
1. 모두 nugu 의 개인 정보중 생일 정보를 입력한다 .
2. nugu 를 이용해서 04 학번 회원들의 이름 아이디 생일의 정보만을 추려낸 파일을 생성해서 idewi 회원에게 메일을 보낸다
파일첨부 ^^
힌트는 세미나시간중에…ㅎㅁㅎ /~
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
INTERFACE?
사용자에게 컴퓨터를 편리하게 사용할 수 있는 환경을 제공하는 설계 내용 .
사용자가 컴퓨터나 프로그램과 의사소통을 하고 쉽고 편리하게 사용할 수 있도록 하는 것이 목적이다 .
File
File
Program
Program
<
|
>
Etc..
>> << <<< 2>&1 2> &> …
Redirection & pipe
커널 kernel( 알멩이 ) 이라는 이름에서 보듯이 , 커널이란 , 유닉스
시스템이 시작될 때 - 이것을 흔히 부팅 작업 이라고 하지요 -, 가장 먼저 읽혀지는 핵심 부분입니다 .
커널은 그 시스템의 모든 자원을 관리하고 , 당신이 어떤한 자원을 요청할 때 , 그것을 준비해서 당신의 타당한 작업을 할 수 있도록 해 줍니다 . 굳이 당신이 그 커널 자체에 대해서 모두 알아야 할 필요는 없습니다 . 중요한 것은 커널이 이런 것이고 , 이러한 작업을 한다는 것 정도만 알아도 충분할 것입니다 .
File Management System, Memory Management System, Process Management System
대문자 소문자 바꾸기 주석지우기 (#!은 제외 ) 로긴과 동시에 새메일의 도착여부를 알림& 지난번 로긴후의 흐른 시간도 함께 ^^;
오늘의 영자 신문 긁어오기한방에 프로세스 kill 하기 >_< (pidof & kill)메일을 읽은 시간 학번별로 정리해서 보여주는
스크립트 (finger 에서 메일 수신을 알려줄때 procmail 을 실행하는 사람은 안됨 !
&& /var/mail 은 퍼미션 권한이 없음 -0-)