SHELL _LINUX !"#$%&'(")*+& ,-.%/& ,-011/& 2+& 34&'& !/& /& 5/& 3"4-6788&!" 9:55! 788-;&<) != 8> != 7%? ' 8>7%?<@A-B#C&DE%!" ! " F8"%788 #"$ $>GH)7-!!87I@AJK"%L"$;)M@A$N#O+ ! $M@PQ! RPQ!$ 34&'&/$S'P T6G(")@P*$788 HI F/U@D"N#O+V"WHXI H I LB@A#U;!""N#''P$ H2I $&W>Y!YM HZI #!'-6$'P[\KK!" !?SV!?S]] H1I LB^_`@@V/$ # $%& R")%"'P$_4&'&!" ,/X$ S? 7, ' () a@Pbc_'P$= 34&'&7d&ed"f_$=e 3'& g#B#O+%"Gb g7&h&"Y#O+7!""i"f i!!87H$"BI i!#&!7 i#B%"Gb i%"Gb i*@D"b i! ii"i 7j7k-6!!i!iiGi] SHELL_LINUX 1-18 1 SHELL _LINUX * +,- ./012 34056̉ ̣ 34&'&7%&&&h&'& 7%&.2 7%& j 7%&?5 7%& ?l2 7%&?i`2 7m7%&n.2m oSm7&%,o.2m ./012 3407580̉ ̣ pqrstruŕ ̣ 87koS,o.2] 87ko.S2] 87koS,-`,] ./012 3409::;;;<<̉ ̣ vqrstrú ̣ oS,HHo.2II oS,HH,-`,II 7&% ?l2 ?-2 7&%?i`2&h&'W_+i`#B&`@&W>#O+!)$ ab"G/@Aw*"788_#-68>@A@VY! "mm H#B&"')@xyI788<+8>@ !Sm7&%?i`2m !<'P8;?%2S2? #$("!-;7,! = >?@A@BCDEFG 328"!" a" F/ zQ! k [')#h& N-)')#h&@A%7-8;Y#O+/ > x [')@ YN-"')@OQ!#B@{ m [')A +8> 7kB-!)8;!7]#B@AB-!)8;-) 7kB-!)8;m!7m]<!;)'B-!)!7N-"')Amm H +I-JK >V@PK"%_#-68>V&+_* 8|'P@%'@P%7-8> V&@+;B#B HI[$"'P*8;?Ho7I8>+;B H I[$"'P*#'?Ho7I#B;B }'P@~|8;E%!" •)8;-$;@$@A'P*€!-68>!)&^•@_‚Dw $@V>ƒ€!788L $"%'„87#B…|/@Q! 9-"#†„87 97,^<!-;-6'P#'? M ()NOP-QRS&,TUV a@8)Y8>"•&‡;&-;8";$ SHELL_LINUX 2-18 2 SHELL _LINUX 34&'&7!!! !2=![ 7!#B!-G'P<@A!$,•EˆK‰ 7! !S],•EˆK‰] M"i&h&%"Gb@•&$&Y8>"7![$"7!j<#B OQ!@ 97!! 9•&;„87i 787 97k,!]#$("„87787 [|!-G!^ 97!j! 9•&;„87i 97k,!]#$("„87i K>7!@@~„87[$"„87!*"b‚b@A' $[$"7!|*"$H7!!! =I7!<+!;$,|Š‹@'Y 8>"'$TV@P,|Š‹8;#U 97!!Œ!!X„87 [$"„87*"b 97!!! Œ!!X„87 L@_-f|$<!"f|@A'>J|#UH,|Š‹I#B&|b_$ "G|<@A!;6&Db8|€!b •)8;-$;@@~;6„87^3|(")$Nb8V&#B^^ †877!87 7,87 7Œ!!X„87 ‹w,|Š‹H|7!8Š87‹7&!!I@'-6b&"€!7!_$"#B-"G-V @P8;#U8;-$;^•7-@&!" 7k87#7!!"7] Ž|Š‹S,|Š‹•|Š‹S 9!#"&8||Š‹;''P-„87575&!†@'> 9'M|!"/'|Š‹8; †877!!-7&!†"„"88!-77 7k,!-7,„"88!-7] 7Œ575&!† 9|5Ž77 |Š‹S,Ž|Š‹ 98||Š‹!@D" [$"@V|Š‹!)b8V&#BD!#"&|Š‹ †87|Š‹S7!!-7&!†"„"88!-77 7k,!-7,„"88!-7] 7Œ575&!† |Š‹•#B@{ W +X) SHELL_LINUX 3-18 3 SHELL _LINUX }w!&/-)78_@+&;)!D")*; !-G!" ,-)787 F@ -)788;/& 7!-G")*;& !-G! F788_")%"@$Y!-G!" -)788;,? 78;, 8;, ;$,9H788I<'P H !-G7;I8)' !-GN'w$,V,` 10.Y D"$8>@*"%"#$("!-;V8D)Y8>";&-|K"% b%"Y8>";87;@~Y8>"87 887!-79#$("8>8;87/87!-7 32#O>"778;_; HILO>" 4&'&8"%g !87!-7 ""&"!8>!87[$"87|<@b$"87!87-| H ILO>" 4&'&8"%g !87!-7 ""&"!8>;"G|87$"87@|_b$"87!|87- H2ILO>" 4&'&8"%g !87!-7 8)Y8>"8"%g !87!-7!);- 34&'& ! ! "&"! !<8;Y8>";! ! ,7& Z[\30 !0]0^\208_2`0.[577 1. +Dab qrqr r Ăq pqrstr Â7H?I 75F"7 ? [go7 [5!87 ÊÔƠrƯĐƠrăărââârêôrơ-rđr rơr 2. cde20fde 30dg0 trrur 7 ! ! SHELL_LINUX 4-18 4 SHELL _LINUX Ăràrur sqq rrtrảrrãqrtrtrá rrrạằrqrẳrqá rẵẵ s pqrstrurĂqrẳràrrắqrá rr U LU 905`[h09i000j09i0kl07\m056d80n8l82n0`2l07e 3[0`l8 átrá rrrvárrạrrằr r rđ Ărâr rqràẳrvqár ẳrtru 9:55! !, 7 rr rqrÔrƠrqẵrô-rvrq rr rđ Ăr 7%? # ke 3[085n80[lm0`\208_2`0o0pde208[/`0q ặá rrảrôtrtrầrêqátrẳrẩrst ĂràárơqáẵrrÔrêqátrẳrràt Ăr-rqƠr átràt Ăr r várƠr Ăẳrqrrđrơr trrurrêqátrẳrrẫấậrầrêqátrẳrẩ pqrstrur r5n80pde208[/` o0pde208[/`0q |7k,]j? F7 rrÔr r r dk,]j?e 7 rÔr r r èqátrẳrơqáẵrrẵrvqárvqru ạÔằârđr Ăt-á r ạĐằârẻẳ Ărơqátrắq ạƯằârtđq rẳ 788 & r Ăq đr |788 ặá r ầrêqátrẳrẩ g7( r rêả Ă 1SSn |71j7(n |d1j7(ne g7 ẽđ Ărêả Ă 1:Sn |71j7n |d1j7ne g8 ẻr 1n |71j8n |d1j8ne g87 ẻr r-rêả Ă 1Sn |71j87n |d1j87ne g ặ r 1n |71jn |d1jne g7 ặ r rảrêả Ă 1Sn |71j7n |d1j7ne r rtđq rhl308/ s034[dl S q ĂrÔrêả Ărq ĂrĐ :S q ĂrÔrơđ Ărêả Ărq ĂrĐ q Ărẳràq r Ăqr g #B[\KK go [\KK ẽqáẵrrắqrvrẳrẵtr + s034[dl g87 qrơđ Ărđ Ă g87 qrđ rqârặrắqrƠrơđ Ărqrẳrẵt g ẳrẵtrđ rqrƠrơđ Ărqrắqâ g87 qrĂqràẳ SHELL_LINUX 5-18 5 SHELL _LINUX g„87 Ãqž•r°œqrµ¯°̉ ̣ g%„87 Ãqž•r°¯rÐt-¸ r™œ¼°r™œq́ ̀ ̣ ´¯˜ r™¼rž¯¡q°́ ̉ rhl308/́ ̉ s034[dĺ ̃ : [ŽF 7%&j!7&% Ñ[a 7%&j7&% Ž• ' UVVU ²tr³œ˜³ŕ ́ q¾rµq¸tr¬q¸ ̀ ̣ 7 µq¸tr¬q¸ rž˜rrº•š¯r¹™št•r£r±»̀ ̣ ̀ ™œ¼°r™œqr™«™r°˜rž¸ œr³œq˜r™š¸ r•ž›•̣ ́ ̉ ̣ ́ 787 ¸trµqq¸tr¬q¸ r¬œ® ¡rµt ¡r¹r ¯ £º•š¯»́ ̀ ̣ ́ ™œ¼°r™œqr™«™r°˜rž¸ œr™š¸ r¾q̣ ́ ̉ ̣ „ ^\208_2`0dg07t3403[l2́ ́ ̀ ²tr³œ˜³rú ́ q¾rµq¸tr¬q¸ r¤̀ ̣ 7 ™œ¼°r™œqrž¸ œr ¸trµq¸tr¬q¸ r¤rµt ¡̣ ̣ ́ ̀ ̣ ́ 787 q¾rµq¸tr¬q¸ r§̀ ̣ 7 ™œ¼°r™œqrž¸ œr¬œqrµq¸tr¬q¸ r§rµt ¡ṛ ̣ ̀ ̣ ́ 787 ™œ¼°r™œqrž¸ œrr¬œqrµq¸tr¬q¸ r§r¬œ® ¡rµt ¡̣ ̣ ̀ ̣ ́ „ „ pqrstŕ ̣ S? 7Ò\%H‹"ŽIÒ 7Ò K"%H•7’!IÒ 7gÒ‹787)"7d e^Ò 7! „d,g7(e•7 7Ò‰"ˆ#"&\%H‹"ŽIÒ 787999977„7„†„999999 „d,g7( e•7 7Ò‰"ˆ#"&K"%H•7’!IÒ 787 7ÒÓ!)"Ô8#7\%5K"%Ž‹Ò „ „ * >D@Uuu ²tr³œ˜³rú ́ SHELL_LINUX 6-18 6 SHELL _LINUX qắràqátrơqá rÔ 7 àqátrơqá rÔràt Ă ẳrqrrá rá rqắr qắràqátrơqá rĐrrr 7 àqátrơqá rĐràt ĂrạtrÊrằ ẳrqrrá rá rrqắ qắràqátrơqá rƯ 7 àqátrơqá rƯràt ĂrạtrÊrằ ẳrqrrá rá rrqắ 787 ơđ Ărràqátrơqá r rrá ràt Ăr ẳrqrrá rá rắq pqrstru 9:55 9&778787 d,g?e7 7ề,&7ề 78d,g8?e 7 7ề,7!7ề 78d,g7(?e 7 7ề,o7ề 787 7ề&&:,"-7_7"-7ề = vE vEU 34&'& 2Z1 7ềể78-7,-7ề 7 b8V&ế@A$G4&'&3!" !" #$$ SHELL_LINUX 7-18 7 SHELL _LINUX %&'('% vEUwD " #$$)))*+))) , ," #,$$)))-+))) .%(% %%))))+/))) H vE 34&'& /0123 '' '' '' 44 4444 )566 ) )7+/' 0().8!3 %9.:'';''';'% %7<=>(!'% %?+'+;@'% = ( /0(.!3 %(A( B=+(CA(B% B=+($B M CD 34&'& (@.' +'' 444 44 '' +'' 444 44 SHELL_LINUX 8-18 8 SHELL _LINUX '' +:'' 444 44 '' A'' 444 44 '' • "G|-f|&!7@*"&|"•• • `I<+>#'MA&@*"#B@4 W (Ox&D TV@P!#BB@7";;YB'8f|4&'&@ [YB@>&@Õ#B4&@A>-8f|&& )566 )=DE4 )F;;<+4 )&G/H D 0(.;D3 ( =! L)&;)_<B' aKH'y#HUD [;@W)4!$N&/P8f|Jb20H!)!"„I )566 )';.2</4>&';/;H %(% ))I82</JJ''D4 =! FB'8f| uFz{zKDKUU 34ONB'8f|#B&|8"B8"B‚!@4bP8f|-;8;b#/ P&'>!8f SHELL_LINUX 9-18 9 SHELL _LINUX J@7/_!<#BB'8f|JbG0-;8;B'8f|J"G|87 @$bG?_!-|&'>!8;$"#'#$4b8V& >?X Ox&D|FAIz a8>7@$@A'P$|-;!8;P8f w8>77@#-!Y8>"|P8f| w'&!_!g_g_g% j&!-7#-!8f|4&'&H#B)&IF@|> ;&8>NVNK j&!-7!-f|b8>#)F@;& 8>N@VN@& 3'&j_gế8;->!"_ệ8>N@ j%&!-7!#$("-f|8>78G|$U[@; &8>NKVNK w!&@#-!!8847%[$"w&&'&;)8>!&&|8; 8>@D"/!& 34&'&!&ì !ỉì!8ỉ }K~z ? F'#|788 !"& |7"&H38.3I 2 " L88 )566 +JKL; ( (J9M-F! )9M-FNOP;+22Q-+4 R S =! Z[\3 #" 1. KD ^20[l0`[h0] !ĩĩ ! ẵẵ sĐrẳrrqr átrẵẵ srÔrrvárãqrtrrrạtằ ^20[l0`[h0 ! ! ẵẵ srĐrqrẳrqrơqrãqrtrtrẵẵ srÔrrrơrrạắằ ^h08[e0n/012 340`l0[ld0 !ĩĩ ! !2 ẻátrẵẵ srÔr rđ Ărqrẳrqrẵẵ sĐƠr átrơđ Ărqrẳrqrẵẵ sƯ SHELL_LINUX 10-18 10 [...].. .SHELL -_LINUX Vi du : $ rm myf && echo “xoa thanh cong” || echo “chua xoa duoc file” 2 I/O Redirection and file descriptors I/O redirector dung để gơi output cua lênh ra file và đoc input từ file ̀ ̉ ̉ ̣ ̣ Vi du : $ cat > myf this is my file nhân Ctrl+D ́ cat sẽ tao file myf chưa dong “this is my file” ̣ ́ ̀ Trong lâp trinh Linux, cac thiêt bị như ban phim, man hinh đêu đươc coi như là... ̀ ̀ ̣ ́ ̣ tên như sau : Standard File Stdin Stdout Stderr File descriptor number 0 1 2 Sử dụng Standard input Standard output Standard error Ví dụ Ban phim ̀ ́ Man hinh ̀ ̀ Man hinh ̀ ̀ Chung ta đã khá quen thuôc vơi stdin và stdout File cuôi cung trong bang trên là stderr (số 2) ́ ̣ ́ ́ ̀ ̉ đươc chương trinh dung để in lôi ra man hinh Ta có thể redirect output từ 1 file descriptor ra file... thế tât cả chuôi trung vơi substring băng replacement ́ ̃ ̀ ́ ̀ Ví dụ : stringZ=abcABC123ABCabc echo ${stringZ/abc/xyz} echo ${stringZ//abc/xyz} SHELL_ LINUX # xyzABC123ABCabc # xyzABC123ABCxyz 15-18 15 SHELL -_LINUX Bai tập ̀ Bai 1 : Viêt chương trinh shell giai phương trinh bâc hai : ax2 + bx +c =0 vơi cac tham số a,b,c nhâp từ ̀ ́ ̀ ̉ ̀ ̣ ́ ́ ̣ ban phim và cac kêt quả chinh xac đên hai chữ... _filesize[$index]=$filesize let "index +=1" fi SHELL_ LINUX # trương thứ 5 cua kêt quả lênh ls –l là kich ̀ ̉ ́ ̣ ́ # thươc file ́ # gan mang file name ́ ̉ # gan mang file size ́ ̉ 16-18 16 SHELL -_LINUX done echo "Tong so tap tin : $index" for ((i=0 ; i&destination 3 Ham ̀ Cú phap : ́ function-name ( ) { command1 commandN return } hoăc ̣ function function-name SHELL_ LINUX 11-18 11 SHELL -_LINUX { } command1 commandN return Trong đo, function-name là tên ham, lênh return sẽ kêt thuc ham ́ ̀ ̣ ́ ́ ̀ Goi ham : function-name ̣ ̀ Truyên tham số : function-name... exit 0;; *) echo "Please choice 1,2,3,4 Press Enter key to continue "; read;; esac done 5 Lệnh Shift Shift di chuyên nhưng tham số command line qua trai 1 vị tri ̉ ̃ ́ ́ Ví dụ : $ myfile -f foo bar $1 = -f ; $2 = foo ; $3 = bar khi goi lênh shift thì giá trị cac biên sẽ như sau : ̣ ̣ ́ ́ $1 = foo ; $2 = bar ; Ta có thể di chuyên qua trai nhiêu hơn 1 vị trí băng cach thêm số vao sau . () a@Pbc_'P$= 34&'&7d&ed"f_$=e 3'& g#B#O+%"Gb g7&h&"Y#O+7!""i"f i!!87H$"BI i!#&!7 i#B%"Gb i%"Gb i*@D"b i! ii"i 7j7k-6!!i!iiGi] SHELL_ LINUX 1-18 1 SHELL _LINUX * +,- ./012 34056̉ ̣ 34&'&7%&&&h&'&. ()NOP-QRS&,TUV a@8)Y8>"•&‡;&-;8";$ SHELL_ LINUX 2-18 2 SHELL _LINUX 34&'&7!!! !2=![ 7!#B!-G'P<@A!$,•EˆK‰ 7! !S],•EˆK‰] M"i&h&%"Gb@•&$&Y8>"7![$"7!j<#B OQ!@ 97!!. 98||Š‹!@D" [$"@V|Š‹!)b8V&#BD!#"&|Š‹ †87|Š‹S7!!-7&!†"„"88!-77 7k,!-7,„"88!-7] 7Œ575&!† |Š‹•#B@{ W +X) SHELL_ LINUX 3-18 3 SHELL _LINUX }w!&/-)78_@+&;)!D")*; !-G!" ,-)787 F@ -)788;/& 7!-G")*;& !-G! F788_")%"@$Y!-G!" -)788;,? 78;, 8;,