Thực hành hệ điều hành 6 chương + SOURCE

17 121 0
Thực hành hệ điều hành 6 chương + SOURCE

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 1  Cng Thc Hành Môn H iu Hành Mc Tiêu: Cài đt HH Linux và s dng shell script đ tìm hiu các thành phn trong HH Linux nh: h thng file, quá trình, b nh và xut nhp. Ni dung: Bui 1: Các lnh c bn ca Shell Bui 2: C bn v lp trình Shell Bui 3: Lp trình cu trúc và vòng lp trong Shell Bui 4: Qun lý tin trình Bui 5: Qun lý vào ra và tp tin Bui 6: Ôn tp Ph lc : Cài đt Ubuntu Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 2 Bài thc hành bui 1 GII THIU V SHELL VÀ CÁC LNH SHELL C BN Ni dung thc hành ̇ Tìm hiu v shell ̇ Các lnh c bn liên quan đn đng dn ̇ Các lnh liên quan đn vic kho sát th mc và file ̇ Các lnh thao tác file ̇ Quyn truy xut file (file permission) 1 Shell – B thông dch lnh 1.1 Shell là gì? Chúng ta bit rng máy tính ch có th thc hin các lnh dng nh phân (bit 0, 1), còn gi là mã nh phân. Các máy tính đu tiên mun thc hin đc chng trình thì ngi dùng phi np chng trình di dng các bit 0 và 1. ây là mt điu rt phin toái và cc k khó khn vi con ngi.  khc phc nhc đim này các nhà thit k và xây dng h điu hành đu có kèm theo m t chng trình đc bit. Thông qua chng trình này ngi dùng có th nhp các lnh di dng ngôn ng cp cao (ting Anh) đ yêu cu h điu hành thc hin mt công vic nào đó. Chng trình đc bit này đc gi là Shell (B thông dch lnh). H điu hành MS-DOS và Windows thì có môi trng đánh lnh command-line, h điu hành Unix và Linux có môi trng Shell. Chú ý rng Shell không là mt thành ca h điu hành mà nó s dng h điu hành đ thc thi lnh, thao tác file… H điu hành Linux có th có nhiu loi Shell khác nhau, di đây là mt vài Shell thông dng: Tên Shell c phát trin bi Ghi chú BASH ( Bourne- Again SHell ) Brian Fox and Chet Ramey Free Software Foundation Là Shell thông dng nht trong HH Linux CSH (C SHell) Bill Joy University of California (For BSD) Là Shell có cú pháp rt ging ngôn ng C KSH (Korn SHell) David Korn AT & T Bell Labs Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 3 Mt vài lnh liên quan đn shell Lit kê tt c các loi shell có th có trong h thng hin ti dùng lnh: $cat /etc/shells Kim tra loi Shell đang đc s dng: $echo $SHELL 1.2 Khi đng Shell Nu chúng ta đng nhp vào h điu hành Linux di dng Text thì mc nhiên chúng ta s phi trc tip làm vic vi Shell. Trng hp dùng Linux di dng đ ha (graphic) thì Shell s đc khi đng khi ta khi đng ca s terminal (trong Fedora vào Applications / Accessories / Terminal). Khi Shell đc khi đng ngi dùng s đc đón chào và bt đu nhp lnh t du nhc (prompt) nh sau $ Tuy nhiên dng thc ca d u nhc có th thay đi tùy h thng. Nó có th bao gm c tên ca máy tính (hostname), th mc hin hành đang làm vic ca bn (current working directory). 1.3 Shell script là gì? Nh đã nói  trên shell là ni cho phép ngi dùng nhp lnh (thông thng t bàn phím) và thc thi lnh. Nhng thay vì ngi dùng nhp tun t các câu lnh và thc thi chúng mt cách tun t thì ngi dùng có th lu các lnh này vào mt file text và yêu cu shell thc hin file này. iu này đc gi là shell script. 2 Các lnh c bn ca Linux 2.1 Lnh chuyn th mc cd và đng dn trong linux Mc đích: Lnh cd cho phép bn di chuyn đn nhng đim khác nhau trên cây th mc. Cú pháp tng quát: $cd path Trong đó path là đng dn ch đn th mc mà ta mun chuyn đn. Ví d: Chuyn đn th mc /usr/local/bin thc hin nh sau: Chuyn v th mc ca ngi dùng hin ti ta đánh lnh: cd Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 4 2.2 ng dn (Path) trong h điu hành Linux Dùng đ đnh v mt tài nguyên nào đó (thông thng là file) trong h thng cây th mc.  xác đnh xem bn đang  v trí nào (hay còn gi là th mc hin hành) trong cây th mc s dng lnh: $pwd. Ví d: Có 2 loi đng dn thng đc s dng là: ng dn tuyt đi và đng dn tng đi. 2.3 ng dn tuyt đi Xác đnh đy đ toàn b đng dn t th mc gc (ký hiu: / ) đn ni cn đnh v. Ví d: /dev /usr/bin /usr/local/bin  chuyn vào th mc /user/local/bin dùng lnh nh sau: $cd /user/local/bin 2.4 ng dn tng đi ng dn tng đi là đng dn đc tính t v trí hin hành đn v trí cn đnh v . Mt đng dn tng đi không bao gi bt đu vi ký t ‘/’. Ví d: gi s chúng ta đang  th mc hin hành là /usr. Khi đó đ chuyn đn th mc /usr/local/bin chúng ta s dng lnh: $cd local/bin (Trong khi nu s dng đng dn tuyt đi thì phi đánh lnh: $cd /usr/local/bin) 2.5 Th mc cha “ ” Th mc cha ca th mc hin hành đc ký hi u bng chui hai chm: “ ” Ký hiu này thng đc s dng vi lnh cd đ chuyn v th mc cha ca th mc hin hành: Ví d: Gi s chúng ta đang  th mc hin hành là /usr/local/bin và thc hin lnh $cd Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 5 Khi đó chúng ta s đc di chuyn v th mc /usr/local (th kim tra li bng lnh $pwd). Chúng ta hoàn toàn có th s dng ký hiu “ ” trong đng dn tng đi. Gi s có 2 đng dn /usr/local/bin và /usr/local/share và chúng ta đang có th mc hin hành là /usr/local/bin.  di chuyn qua th mc /usr/local/share ta dùng lnh: $cd /share Lnh này có ngha là yêu cu h điu hành di chuyn v th mc cha ca bin (là /usr/local) và chuyn tip đn th mc share. 2.6 Th mc hin hành “.” Ký hiu du chm “.” đc dùng đ th hi n th mc hin hành và đc s dng đ yêu cu shell thc hin mt chng trình hay shell script nào đó trong th mc hin hành. Ví d: $./myprog myprog là mt shell script trong th mc hin hành. 2.7 Th mc cá nhân “~” Trong h điu hành Linux mi ngi dùng khi đng nhp vào đu có mt th mc cá nhân đ lu tr d liu riêng. Khi mun tr v th mc cá nhân ngi dùng có th  dùng lnh cd không tham s. Cho dù đang  bt k th mc nào trong cây th mc. Ngoài ra ký hiu “~” cng đc dùng đ xác đnh là th mc các nhân. Ví d ta thc hin chng trình myprog trong th mc hin hành, vi tham s là myfile.txt  th mc cá nhân bng lnh sau: $ ./myprog ~/myfile.txt 2.8 Bin môi trng PATH Bin PATH là mt bin trong môi trng shell. PATH lu danh sách các đng dn mà shell da vào đó đ tìm kim mt chng trình hay file nào đó khi cn thit sau khi tìm kim  th mc hin hành không có.  kim tra bin PATH đang lu nhng đng dn nào ta dùng lnh: $echo $PATH Chú ý: PATH phi là ký t hoa. Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 6  thêm đng dn mi vào danh sách ca bin PATH ta có th gn đng dn cn thêm vào sau biên PATH nh sau: PATH=$PATH:<path> Ví d: (chú ý PATH=$PATH phi vit lin nhau) ng dn /root/shellscript/ đã đc đa vào bin PATH. 3 Các lnh liên quan đn vic kho sát th mc và file: ls, less và file 3.1 Lnh ls (list files và th mc) Lnh ls đc dùng đ lit kê ni dung ca th mc. ây là lnh đc dùng thng nht trong Linux. Lnh ls đc s dng rt nhiu cách vi các tham s tng ng. Di đây là mt vài trng hp s dng ca lnh ls. $ls: lit kê file trong th mc hin hành Ví d: $ls -l: lit kê files trong th mc hin hành vi thông tin đy đ (long format) Ví d: Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 7 Kt qu ca lnh ls vi tham s -l đc chia thành 7 ct: (1) (2) (3) (4) (5) (6) (7) Ct (1): xác đnh quyt truy xut ca file hoc th mc. Ký hiu “-” th hin đó là mt file bình thng, ký t “d” xác đnh đó là th mc. Tp hp các ký t theo sau đc chia làm 3 nhóm, mi nhóm 3 ký t. Các ký t này có th là r (read), w (write), x (execute). Nhóm 3 ký t đu th hin quyn ca ngi s hu (owner), nhóm 3 ký t k th hin quyn cho nhóm (group) và nhóm 3 ký t cui th hin quy n cho tt c nhng ngi dùng khác. Ct (2): th hin s lng ni kt kay liên kt (link) đn tp tin hoc th mc (khái nim ni kt s đc đ cp sau) Ct (3): xác đnh ch s hu ca tp tin hoc th mc Ct (4): tên ca nhóm có quyn tng ng trên tp tin hoc th mc Ct (5): kích thc tp tin hoc th mc tính theo bytes Ct (6): thi gian mà file hay th mc đc cp nht. Ct (7): tên file hoc th mc. 3.2 Lnh less Lnh less cho phép xem ni dung ca file text. Cú pháp: $ less tên_file Ví d: Kt qu thc hin lnh trên nh sau: Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 8 Ni dung ca file đc lit kê theo tng trang màn hình.  duyt qua ni dung ca file ta dùng các phím chc nng nh sau: Page Up hoc b: cun lên 1 trang Page Down hoc space: cun xung 1 trang G: di chuyn đn dòng cui ca file 1G: di dhuyn đn dòng đu ca file /chui: nhy đn dòng cha chui cn tìm n: tip tc tìm chui đã tìm trc đó q: thoát 3.3 Lnh file Lnh file đc dùng đ xác đ nh file thuc loi file gì, chng hn nh file: ASCII text, Bourne-Again shell script text, JPEG image data, RPM… Cú pháp: $file tên_file 4 Các lnh thao tác file 4.1 Ký t đi din (wildcard) Ký t đi din đc dùng đ xác đnh tên file hay tp hp các tên phai theo mt khuôn mu (pattern) nào đó. Di đây lit kê các ký t đi din và ý ngha ca nó: Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 9 Ký t đi din Ý ngha * Trùng khp vi bt k mt hay nhiu ký t nào ? Trùng khp vi bt k ký t đn nào [tp_hp_các_ký_t] Trùng khp vi bt k ký t nào nm trong tp_hp_các_ký_t. Tp_hp_các_ký_t có th đc th hin di dng 1 khon. Ví d [A-Z] th hin tp hp các ký t hoa. [! tp_hp_các_ký_t] Trùng khp vi bt k ký t nào KHÔNG nm trong tp_hp_các_ký_t Di đây là mt vài ví d minh ha vic s dng ký t đi din. Ví d Gii thích * Tt c tên file g* Tt c các file có tên bt đu bng ch g b*.txt Tt c các file có tên bt đu bng ch b và kt thúc vi .txt Data??? Tt c các file có tên bt đu vi Data và tip theo là chính xác 3 ký t. [abc]* Tt c các file có tên bt đu bng a hoc b hoc c theo sau là bt k ký t gì [A-Z]* Tt c các file có tên bt đu bng ký t hoa theo sau là bt k ký t gì BACKUP.[0-9][0- 9][0-9] Tt c các file có tên bt đu vi BACKUP k đn là du chm và tip theo là 3 ký s [!a-z]* Tt c các file có tên bt đu KHÔNG phi là ký t thng theo sau là bt k ký t gì 4.2 Lnh cp (copy) Lnh cp thc hin copy file hoc th mc. Di đây là các dng c bn ca lnh cp. Cú pháp Gii thích cp file1 file2 Copy ni dung ca file1 vào file2. Nu file2 cha tn ti thì s đc to ra, ngc li ni dung ca file2 s b chép chng. cp -i file1 file2 Ging nh trên, nhng trong trng hp file2 đã tn ti thì ngi dùng s đc nhc nh trc khi file2 b chép chng. cp file1 dir1 Copy file1 vào trong th mc dir1 cp –R dir1 dir2 Nu dir2 cha tn ti thì dir2 đc to ra và ni dung th mc 1 đc chép vào. Trng hp dir2 đã tn ti thi th mc dir1 đc to ra trong dir2 và ni dung ca th mc dir1 đc chép vào dir1 trong dir2. 4.3 Lnh mv (move) Lnh mv dùng đ di chuyn mt hoc nhiu files vào mt th mc khác, hoc lnh mv cng có th đc dùng đ đi tên file. Di đây là mt s cách dùng ca lnh mv. Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 10 Cú pháp Gii thích mv file1 file2 Nu file2 không tn ti thì file1 đi tên thành file2. Trng hp file2 đã tn ti thì ni dung ca file2 b chép chng và file1 s b xóa. mv file1 file2 file3 dir Di chuyn file1, file2, file3 vào th mc dir nu th mc dir tn ti, nu không lnh mv s báo li. mv dir1 dir2 Nu dir2 không tn ti thì th mc dir1 đi tên thành dir2. Trng hp dir2 đã tn ti thì dir1 s đc di chuyn vào dir2. 4.4 Lnh rm (remove) c dùng đ xóa file hoc th mc. Di đây là vài cách dùng ca lnh rm. Cú pháp Gii thích Rm file1 file2 Xóa file1 và file2 Rv –r dir1 dir2 Xóa th mc dir1 và dir2 cùng vi toàn b ni dung ca nó 4.5 Lnh mkdir (make directory): c dùng đ to th mc. Cú pháp: $mkdir tên_th_mc 4.6 Lnh "which" Bn có th kim tra mt chng trình nào đó có nm trong các th mc đc ch ra bi PATH hay không bng cách dùng lnh which. Ví d,  đây ta s thy rng trong h thng Linux hin tai không có chng trình tên sense: $ which sense which: no sense in (/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin) Trng hp khác ta li thành công khi tìm lnh ls: $ which ls /usr/bin/ls 4.7 S dng "which -a" Dùng c -a đ yêu cu which hin th tt c các chng trình đc yêu cu có trong các th mc đc mô t bi PATH: $ which -a ls /usr/bin/ls /bin/ls 4.8 Lnh whereis Nu bn mun tìm nhiu thông tin hn ngòai v trí ca mt chng trình bn có th dùng chng trình whereis : $ whereis ls ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz Ta thy rng that ls có mt trong hai ni là /bin và /usr/bin. Hn th chúng ta còn đc thông báo rng có tài liu hng dn s dng nm trong th mc /usr/share/man. 4.9 L nh find [...]... Nh v y êr ch s h u có quy n c vi t thì nhóm 3bit u ph i là rw- (110 hay 6) , 2 nhóm 3bit còn l i là - - (000 000 hay 00) Khi ó l nh chmod cs d ng nh sau: Sau ây là b ng mô t các thi t l p quy n truy xu t file ho c th m c th d ng Giá tr thi t l p 777 (rwx rwx rwx) 755 (rwx r-x r-x) 700 (rwx - -) 66 6 (rw- rw- rw-) 64 4 (rw- r r ) 60 0 (rw- - -) ng s Mô t u có toàn quy n, thi t l p này th M i ng i ng... 111 000 000 … Ths Phan Th ng Cang - Ths Bùi Qu c Thái Trang 13 Tài Li u Th c Hành H i u Hành – B môn HTMT&TT Dãy các bit nh phân này có th c bi u di n thành các s th p phân b i t ng nhóm 3bit D i ây là dãy 3bit có th có dùng thi t l p quy n truy xu t cho file ho c th m c rwx = 111 = 7 (read, write và execute) rw- = 110 = 6 (read, write) r-x = 101 = 5 (read, execute) r = 100 = 4 (read) hi u rõ h n... th thêm d u Ths Phan Th ng Cang - Ths Bùi Qu c Thái Trang 11 Tài Li u Th c Hành H i u Hành – B môn HTMT&TT c ng (có ngh a là sau) ho c d u tr (có ngh a là tr c), th i i m m c c tính t i th i i m cách th i i m hi n t i 24gi Ví d , Xem xét tr ng h p sau: $ ls -l ? -rw - 1 root root 0 Jan 7 18:00 a -rw - 1 root root 0 Jan 6 18:00 b -rw - 1 root root 0 Jan 5 18:00 c -rw - 1 root root 0 Jan 4 18:00... nhân c a mình Myweb |-images | | icon | | background | | animation |-databases |-scripts |-java Dùng l nh tree xem l i cây th m c v a t o Ths Phan Th ng Cang - Ths Bùi Qu c Thái Trang 16 Tài Li u Th c Hành H i u Hành – B môn HTMT&TT Bài 9: Tìm m t s file có ph n m r ng html và class trong h th ng file và th c hi n copy vài file html vào th m c Myweb và vài file class vào th m c Myweb/scripts Bài... nh sau: $ find /usr/share/doc -name README\* /usr/share/doc/iproute2-2.4.7/README.gz /usr/share/doc/iproute2-2.4.7/README.iproute2+tc.gz /usr/share/doc/iproute2-2.4.7/README.decnet.gz /usr/share/doc/iproute2-2.4.7/examples/diffserv/README.gz /usr/share/doc/pilot-link-0.9 .6- r2/README.gz /usr/share/doc/gnome-pilot-conduits-0.8/README.gz /usr/share/doc/gimp-1.2.2/README.i18n.gz /usr/share/doc/gimp-1.2.2/README.win32.gz...Tài Li u Th c Hành H i u Hành – B môn HTMT&TT L nh find là m t ti n ích khác cho phép b n tìm ki m các t p tin V i find b n không b gi i h n trong ph m vi tìm ki m ch ng trình, b n có th tìm ki m m t t p tin b t k mà b n... c có ngh a là cho phép li t kê n i dung trong th m c ó D i ây là vài ví d v gán quy n cho th m c: Ths Phan Th ng Cang - Ths Bùi Qu c Thái Trang 14 Tài Li u Th c Hành H Giá tr thi t l p 777 (rwx rwx rwx) 755 (rwx r-x r-x) 700 (rwx - -) i u Hành – B môn HTMT&TT Mô t M i ng i u có toàn quy n (li t kê, t o và xóa) Ch s h u có toàn quy n, nh ng ng i còn l i ch có th li t kê n i dung th m c, không có quy... ph i có quy n root (dùng l nh su) Ví d : Các l nh trên ã thay root 5.4 L nh chgrp Ths Phan Th i quy n s h u c a file test t ng ng Cang - Ths Bùi Qu c Thái i dùng bqthai sang Trang 15 Tài Li u Th c Hành H i u Hành – B môn HTMT&TT L nh chgrp c s d ng thay i quy n truy c p c a nhóm m c Cú pháp và c ch ho t ng c ng gi ng nh l nh chown i v i file và th Bài T p Bài 1: Th c hi n và kh o sát l i t t c các ví... 3) có th c th c hi n theo cú pháp: sh hello cho dù ang ng b t k v trí nào? Bài 6: Th c hi n l nh ls –l trong th m c /bin Xác nh các quy n c a ng i s h u, nhóm và ng i dùng khác trên file ls và sh? Th hi n l nh ls –l trên th m c g c Xác nh các quy n và nh ng ng i dùng hay nhóm ng i dùng t ng ng c a th m c root? Bài 7: Th c hành l nh file b ng cách tìm các file d ng ASCII và dùng l nh less xem n i dung... d li u c a ng i dùng khác H H Linux ã th c hi n vi c này th nào, trong ph n này chúng ta tìm hi u các l nh sau: chmod su chown chgrp Ths Phan Th ng Cang - Ths Bùi Qu c Thái Trang 12 Tài Li u Th c Hành H i u Hành – B môn HTMT&TT ây là các l nh c b n nh t liên quan n vi c thi t l p các quy n truy xu t n file Tuy nhiên tr c khi c p k n các l nh trên Chúng ta s tìm hi u m t chút v các quy n truy xu t trên . Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 1  Cng Thc Hành Môn H iu Hành Mc Tiêu: Cài đt HH. và tp tin Bui 6: Ôn tp Ph lc : Cài đt Ubuntu Tài Liu Thc Hành H iu Hành – B môn HTMT&TT Ths. Phan Thng Cang - Ths. Bùi Quc Thái Trang 2 Bài thc hành bui 1 . lnh). H điu hành MS-DOS và Windows thì có môi trng đánh lnh command-line, h điu hành Unix và Linux có môi trng Shell. Chú ý rng Shell không là mt thành ca h điu hành mà nó s

Ngày đăng: 21/10/2014, 20:55

Tài liệu cùng người dùng

Tài liệu liên quan