1. Trang chủ
  2. » Công Nghệ Thông Tin

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

17 121 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 542,88 KB

Nội dung

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Ừ KHÓA LIÊN QUAN

w