Professional Documents
Culture Documents
C hai cch tng tc vi h thng : Tng tc bng dng lnh (command line) Tng tc bng giao din ha (graphic interface)
Mc ch ca shell
Shell c 3 mc ch chnh nh sau: Tng tc (interactive use) t bin mi trng i vi mi ngi s dng Lp trnh
Cc loi Shell
sh (Bourne shell) shell nguyn thy p dng cho unix (C Shell, Z shell) shell s dng cu trc ca C lm ngn ng kch bn. (Bourne Again shell) shell ch yu ca Linux.
Linux Shell
shell script : Kch bn cho php thc hin mt dy lnh lin tip. Tng t tp tin b (batch file) trong MS-DOS.
Chng trnh shell l mt tp tin vn bn cha mt s lnh shell hoc lnh ca Linux. Chng trnh Shell cho php t ng ha mt cng vic, hoc vit cc ng dng tng tc n gin. Tp tin shell : *.sh. Dng lnh cat file.sh hoc vi file.sh son tho tp tin Shell.
Chng trnh shell remount.sh cho php t ng kt ni li a CDROM : #!/bin/sh # ghi chu umount /dev/cdrom mount /dev/cdrom /cdrom exit 0
Ch thch trong shell thng bt u bng k t #. #!/bin/sh : ch th yu cu shell hin ti triu gi shell sh nm trong th mc bin. Shell sh s chu trch nhim thng dch cc lnh nm trong tp tin script. #! cn c dng triu gi mt chng trnh shell khc m NSD mun chy trc khi script tip theo c din dch.
10
Khi gn ni dung cho bin varname=value Truy xut ni dung ca bin : $varname Lu sau du = khng c c khong trng. Hin th ni dung bin : echo $varname c d liu nhp vo : read varname
12
V d: xinchao=hello echo $xinchao Kt qu : hello xinchao=" I am here " echo $xinchao Kt qu : I am here
13
14
Mi mi trng ng nhp cha mt s danh sch bin mi trng dng cho mc ch ring. C th xem danh sch ny bng lnh evn to mt bin mi trng mi c th dng lnh export S dng lnh exit trc khi kt thc chng trnh shell. exit 0 : kt thc thnh cng
$1, $2, $3, . . . : v tr v ni dung cc tham s trn dng lnh theo th t t tri sang phi $0 $* : t u tin ca lnh c g, l tn chng trnh shell : danh sch tt c cc tham s trn dng lnh
"$@" : lu danh sch cc tham s dng lnh trn cc xu ring bit ("$1" "$2" . . .) $# $?
15
: Tng s tham s trn dng lnh. : Lu m tr v ca lnh cui cng c thc hin.
16
Ton t s hc
Operator
+
Operation
(Addition) Php cng (Subtraction) Php tr (Division) Php chia Modulus Operator (Remainder) Php chia ly d (Multiplication) Php nhn
/ % *
17
18
So snh ton hc
Ton t so snh expr1 -eq expr2 expr1 -ne expr2 expr1 -gt expr2 expr1 -ge expr2 expr1 -lt expr2 expr1 -le expr2 ! expr
19
Gii thch true nu hai biu thc bng nhau true nu hai biu thc khng bng true nu biu thc expr1> expr2 true nu biu thc expr1>=expr2 true nu biu thc expr1<expr2 true nu biu thc expr1<=expr2 true nu expr1 l false (ton t not)
20
Trong cc lnh shell sau, c th dng $(()) thay cho lnh expr. x=$(($x + 1))
So snh chui
So snh string1 = string2 string1 != string2 -n string1 -z string1 Ch : khc vi Kt qu true nu hai chui bng nhau true nu hai chui khng bng nhau true nu string1 khng rng (null) true nu string1 rng $str1=$str2 : Php gn $str1 = $str2 : Php so snh
21
In cc k t c bit
echo [-n] [xu k t]
\b \c \n \t \\ \0n li li mt k t (backspace). khng xung dng (nh n). xung dng. in ra k t tab. in ra k t \. in ra k t c s n (s thp phn) trong bng m ASCII.
Cc script s dng lnh [] hoc test kim tra iu kin boolean. Thng c s dng nh gi mt iu kin trong mt cu lnh iu kin hay ca mt cu lnh lp. C php : hay test bieuthuc [ bieuthuc ]
24
Ton t AND
Lnh sau thc hin khi lnh trc thc thi v tr v mt li thnh cng. statements1 && statements2 && statements3 &&. . V d : #!/bin/sh
touch file_one rm -f file_two if [ -f file_one ] && echo hello && [ -f file_two ] && echo there then echo -e in if fi exit 0
C th dng cc ton t sau vi biu thc iu kin : ton t trn xu k t, ton t trn s nguyn, ton t trn tp tin, ton t logic Binh thuong Shell sh hoac : if a>b : if test $a -gt $b : if [ $a -gt $b ]
25
26
Ton t OR
C php: if condition Ton t OR tr v gi tr true th ngng vic thc thi. C php : statements1 || statements2 || statements3. . . then <Nhomlenh1> else <Nhomlenh2> fi
27
Lnh for
30
C php:
False
S=0 i=0 while [ $i lt 5 ] do i=`expr $i + 1` S=`expr $S + $i` done echo Tong = $S exit 0
32
C php:
V d :
until [ $# -eq 0 ] do num=`expr $num + 1` echo The $num argument is $1 shift done
C php: case var in pattern1) pattern2) pattern3) pattern4) *) esac command(s);; command(s);; command(s);; command(s);; ;;
Hm (function) (1)
Hm (function) (2)
tr v mt gi tr s ta c th dng lnh return : V d : foo() { tr v gi tr chui ta c th dng lnh echo : V d : #!/bin/sh
foo() { echo function foo is executing } echo Goi su dung ham foo foo exit 0 } return 0
Shell cung cp cho NSD t to hm hay th tc triu gi bn trong script. C php nh ngha hm : function_name() { statements }
37
38
khai bo bin cc b c hiu lc trong hm, dng t kha local. Nu khng c t kha local, cc bin c xem l bin ton cc. Bin ton cc c nhn thy v c th thay i bi tt c cc hm trong script.
39
40
10
Truyn tham s cho hm tng t nh truyn tham s trn dng lnh. V d : foo() "param1","param2","param3". . .
break : break thot khi vng lp for, while hay until. continue : lnh continue yu cu vng lp quay li thc hin bc lp k tip m khng cn thc thi cc khi lnh cn li. : (lnh rng) lnh : i lc c dng vi ngha logic l true. V d : while : tng t nh while true. . ( thc thi) dng thc thi mt script trong shell hin hnh.
41 42
M rng tham s
Shell khng cung cp cu trc mng. C th thay th tn bin, cn gi l m rng tham s. V d : #!/bin/sh
1_tmp=hello 2_tmp=there 3_tmp=world for i in 1 2 3 do echo $i_tmp done
44
11
Bi tp
1) Vit mt chng trnh shell vidu1.sh cho php nhp vo 2 gi tr a,b. Tnh tng ca a,b. 2) Vit mt chng trnh shell vidu2.sh cho php nhp vo 2 gi tr a,b trn dng lnh. In ra tong ca a,b. Ex : $vidu2.sh 3 4 Tong = 7 3) Vit mt chng trnh so snh 2 s a, b nhp t bn phm
45
46
Kt thc
47
12