• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Airlover 20030324 1
 

Airlover 20030324 1

on

  • 1,159 views

 

Statistics

Views

Total Views
1,159
Views on SlideShare
1,159
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Airlover 20030324 1 Airlover 20030324 1 Presentation Transcript

    • Unix Shell Script 2003/03/24 For SPARCS ’03 김군훈 <airlover@sparcs.kaist>
    • Index
      • What is shell?
      • Shell configuration & Environment variable.
      • Standard input/output/error, Redirection, Pipelining.
      • Shell script examples.
      • Shell script syntax.
      • Special parameter
      • Making shell.
      • Homework.
    • What is shell?
      • Command / Interpreter
        • Bourn Shell
        • C Shell
        • Korn Shell
        • Bash
        • Tcsh
      Kernel Shell Program Program Program User
    • Bash Configuration
      • .bash_login : Login initialization like .login
      • .bash_logout : Logout actions
      • .bashrc : Shell configuration
      • .bash_profile : Login shell configuration
      • .inputrc : Individual readline initialization file
      • .bash_history : Command history file
    • Environment Variable.
      • PWD
        • Current working directory.
      • PATH
        • The search path.
      • PS1
        • The primary prompt string.
      • MAIL
        • Filename to check mail.
      Shell Var. Environ. Var. export - set - env
    • Standard input, output, error Program1 FD Program2 FD 1 - STDOUT 0 - STDIN 2 – STDERR : : : 1 - STDOUT 0 - STDIN 2 – STDERR : : :
    • Redirection & Pipelining < | > Etc.. >> << <<< 2>&1 2> &> … File File Program Program
    • Script Examples - Start #!/bin/sh mutt telnet ara telnet ska telnet pie
    • Script Examples(2) – Color Table #!/usr/local/bin/bash esc=&quot;33[&quot; echo -e &quot; 40 41 42 43 44 45 46 47&quot; for fore in 30 31 32 33 34 35 36 37; do line1=&quot;$fore &quot; line2=&quot; &quot; for back in 40 41 42 43 44 45 46 47; do line1=&quot;${line1}${esc}${back};${fore}m 보통 ${esc}0m &quot; line2=&quot;${line2}${esc}${back};${fore};1m 밝은 ${esc}0m &quot; done echo -e &quot;$line1 $line2&quot; done
    • Script Examples(3) – Dictionary $ sh eng_dic shell shell [LINK] 발음듣기 [INLINE] shell [ [INLINE] 雩 ] n. 1 a 조가비 (seashell); ( 굴의 ) 껍질 b ( 거북 [INLINE] 새우 [INLINE] 게 등의 ) 등딱지 , 껍데기 c ( 콩의 ) 깍지 , 꼬투리 d 시초 ( 翅 ?), 딱지 날개 e ( 번데기의 ) 외피 f ( 과일 [INLINE] 종자 등의 ) 껍질 ; [ pl. ] 카카오 껍질 (cacao shells) #!/bin/sh WORD=$* WORD=$(echo ${WORD} |od -tx1 -w1000 |head -1 |sed -e 's/^[0-9]+ //' -e 's/ 0a$//' -e 's/20/+/g' -e 's/ /%/g' -e 's/^/%/' |tr '[a-z]' '[A-Z]') lynx -nolist -verbose -dump http://kr.engdic.yahoo.com/result.html?p=${WORD} |grep -v &quot;bu2.gif&quot; |tail +14 |tac |tail +11 |tac |sed -e 's/[phon[0-9]+.gif] //g' -e 's/[phon[0-9]+.gif]//g' |less -r
    • Script Examples(4) – Etc.
      • Automatic install program.
      • Homework submit program.
        • Homework num., source file
        • Delay due
      • Homework marking program.
        • Compare optimized solution
        • Check execution time.
      • Check empty IP address.
    • Shell script syntax - for
      • for name [ in word ] ; do list ; done
      102 Name: sparcs.kaist.ac.kr 103 Name: ara.kaist.ac.kr 104 Name: baram.kaist.ac.kr 105 Name: gurum.kaist.ac.kr 106 Name: sparcs6.kaist.ac.kr 107 Name: sparcs7.kaist.ac.kr 108 Name: sparcs8.kaist.ac.kr 109 Name: sparcs9.kaist.ac.kr 110 Name: ftp.kaist.ac.kr . . . . . . . . . . . . . . . . #!/usr/local/bin/bash for ((i=102;i<151;i++)); do data=`nslookup 143.248.234.$i 2> /dev/null| tail +4|head -1`; echo $i $data; done;
    • Shell script syntax(2) - if
      • if list; then list; [ elif list; then list; ] ... [ else list; ] fi
      $ ./diff abc abc abc abc It’s same $ ./diff abcc abcd abcc Abcd It’s different #!/bin/sh echo $1; echo $2; if [ &quot;$1&quot; = &quot;$2&quot; ]; then echo &quot;It's same&quot;; else echo &quot;It's different&quot;; fi
    • Shell script syntax(3) – select
      • select name [ in word ] ; do list ; done
      1) Hello 2) Quit #? 1 Hello World #? 2 done #!/usr/local/bin/bash OPTIONS=&quot;Hello Quit&quot; select opt in $OPTIONS; do if [ &quot;$opt&quot; = &quot;Quit&quot; ]; then echo done exit elif [ &quot;$opt&quot; = &quot;Hello&quot; ]; then echo Hello World else clear echo bad option fi done
    • Shell script syntax(4) - case
      • case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac
      #!/bin/sh case $1 in all) telnet ara; telnet ska; telnet noah;; a) telnet aka;; s) telnet ska;; n) telnet noah;; esac
    • Shell script syntax(5) – Etc.
      • while list; do list; done
      • until list; do list; done
      • [ function ] name () { list; }
    • Special Parameters
      • 0 : Name of the shell or shell script
      • $ : Process ID of the this shell
      • ! : Process ID of last background command
      • # : Number of arguments
      • @ : Positional parameter
      • 1, 2, 3, .. 9 : n-th argument
    • Making Shell
      • 2003 SP Seminar on summer vacation
        • For studying system programming.
        • For being a SPARCS man.
        • A flower of circle activation.
      • SP + ARCS = SP ARCS
    • Homework
      • airlover 라는 폴더를 만든다 .
      • 위에서 만든 폴더에 이름이 SPARCS 03 학번 회원들의 아이디인 파일을 만들고 그 회원이 마지막으로 접속한 시각을 기록한다 .
      • 하나의 파일로 묶은 후 압축해서 airlover.tar.bz2 라는 파일로 만든다 .
      • airlover 폴더를 지운다 .
      • 실행하면 자동으로 압축이 풀리게 만든다 .
      • c.f) /SPARCS/mail/aliases.d/sparcs2003
    • Reference
      • http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/index.html
      • Sh/Bash/Csh/Tcsh man pages