chuong_11-lt shell tren linux
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).