chuong_11-lt shell tren linux

Upload: nha-hoang-duc

Post on 05-Apr-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    1/28

    LP TRNH SHELLTRN LINUX

    CHNG 11

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    2/28

    Ni dung

    1. Tng quan.2. Trnh bin dch GNU.

    3. Gii thiu v shell scripting.4. Nhng tnh nng ca shell.5. Cu hnh mi trng ng nhp.

    6. iu khin Shell.7. C php ngn ng shell.8. Cc v d minh ha.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    3/28

    1. Tng quan

    Shell l chng trnh lun cthc thi khi ngidng ngnhp vo hthng.

    Shell Linux htrmttplnh m c thkthp

    chng li thnh mt script hay thnh mtchngtrnh c thsdngnhiuln.

    Thiu st chnh ca ngn ngscript l nhnglnhny phi thng dchlimiln script thc thi.

    Linux cung cp nhiu tin ch l nhng trnhthng dch cho ngn ngC, C++, debugger, cngctchc project v cng cqun l code.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    4/28

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    5/28

    3. Gii thiu v shell scripting.

    Shell l mt cu ni giao tip gia ngidng v hiu hnh Linux.

    Shell c snnhBourne Again Shell (bash),Public Domain Korn Shell (pdksh) v tcshshell.

    Mi user s c copy mt shell lmvicvi kernel.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    6/28

    Gii thiu v shell scripting (tt).

    Shell nh l mt thng dch lnh :Login vo my tnh -> hinthdu shell ->user gi mt lnh -> shell c lnh ->shell tm kimtp tin tngng trong cythmc, shell ti tin ch vo bnh ->shell thc thi tin ch -> trlidunhc.

    Nu tp tin khng tm thy, shell a ramt thng bo li v hinthlidunhc.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    7/28

    Gii thiu v shell scripting (tt).

    Chng ta c th thay i shell mc nhsang mt shell khc vi s tr gip calnhchsh.

    [root@localhost /etc]#chshChanging shell for root

    Password:******

    New shell [/bin/bash]:/bin/shShell changed

    Shell scripts : Cc tp tin chanhiu lnhv c ththc thi cgi l shell scripts.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    8/28

    4. Nhng tnh nng ca shell.

    X l tng tc (Interative processing). Chy nn (Background). Chuyn hng (Redirection). ng dn (Pipe). Tp tin lnh (Shell scripts). Bin (Shell variables).

    Dng li cc lnh thc hin (Command history). Cu trc lnh nh ngn ng lp trnh. T ng hon tt tn tp tin hoc lnh. B danh cho lnh (Command alias).

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    9/28

    Khi ngnhp vo hthng,ngi dng slm vic trong mi trng do Linux nhnghasn. Tuy nhin, chng ta c ththayi cc thitlp ny theo ring ca mnh.Mi trng lm vicgm hai thnh phn : Mi trng terminal.

    Mi trng shell.Lu : Mun xc lpnhngbin mi trng, chng ta thay i trongtp tin .bash_profile(nuchy shell bash), trong tp tin .logon(nuchy shell C) v trong tp tin .profile(nuchy shell Bourne).

    5. Cu hnh mi trng ng nhp.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    10/28

    iukhin Shell tdng lnh : Chng ta s dng nhiu lnh trn mt dng

    cch nhau bngduchmphy (;).

    iukhin Shell ttp tin lnh : Cch 1: #/bin/sh filenameVd : #/bin/sh hello

    Cch 2: Cpquynthc thi (excute) cho tp tin.#chmod +x filename

    #/path/filename

    6. iu khin Shell.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    11/28

    7. C php ngn ng shell.

    Bin mi trng. Nhng bin xy dng sn.

    Nhng bin do user nh ngha. Cch to bin : Nhng bin khng cn phi

    khai bo.

    = Cch truy cp nhng gi tr ca bin.

    Variable1=$(variable2)

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    12/28

    C php ngn ng shell (tt)

    Nhp gi tr cho mt bin.#read variable

    Bin cc b v ton cc. Bin mi trng.

    HOME : Cha th mc ngi dng. PATH : Danh sch th mc tm kim. PS1 : Du nhc hin th lnh.

    Nhng bin c xy dng sn. $# : Tng s tham s. $0 : Tn tp tin lnh. $* : Danh sch tham s y .

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    13/28

    C php ngn ng shell (tt)

    Cu trc r nhnh if:if

    thencommand1

    [else

    command2]fi

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    14/28

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    15/28

    C php ngn ng shell (tt)

    Cu trc la chn case :case in

    value1)command1 ;;

    valueN)

    commandN ;;esac

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    16/28

    C php ngn ng shell (tt)

    Lnh kim tra :[expression]

    Kim tra tp tin :r file : ng nu file tn ti v c th c.w file : ng nu file tn ti v c th ghi.x file : ng nu file tn ti v c th thc thi.

    f file : ng nu file tn ti.d file : ng nu file l mt th mc .e file : ng nu file tn ti trn a.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    17/28

    C php ngn ng shell (tt)

    So snh hai s:

    n m

    eq : gi tr ca n v m bng nhau.ne : gi tr ca n v m khng bng nhau.gt : gi tr ca n ln hn m.lt : gi tr ca n nh hn m.

    ge : gi tr ca n ln hn hay bng m.le : gi tr n nh hn hay bng m.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    18/28

    C php ngn ng shell (tt)

    So snh hai chui :

    p q

    = : kim tra rng hai chui bng nhau.!= : kim tra hai chui khng bng nhau.

    p1

    z : ng nu chui p1 c chiu di l 0.n : ng nu chui p1 c chiu di khc 0.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    19/28

    C php ngn ng shell (tt)

    So snh ton t logic :! : ph nh mt mnh logic.

    a : AND.

    o : OR.

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    20/28

    C php ngn ng shell (tt)

    Lnh expr: Trong biu thc, cc ton t vton hng phi cch nhau bi khong trng| hoc = bng nhau& v > ln hn< nh hn >= ln hn hay bng

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    21/28

    C php ngn ng shell (tt)

    Mt vi cu trc lp : For While Until

    Vng lp for :for variable in const1 const2 do

    commands

    done

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    22/28

    C php ngn ng shell (tt)

    Vng lp while :while expression

    do

    command

    done

    Vng lp until :

    until expressiondo

    commands

    done

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    23/28

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    24/28

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    25/28

    C php ngn ng shell (tt)

    Cch thc thi shell script :#bash wonderful

    #!/bin/bash#chmod u+x wonderful

    #wonderful

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    26/28

    8. Cc v d minh ha.

    V d 1: Kim tra user nhp vo c trong h thng khng? Nu c,kim tra user c ang login vo h thng khng? In thng bo.on chng trnh :tmp=$( grep $1:x /etc/passwd | wcl )if [ $tmp eq 0 ]

    thenecho User $1 khng tn ti trong h thng

    else

    echo User $1 tn ti trong h thnggrep $1:x /etc/passwd

    kt=$( who | grep $1 | wcl )

    if [ $ktne 0 ]then

    echo User $1 ang logon vo h thngelse

    echo User $1 khng logon vo h thngfi

    fi

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    27/28

    V d 2 : Kim tra xem hm nay c phi l thby khng? Nuphi, user nhp vo s thng boHm nay l ngy nghv thot.on chng trnh :kiemtra()

    {

    if [ $1 = Sat ]then

    echo Hm nay l ngy nghsleep 60

    exit

    else

    echo Hom nay l ngy $1fi

    }

    tmp = $( date | cutc 3 )kiemtra $tmp

    Cc v d minh ha (tt).

  • 8/2/2019 Chuong_11-LT Shell Tren Linux

    28/28

    Vd 3 : Thchin cc php ton +, -, \*, / ca 2 s.on chng trnh :tong=` expr $1 + $2 `

    echo Tong ca 2 s $1 v $2 l : $tong

    hieu=` expr $1 - $2 `

    echo Hiu ca 2 s $1 v $2 l : $hieutich=` expr $1 \* $2 `

    echo Tch ca 2 s $1 v $2 l : $tich

    th=` expr $1 / $2 `echo Thng ca 2 s $1 v $2 l : $th

    Cc v d minh ha (tt).