Bài giảng Hệ điều hành unix

Tài liệu Bài giảng Hệ điều hành unix: HỆ ĐIỀU HÀNH UNIX HỆ ĐIỀU HÀNH UNIX I/ Tổng quan về hệ điều hành UNIX 1. Lịch sử Năm 1969 Ken Thompson đã lần đầu tiên cài đặt hệ điều hành UNIX. Mục tiêu khởi đầu là cung cấp một môi trường máy tính hoá để mô phỏng trò chơi không gian. Năm 1973 Ritchie và Thompson đã viết lại hệ điều hành bằng ngôn ngữ C, khác hẳn với các hệ điều hành truyền thống ghi bằng ngôn ngữ máy, do đó UNIX rất dễ cài đặt trên các hệ máy khác. Từ đó đã khai sinh ra hệ điều hành UNIX. Năm 1974 hệ thống UNIX đã được cài đặt trên các máy DEC PDP-11 ở hơn 100 trường đại học. Mục tiêu chủ yếu là cung cấp môi trường cho các lập trình viên chuyên nghiệp. Ngày nay, 20 năm đã qua, có hàng trăm ngàn hệ thống UNIX cài đặt trên khắp thế giới. Hầu hết các hãng sản xuất máy đều có một phiên bản cho UNIX. Tuy nhiên hiện nay để chuẩn hoá hệ điều hành UNIX, người ta quy...

pdf43 trang | Chia sẻ: Khủng Long | Lượt xem: 1176 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Hệ điều hành unix, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
HEÄ ÑIEÀU HAØNH UNIX HEÄ ÑIEÀU HAØNH UNIX I/ Toång quan veà heä ñieàu haønh UNIX 1. Lòch söû Naêm 1969 Ken Thompson ñaõ laàn ñaàu tieân caøi ñaët heä ñieàu haønh UNIX. Muïc tieâu khôûi ñaàu laø cung caáp moät moâi tröôøng maùy tính hoaù ñeå moâ phoûng troø chôi khoâng gian. Naêm 1973 Ritchie vaø Thompson ñaõ vieát laïi heä ñieàu haønh baèng ngoân ngöõ C, khaùc haún vôùi caùc heä ñieàu haønh truyeàn thoáng ghi baèng ngoân ngöõ maùy, do ñoù UNIX raát deã caøi ñaët treân caùc heä maùy khaùc. Töø ñoù ñaõ khai sinh ra heä ñieàu haønh UNIX. Naêm 1974 heä thoáng UNIX ñaõ ñöôïc caøi ñaët treân caùc maùy DEC PDP-11 ôû hôn 100 tröôøng ñaïi hoïc. Muïc tieâu chuû yeáu laø cung caáp moâi tröôøng cho caùc laäp trình vieân chuyeân nghieäp. Ngaøy nay, 20 naêm ñaõ qua, coù haøng traêm ngaøn heä thoáng UNIX caøi ñaët treân khaép theá giôùi. Haàu heát caùc haõng saûn xuaát maùy ñeàu coù moät phieân baûn cho UNIX. Tuy nhieân hieän nay ñeå chuaån hoaù heä ñieàu haønh UNIX, ngöôøi ta quy öôùc caùc taäp leänh chuaån vaø goïi laø UNIX System V Release 4. Treân maùy PC hieän nay phoå bieán hai heä ñieàu haønh laø SCO UNIX vaø SUN Solaris. 2. Caùc ñaëc ñieåm cô baûn Heä ñieàu haønh UNIX coù moät soá ñaëc ñieåm sau: — Ña chöông — Nhieàu ngöôøi söû duïng — Baûo maät — Ñoäc laäp phaàn cöùng — Keát noái môû — Duøng chung thieát bò — Toå chöùc taäp tin phaân caáp a/ Nhieàu ngöôøi söû duïng: Nhieàu ngöôøi söû duïng coù theå söû duïng maùy tính coù caøi UNIX taïi moät thôøi ñieåm. Ví duï: UNIX Server: — User A: duøng Oracle — User B: chöông trình bieân dòch — User C: göûi thö Heä ñieàu haønh UNIX quaûn lyù nhöõng ngöôøi söû duïng theo caáu truùc phaân caáp, ngöôøi söû duïng coù theå giao tieáp vôùi nhau theo caùc nhoùm. Ngöôøi söû duïng cao nhaát (super user) coù theå can thieäp ñeán caùc ngöôøi söû duïng khaùc neáu caàn. Trang 1/43 HEÄ ÑIEÀU HAØNH UNIX b/ Ña chöông Taïi moät thôøi ñieåm moät ngöôøi söû duïng coù theå thöïc hieän ñoàng thôøi nhieàu taùc vuï. Vôùi heä ñieàu haønh ñôn chöông nhö MS-DOS moät leänh thöïc hieän seõ chieám toaøn boä thôøi gian CPU xöû lyù, baïn chæ coù theå thöïc hieän leänh keá khi leänh tröôùc ñoù ñaõ ñöôïc thöïc hieän xong. Coøn trong heä ñieàu haønh UNIX baïn coù theå ñaët leänh chaïy ôû cheá ñoä neàn (background) ñoàng thôøi khi ñoù coù theå thöïc hieän caùc leänh keá. c/ Toå chöùc taäp tin phaân caáp Caùc taäp tin cuûa UNIX ñöôïc toå chöùc theo daïng caây coù chung thö muïc goác ñöôïc bieåu dieãn bôûi kyù töï /. Beân trong thö muïc coù theå laø caùc thö muïc con hay caùc taäp tin . UNIX coù 3 loaïi taäp tin: - Taäp tin bình thöôøng (ordinary file): laø moät taäp tin chöùa caùc döõ lieäu ASCII hay nhò phaân. - Taäp tin thö muïc (directory file): chöùa danh saùch caùc phaàn töû (thö muïc, taäp tin, thieát bò) coù theå truy xuaát tôùi. - Taäp tin ñaëc bieät (special file): laø caùc taäp tin lieân quan ñeán caùc thieát bò phaàn cöùng vaø truyeàn thoâng. Ví duï: - baøn phím laø moät taäp tin nhaäp. - maøn hình laø moät taäp tin xuaát. / UMUNIX - bin - users - dev user1 user2 (n oå ñóa) Ñoái vôùi Unix toaøn boä heä thoáng taäp tin chæ coù moät root. Coù theå söû duïng leänh mount ñeå keát noái caùc oå ñóa trong moät heä thoáng taäp tin duy nhaát. OÅ 1 : / LIB BIN USR OÅ 2: /- ETC ORACLE mount => /- LIB BIN USR- ETC Trang 2/43 HEÄ ÑIEÀU HAØNH UNIX - ORACLE d/ Ñoäc laäp phaàn cöùng Vì heä ñieàu haønh UNIX ñöôïc vieát baèng ngoân ngöõ caáp cao cho neân noù raát deã caøi ñaët treân caùc caáu hình phaàn cöùng khaùc. Hôn nöõa vôùi caùch toå chöùc caùc thieát bò laø caùc taäp tin ñaëc bieät neân vieäc theâm vaøo hay loaïi boû caùc thieát bò raát deã daøng. e/ Duøng chung thieát bò Vì Unix laø moâi tröôøng nhieàu ngöôøi söû duïng do ñoù caùc thieát bò ngoaïi vi nhö maùy in,v.v... coù theå ñöôïc duøng chung bôûi nhieàu ngöôøi söû duïng. f/ Baûo maät Unix cung caáp raát nhieàu cô cheá baûo maät khaùc. Trong ñoù moãi ngöôøi söû duïng coù moät soá quyeàn treân caùc taäp tin nhaát ñònh vaø chæ ñöôïc pheùp chaïy moät soá chöông trình nhaát ñònh. Ngoaøi ra cô cheá maõ hoaù vaø giaûi maõ cuõng laø moät phaàn cuûa heä ñieàu haønh. g/ Keát noái môû Unix cung caáp caùc thieát bò maïng qua Ethernet, Modem, X25. Vôùi nhieàu thuû tuïc truyeàn thoâng khaùc nhau UUCP (Unix-to-Unix Copy), TCP/IP, vaø caùc öùng duïng E-mail,FTP, NFS (Network File System). 3. Caùc thaønh phaàn chính cuûa heä ñieàu haønh UNIX:  Windows & Graphic User Interface  Shell  Leänh vaø tieän ích  Caùc boä ñieàu khieån thieát bò  Kernel a/ Kernel: Laø thaønh phaàn chuû yeáu hay traùi tim cuûa heä ñieàu haønh. Noù chieám khoaûng 500KB --> 2MB tuøy theo tính chaát phöùc taïp cuûa heä thoáng. Nhieäm vuï chuû yeáu cuûa Kernel laø:  Quaûn lyù taøi nguyeân: nhö boä nhôù, v.v...  Quaûn lyù heä thoáng taäp tin: coù theå laø caùc taäp tin, thö muïc cuïc boä hay töø xa.  Quaûn lyù caùc quaù trình thöôøng truù (deamon).  Quaûn lyù boä nhôù aûo: ñeå thöïc thi nhieàu quaù trình ñoàng thôøi trong khiù soá löôïng boä nhôù coù haïn, Unix toå chöùc moät vuøng treân ñóa nhö laø moät vuøng boä nhôù (boä nhôù aûo). Kernel phaûi “swap” caùc quaù trình giöõa boä nhôù --> boä nhôù aûo RAM Kernel Vuøng laøm vieäc Swap Ñóa cöùng Swap boä nhôù aûo Trang 3/43 HEÄ ÑIEÀU HAØNH UNIX  Quaûn lyù quaù trình : Nhö ñaõ bieát vì Unix laø moät heä ñieàu haønh ña chöông do ñoù vieäc quaûn lyù caùc quaù trình ñoàng thôøi raát phöùc taïp. Noù phaûi quaûn lyù vieäc khôûi taïo vaø keát thuùc caùc quaù trình cuõng nhö caùc tranh chaáp coù theå xaûy ra.  Quaûn lyù caùc boä ñieàu khieån thieát bò.  Quaûn lyù maïng: bao goàm nhieàu thieát bò phaàn cöùng khaùc vaø caùc thuû tuïc khaùc.  Quaûn lyù vieäc khôûi ñoäng vaø döøng maùy. b/ Boä ñieàu khieån thieát bò: UNIX theå hieän caùc thieát bò vaät lyù nhö caùc taäp tin ñaëc bieät. Moä taäp tin ñaëc bieät seõ coù 1 ñieåm vaøo trong thö muïc vaø coù 1 teân taäp tin. Do ñoù Unix cho pheùp ngöôøi söû duïng ñònh nghóa teân thieát bò. Caùc thieát bò ñöôïc chia laøm hai loaïi: kyù töï vaø khoái. - Thieát bò kyù töï ñoïc vaø ghi doøng caùc kyù töï (ví duï caùc thieát bò ñaàu cuoái). - Thieát bò khoái ñoïc vaø ghi döõ lieäu trong caùc khoái coù kích thöôùc coá ñònh (ví duï oå ñóa). Thieát bò coù theå ñoåi teân nhö ñoåi teân taäp tin. Thö muïc chöùa caùc boä ñieàu khieån thieát bò laø /dev. c/ Leänh vaø tieän ích: Caùc leänh vaø tieän ích cuûa Unix raát ña daïng. Moät leänh UNIX coù daïng: $leänh [caùc choïn löïa] [caùc ñoái soá] leänh thöôøng laø chöõ nhoû. Unix phaân bieät chöõ lôùn, nhoû. Ví duï: $ls -c /dev Ta coù theå chia leänh thaønh caùc nhoùm sau: a/ Caùc leänh khôûi taïo: exit thoaùt khoûi heä thoáng (Bourne-Shell) logout thoaùt khoûi heä thoáng C-Shell id chæ danh cuûa ngöôøi söû duïng logname teân ngöôøi söû duïng login man giuùp ñôõ newgrp chuyeån ngöôøi söû duïng sang moät nhoùm môùi psswd thay ñoåi password cuûa ngöôøi söû duïng set xaùc ñònh caùc bieán moâi tröôøng tty ñaët caùc thoâng soá terminal uname teân cuûa heä thoáng (host) who cho bieát nhöõng ai ñang thaâm nhaäp heä thoáng b/ Trình baùo maøn hình: echo hieån thò doøng kyù töï hay bieán setcolor ñaët maøu neàn vaø chöõ cuûa maøn hình Trang 4/43 HEÄ ÑIEÀU HAØNH UNIX c/ Desktop: bc tính bieåu thöùc soá hoïc cal maùy tính caù nhaân date hieån thò vaø ñaët ngaøy mail göûi - nhaän thö tín ñieän töû mesg caám/ cho pheùp hieån thò thoâng baùo treân maøn hình (bôûi write/ hello) spell kieåm tra loãi chính taû vi soaïn thaûo vaên baûn write/ hello cho pheùp göûi doøng thoâng baùo ñeán nhöõng ngöôøi söû duïng trong heä thoáng d/ Thö muïc: cd ñoåi thö muïc copy sao cheùp 2 thö muïc mkdir taïo thö muïc rmdir loaïi boû thö muïc pwd trình baøy thö muïc hieän haønh e/ Taäp tin: cas/ more trình baøy noäi dung taäp tin cp sao cheùp moät hay nhieàu taäp tin find tìm vò trí cuûa taäp tin grep tìm vò trí cuûa chuoãi kyù töï trong taäp tin ls, l, lf, lc trình baøy teân vaø thuoäc tính cuûa caùc taäp tin trong thö muïc mv chuyeån/ ñoåi teân moät taäp tin sort saép thöù töï noäi dung taäp tin wc ñeám soá töø trong taäp tin f/ Quaûn lyù quaù trình: kill huûy boû moät quaù trình ps trình baøy tình traïng cuûa caùc quaù trình sleep ngöng hoaït ñoäng moät thôøi gian g/ Kieåm soaùt chuû quyeàn: chgrp chuyeån chuû quyeàn taäp tin, thö muïc töø moät nhoùm sang moät nhoùm khaùc chmod thay ñoåi quyeàn sôû höõu cuûa taäp tin hay thö muïc chown thay ñoåi ngöôøi sôû höõu taäp tin hay thö muïc h/ Kieåm soaùt in: cancel ngöng in lp in taøi lieäu ra maùy in lpstat traïng thaùi cuûa haøng chôø in Trang 5/43 HEÄ ÑIEÀU HAØNH UNIX d/ Shell: Laø boä xöû lyù leänh cuûa ngöôøi söû duïng, noù cho pheùp ngöôøi söû duïng taïo caùc leänh raát phöùc taïp töø caùc leänh ñôn giaûn. Chuùng ta coù theå coi shell nhö moät ngoân ngöõ laäp trình caáp cao. Caùc chöùc naêng chính cuûa shell laø: UNIX Shell:  Kieåm soaùt I/O vaø ñoåi höôùng  Caùc bieán moâi tröôøng  Thöïc hieän leänh  Thö vieän leänh noäi taïi  Teân taäp tin môû roäng  Ngoân ngöõ laäp trình vaø moâi tröôøng Thöïc hieän leänh: Leänh coù theå ñöôïc thöïc hieän ôû cheá ñoä töông taùc vôùi ngöôøi söû duïng hay cheá ñoä neàn (background). Thö vieän leänh noäi taïi: Caùc leänh noäi truù trong shell. Ngoân ngöõ laäp trình vaø moâi tröôøng: Cho pheùp taïo caùc taäp tin shell-script vaø caùc caáu truùc ñieàu khieån nhö Do, While, Until, If, Case. Teân taäp tin môû roäng: Cho pheùp bieân dòch teân taäp tin ôû daïng ?, *. Caùc bieán moâi tröôøng: Cho pheùp ñaët caùc bieán moâi tröôøng. Ví duï: PATH=/USR/BIN Kieåm soaùt I/O vaø ñoåi höôùng: Shell ñònh nghóa caùc thieát bò xuaát/ nhaäp chuaån vaø cho pheùp ta ñoå höôùng thieát bò xuaát/ nhaäp cuûa caùc quaù trình. Hieän nay ngöôøi ta söû duïng ba loaïi shell, tuøy theo loaïi maø coù cuù phaùp khaùc nhau: Bourne-Shell : laø shell cô baûn nhaát, nhanh, hieäu quaû, nhöng ít leänh. C-Shell : gioáng nhö Bourne-Shell nhöng cung caáp theâm caùc caáu truùc ñieàu khieån, history, bí danh. Korn-Shell : Keát hôïp caû Bourne-Shell vaø C-Shell. e/ Windows vaø Graphic User Interface: Giao tieáp ñoà hoaï vaø cöûa soå laø moät khaû naêng raát maïnh cuûa heä ñieàu haønh UNIX, noù cho pheùp heä ñieàu haønh giao tieáp thaân thieän hôn vôùi ngöôøi söû duïng. Hieän nay UNIX caøi ñaët XWINDOW (X11) laø moät moâi tröôøng quaûn lyù ñoà hoaï lyù töôûng. Trong Sun Solaris thì söû duïng vôùi teân goïi laø OpenWin. 4. Toùm laïi: Ñöùng veà phía ngöôøi söû duïng ta coù theå hình dung heä ñieàu haønh UNIX nhö sau: Ngöôøi söû duïng - leänh Unix - bieân dòch Shell - Kernel - Maùy tính. 5. UNIX vaø MS-DOS Phaàn naøy nhaèm khaùm phaù söï töông töï vaø khaùc bieät giöõa UNIX vaø MS-DOS ñeå giuùp cho nhöõng ngöôøi ñaõ laøm quen vôùi MS-DOS coù theå deã daøng hoïc UNIX. Trang 6/43 HEÄ ÑIEÀU HAØNH UNIX 5.1/ Caùc ñaëc ñieåm chung cung caáp bôûi UNIX vaø MS-DOS Boä bieân dòch leänh UNIX vaø MS-DOS caû hai ñeàu coù boä bieân dòch leänh taùch bieät vôùi phaàn nhaân cuûa heä ñieàu haønh. Öu ñieåm chính cuûa vieäc taùch bieät vôùi nhaân cuûa heä ñieàu haønh laø söï ñoäc laäp naøy cho pheùp baïn coù theå choïn caùc loaïi shell khaùc nhau ñeå söû duïng. Caû hai moâi tröôøng DOS vaø UNIX ñeàu coù moät soá boä bieân dòch leänh khaùc nhau. Trong UNIX shell chuaån ñöôïc laø sh, trong MS-DOS noù ñöôïc goïi laø Command.com. Trong caû hai heä thoáng baïn coù theå thöïc hieän moät baûn sao môùi cuûa shell baèng caùch ñaùnh teân cuûa noù nhö leänh. Moät shell môùi seõ ñöôïc chaïy nhö moät quaù trình cuûa shell hieän haønh. Laäp trình Shell Trong MS-DOS coù caùc taäp tin boù cho pheùp baïn toå hôïp caùc leänh thöôøng söû duïng vaøo 1 leänh môùi. Ñaây laø moät daïng laäp trình. Söùc maïnh laäp trình cuûa shell trong UNIX lôùn hôn nhieàu so vôùi ñaëc ñieåm taäp tin boù cuûa MS-DOS. Moät chöông trình vieát bôûi shell UNIX goïi laø shell-script. Moät vaøi leänh cho pheùp trong taäp tin boù cuûa MS-DOS thì laïi khoâng cho pheùp ñöa vaøo töø baøn phím. Ngöôïc laïi, UNIX khoâng coù söï phaân bieät giöõa leänh trong taäp tin shell-script vaø leänh ñöa vaøo töø baøn phím. Caùc bieán moâi tröôøng Gioáng nhö MS-DOS, shell UNIX cung caáp caùc bieán moâi tröôøng ôû daïng TEÂN=GIAÙTRÒ. Caùc doøng kyù töï naøy coù theå söû duïng ñeå chöùa caùc tham soá vaø choïn löïa ñeå cho chöông trình söû duïng. Moät vaøi bieán moâi tröôøng ñöôïc söû duïng bôûi töï baûn thaân shell nhö PATH. Ví duï: SET PATH = %PATH%;D:\NEW\DIR (DOS) path=$path,:/new/dir (UNIX) Caùc caáu truùc kieåm soaùt chöông trình Caùc taäp tin boù MS-DOS söû duïng caáu truùc ñieàu khieån chöông trình chæ trong moät doøng. Caùc caáu truùc ñieàu khieån trong UNIX laø khoâng giôùi haïn, baïn coù theå ghi moät taäp tin shell gioáng nhö moät chöông trình. Ví duï: vieát taäp tin boù ñeå saép thöù töï vaø in 1 taäp hôïp caùc taäp tin. Trong DOS: FOR %F IN (*.WK) DO SPRT %F Vôùi SPRT.BAT coù noäi dung: SORT %1 >\TMP\%1 PRINT \TMP\%1 Trong UNIX: for F in *.wk do sort $F >/tmp/$F lp /tmp/$F done Xuaát nhaäp chuaån vaø ñoåi höôùng Caû hai heä thoáng ñeàu chöùa caùc baûng trong boä nhôù ñeå quaûn lyù caùc taäp tin môû. Treân DOS laø file handle, döôùi UNIX laø file description. Caùc chöông trình ñoïc/ ghi taäp tin söû duïng file handle hay file description ñeå baùo vôùi heä ñieàu haønh caùc taäp tin söû duïng. Taát caû caùc chöông trình khi chaïy ñeàu coù 3 taäp tin ñaõ môû saün : nhaäp chuaån (0), xuaát chuaån (1), vaø taäp tin sai (2). Trang 7/43 HEÄ ÑIEÀU HAØNH UNIX Caû 2 heä ñieàu haønh UNIX vaø DOS ñeàu cung caáp khaû naêng ñoåi höôùng. Coù nghóa laø khaû naêng thay ñoåi caùc thieát bò xuaát nhaäp chuaån. Öu ñieåm cuûa ñoåi höôùng laø chöông trình trôû thaønh ñoäc laäp thieát bò. Caû DOS vaø UNIX ñeàu cung caáp cô cheá ñöôøng oáng (xuaát cuûa 1 chöông trình trôû thaønh nhaäp cuûa chöông trình khaùc). Tuy nhieân vì MS-DOS khoâng phaûi laø moät heä thoáng ña chöông neân khoâng theå thöïc hieän 2 chöông trình cuøng moät luùc, noù chöùa toaøn boä döõ lieäu xuaát cuûa chöông trình ñaàu vaøo moät taäp tin taïm maø sau ñoù seõ ñöôïc ñoïc bôûi chöông trình thöù hai. UNIX ngöôïc laïi, noù coù khaû naêng thöïc hieän 2 chöông trình ñoàng thôøi, do ñoù döõ lieäu xuaát cuûa chöông trình ñaàu coù theå tröïc tieáp ñöa vaøo chöông trình thöù hai khoâng qua taäp tin taïm. Ngöõ phaùp cuûa ñoåi höôùng laø gioáng nhau ôû caû hai heä thoáng: ñoåi höôùng xuaát. Caû UNIX vaø DOS cuøng moät ngöõ phaùp cho ñöôøng oáng (kyù hieäu | ). Ví duï: Trong DOS: DIR | SORT > PRN Trong UNIX: ls | sort > /dev/lp Taùc ñoäng naïp heä thoáng Khi naïp MS-DOS, noù laáy tham soá caáu hình töø moät taäp tin goïi laø CONFIG.SYS vaø sau ñoù thöïc hieän caùc leänh trong AUTOEXEC.BAT. Khi naïp UNIX noù laáy tham soá caáu hình trong taäp tin /etc/inittab (xaùc ñònh caùc chöông trình seõ chaïy ôû caùc cheá ñoä khaùc nhau hoaït ñoäng ñôn hay ña chöông. Chöùc naêng cô baûn cuûa /etc/inittab laø ñònh nghóa caùc coång coù terminal noái vaøo vaø khôûi ñoäng caùc terminal naøy), sau ñoù thöïc hieän caùc leänh trong taäp tin /etc/rc (ñaây laø moät taäp tin shell script nhaèm muïc ñích khôûi ñoäng heä thoáng töï ñoäng). Ngoaøi ra trong UNIX ñeå khôûi ñoäng moâi tröôøng cho moãi ngöôøi söû duïng noù coøn naïp vaøo taäp tin /etc/.profile Caáu truùc taäp tin UNIX vaø DOS caû hai ñeàu coù heä thoáng taäp tin phaân caáp. Moät söï khaùc bieät quan troïng giöõa hai heä thoáng laø thö muïc cuûa UNIX chæ chöùa teân taäp tin vaø con troû ñeán döõ lieäu cuûa taäp tin. Do ñoù UNIX cho pheùp moät taäp tin coù theå coù bí danh. Do ñoù neáu ôû DOS baïn phaûi giöõ 2 -> 3 baûn sao thì ôû UNIX chæ giöõ caùc con troû ñeán taäp tin. Moät söï khaùc bieät khaùc giöõa hai heä thoáng laø ñöôøng daãn cuûa DOS chæ höôùng ñeán thö muïc, taäp tin treân ñóa, trong khi ñoù ñöôøng daãn cuûa UNIX coù theå höôùng ñeán thö muïc, taäp tin, thieát bò hay ñöôøng oáng. MS-DOS phaân bieät caùc oå ñóa - thöïc söï hay luaän lyù - moãi oå ñóa coù moät thö muïc goác. Trong khi ñoù UNIX chæ cho pheùp 1 thö muïc goác cho toaøn boä heä thoáng. Ñeå noái keát caùc thö muïc treân caùc oå ñóa khaùc nhau, UNIX söû duïng mount. Ví duï: OÅ 1 OÅ 2 /--bin mount /--bin /--bin ---lib ----> ---lib ==> ---lib ---usr ---spool ---usr ---bin ---lib ---spool Vôùi caùch thöùc naøy thaäm chí ta coù theå mount caû caùc thö muïc ôû maùy töø xa. Trang 8/43 HEÄ ÑIEÀU HAØNH UNIX Caùc boä ñieàu khieån coù khaû naêng naïp vaø noái keát Caû hai UNIX vaø DOS cung caáp khaû naêng theâm caùc thieát bò môùi baèng caùch cung caáp caùc boä ñieàu khieån thieát bò ñieàu khieån caùc yeâu caàu xuaát/ nhaäp ñeán thieát bò. UNIX ñònh nghóa taát caû caùc boä ñieàu khieån thieát bò trong thö muïc /dev. UNIX höôùng ñeán caùc thieát bò nhö 1 taäp tin ñaëc bieät. Caùc thuoäc tính taäp tin UNIX coù taát caû caùc thuoäc tính taäp tin nhö DOS. Thuoäc tính taäp tin trong UNIX goïi laø file mode maø coù theå thay ñoåi bôûi leänh chmod. Cheá ñoä cuûa taäp tin bao goàm nhöõng bit cho pheùp chia laøm 3 nhoùm, moãi nhoùm 3 bit maø cung caáp caùc chuû quyeàn ñoïc, ghi, thöïc hieän cho 3 lôùp ngöôøi söû duïng: sôû höõu, nhoùm, chung. TSR vaø Daemon DOS cung caáp loaïi quaù trình neàn goïi laø caùc chöông trình thöôøng truù. Caùc chöông trình thöôøng truù khoâng phaûi laø moät quaù trình ñoäc laäp nhö caùc quaù trình trong UNIX. Trong UNIX baïn coù theå thöïc hieän ñoàng thôøi hai hay nhieàu quaù trình. Ñeå thöïc hieän moät quaù trình neàn baïn coù theå chaïy moät leänh theo sau bôûi kyù hieäu &. Coù nghóa laø sau khi leänh baét ñaàu chaïy, shell seõ trôû laïi ngay daáu nhaéc, sau ñoù baïn coù theå thöïc hieän leänh keá, khi ñoù caû hai leänh neàn vaø leänh môùi thöïc hieän ñoàng thôøi. Neáu leänh neàn taùch rôøi khoûi terminal cuûa baïn thì leänh neàn trôû thaønh deamon. 5.2/ Caùc ñaëc ñieåm cuûa UNIX maø DOS khoâng coù Hoaït ñoäng nhieàu ngöôøi söû duïng UNIX laø moät heä ñieàu haønh ña chöông. Noù cung caáp söï phaân bieät giöõa ngöôøi söû duïng naøy vôùi ngöôøi söû duïng khaùc. Moãi ngöôøi söû duïng ñöôïc ñònh danh bôûi teân vaø chæ soá. Heä thoáng seõ yeâu caàu baïn ñöa teân moãi khi baïn thaâm nhaäp vaøo heä thoáng. Taát caû caùc quaù trình maø baïn khôûi ñoäng, taát caû caùc taäp tin maø baïn taïo laø ñöôïc ñaùnh daáu vôùi chæ soá cuûa baïn. UNIX cung caáp moät heä thoáng chuû quyeàn taäp tin ñeå baûo veä caùc taäp tin ñöôïc taïo bôûi ngöôøi söû duïng vôùi caùc möùc truy xuaát khaùc nhau. UNIX cung caáp moãi ngöôøi söû duïng 1 taäp hôïp caùc thö muïc, nhö vaäy baïn coù theå taïo vaø quaûn lyù caùc taäp tin maø khoâng aûnh höôûng ñeán nhöõng ngöôøi söû duïng khaùc. Caùc ñaëc ñieåm naøy khoâng coù trong DOS bôûi vì DOS laø heä ñieàu haønh höôùng ñeán 1 ngöôøi söû duïng. Ña chöông UNIX laø moät heä ñieàu haønh ña chöông. Baát cöù ngöôøi söû duïng naøo cuõng coù theå chaïy nhieàu chöông trình ñoàng thôøi bôûi söû duïng ñaëc ñieåm leänh neàn. Moät chöông trình coù theå taïo moät quaù trình môùi ñieàu khieån, thoâng tin vaø ñôïi ñeå chuùng hoaøn thaønh tröôùc khi tieáp tuïc. Ña chöông ñöôïc caøi ñaët beân trong nhaân cuûa UNIX. Taát caû caùc quaù trình ñöôïc quaûn lyù bôûi boä ñònh thôøi bieåu quaù trình theo ñoä öu tieân. UNIX cung caáp moät vaøi daïng thoâng tin giöõa caùc quaù trình. Noù cho pheùp taïo, kieåm soaùt vaø huûy boû quaù trình. UNIX caøi ñaët thuû tuïc “swap” maø cho pheùp caùc quaù trình coù ñoä öu tieân thaáp coù theå loaïi boû taïm khoûi boä nhôù sau ñoù ñöôïc ñöa trôû laïi sau khi caùc quaù trình coù ñoä öu tieân cao hôn ñaõ ñöôïc thöïc hieän. Moät vuøng treân ñóa ñöôïc daønh rieâng ñeå “swap”. Caùc quaù trình trong UNIX ñöôïc quaûn lyù theo cô cheá phaân caáp. Quaù trình goác goïi laø quaù trình init, quaù trình naøy chaïy töï ñoäng khi khôûi ñoäng heä ñieàu haønh, vaø coù traùch nhieäm taïo taát caû caùc quaù trình theâm vaøo. Quan heä cha - con toàn taïi giöõa 1 quaù trình vôùi baát cöù quaù trình naøo taïo noù. Ñöôøng oáng coù theå söû duïng ñeå quaù trình lieân laïc vôùi caùc quaù trình cha hay con cuûa noù. Khi caùc quaù trình keát thuùc, noù seõ thoâng baùo cho quaù trình cha, moät quaù trình con thöøa keá caùc bieán moâi tröôøng vaø caùc taäp tin môû cuûa quaù trình cha. Caùc quaù trình UNIX coù theå chia xeû maõ, khi nhieàu ngöôøi söû duïng chaïy cuøng moät chöông trình ôû cuøng moät thôøi gian, chæ moät baûn sao cuûa chöông trình laø ñöôïc ñöa vaøo boä nhôù. Trang 9/43 HEÄ ÑIEÀU HAØNH UNIX Caùc ñaëc ñieåm naøy khoâng ñöôïc cung caáp bôûi DOS. Bôûi vì DOS laø 1 heä ñieàu haønh ñôn chöông. Baûo veä UNIX cung caáp cô caáu baûo veä trong moät vaøi lónh vöïc. Chuû quyeàn taäp tin, kieåm soaùt söï truy xuaát taäp tin, thö muïc, thieát bò. Sô ñoà maät khaåu ngaên ngöøa nhöõng ngöôøi khoâng chuû quyeàn thaâm nhaäp heä thoáng. Ngoaøi ra noù cho pheùp maõ hoaù vaø giaûi maõ caùc taäp tin hay caùc khoái döõ lieäu. Caùc noái keát UNIX cung caáp ñaëc ñieåm goïi laø noái keát, coù nghóa laø 1 taäp tin coù theå ñöôïc theå hieän bôûi moät vaøi ñieåm vaøo trong thö muïc. Ñaëc ñieåm naøy khoâng ñöôïc cung caáp trong DOS. Ñoäc laäp thieát bò DOS chæ cung caáp cho hoï Intel, UNIX coù theå caøi ñaët cho raát nhieàu heä phaàn cöùng khaùc nhau töø maùy tính lôùn ñeán caùc maùy tính caù nhaân, bôûi vì UNIX ñöôïc vieát baèng ngoân ngöõ caáp cao (C). 5.3/ Caùc leänh töông quan giöõa DOS vaø UNIX leänh DOS taùc vuï leänh UNIX löu yù cd ñoåi thö muïc cd md taïo thö muïc mkdir rd xoaù thö muïc rmdir copy sao cheùp taäp tin cp copy tar sao cheùp taäp tin sao cheùp thö muïc sao cheùp taäp tin hay thö muïc leân ñóa meàm ren ñoåi teân taäp tin mv type lieät keâ noäi dung taäp tin cat more xcopy sao cheùp thö muïc copy del xoaù taäp tin rm dir lieät keâ danh saùch taäp tin vaø thö muïc ls edit soaïn thaûo vaên baûn vi find tìm moät ñoaïn vaên trong taäp tin grep print in taäp tin lp, copy lp teân taäp tin & Chuù yù: khi ñöa vaøo leänh UNIX phaân bieät giöõa chöõ lôùn vaø chöõ nhoû. Trang 10/43 HEÄ ÑIEÀU HAØNH UNIX II/ Thaâm nhaäp heä thoáng: Baét ñaàu vaø keát thuùc phieân laøm vieäc: Khi baét ñaàu laøm vieäc treân heä thoáng baïn phaûi login. Vieäc login baùo cho heä thoáng bieát baïn laø ai vaø caùc chuû quyeàn laøm vieäc cuûa baïn, khi keát thuùc baïn phaûi logout. Khi ñoù khoâng coù moät ai khaùc coù theå truy xuaát taäp tin cuûa baïn neáu khoâng ñöôïc pheùp. Trong moät heä thoáng coù nhieàu ngöôøi söû duïng, moãi ngöôøi coù moät teân vaø moät maät khaåu duy nhaát. login Khi heä thoáng ñaõ saün saøng hoaït ñoäng ta seõ thaáy treân maøn hình hieän leân: login: Baïn phaûi ñöa vaøo teân cuûa baïn vaø nhaán Enter. Keá ñoù laø: password: Baïn haõy ñöa vaøo maät khaåu cuûa baïn. Maät khaåu phaûi daøi ít nhaát 6 kyù töï vaø toái ña 13 kyù töï, coù theå thay ñoåi bôûi leänh passwd. Sau ñoù seõ hieän leân daáu $ luùc naøy baïn coù theå thöïc hieän leänh ñöôïc. logout Coù theå keát thuùc phieân laøm vieäc bôûi leänh exit (C-Shell) logout (Bourne-Shell) III/ Heä thoáng taäp tin 1. Khaùi nieäm cô baûn UNIX coù hai daïng toå chöùc taäp tin. Thöù nhaát laø daïng vaät lyù (taäp tin ñöôïc tìm thaáy treân ñóa cöùng). Thöù hai laø luaän lyù (taäp tin thuoäc sôû höõu cuûa ai). Vôùi toå chöùc vaät lyù, UNIX söû duïng moät taäp hôïp caùc baûng goïi laø “i-nodes” (caùc nuùt thoâng tin). Vôùi toå chöùc luaän lyù noù söû duïng heä thoáng thö muïc caây phaân caáp (trong UNIX moät thö muïc laø moät taäp tin chöùa danh saùch cuûa taát caû caùc taäp tin vaø thö muïc con cuûa thö muïc ñoù). Caùc phaàn töû cuûa thö muïc coù daïng: idnode teân taäp tin Moãi idnode chöùa caùc thoâng tin lieân quan ñeán moät taäp tin bao goàm: i-node loaï i chuû quyeàn noái keát UID GID Thôøi gian Kích thöôùc Ñòa chæ khoái döõ lieäu ñaàu Loaïi : chæ thò loaïi taäp tin coù theå laø thö muïc, taäp tin, taäp tin ñaëc bieät. Chuû quyeàn : bao goàm 3 nhoùm, moãi nhoùm 3 bit ñeå kieåm soaùt quyeàn truy xuaát vaø thöïc thi cuûa ngöôøi sôû höõu, nhoùm, chung. Noái keát : trong UNIX, moät taäp tin vaät lyù (inode) coù theå ñöôïc noái keát vôùi moät hay nhieàu taäp tin luaän lyù (teân taäp tin). Noái keát chæ ra soá taäp tin luaän lyù noái keát vôùi taäp tin vaät lyù. Trang 11/43 HEÄ ÑIEÀU HAØNH UNIX UID (user identification) : ñònh danh cuûa ngöôøi sôû höõu GID (group identification) : ñònh danh cuûa nhoùm sôû höõu UNIX toå chöùc heä thoáng taäp tin bao goàm chæ moät thö muïc goác (/) maø töø ñoù caùc thö muïc con cuûa noù ñöôïc gaén vaøo moät caùch tröïc tieáp hay giaùn tieáp. Coù moät vaøi thö muïc con chuaån /bin, /usr, /etc, v.v... Moãi thö muïc naøy laïi chöùa caùc taäp tin hay thö muïc con. Baïn coù theå söû duïng ñöôøng daãn ñaày ñuû ñeå xaùc ñònh moät taäp tin, ví duï: /usr/NVA/chuong1. Baïn cuõng coù theå söû duïng chæ teân taäp tin neáu taäp tin ñöôïc chöùa trong thö muïc hieän haønh. Thöôøng khi baïn login, thö muïc hieän haønh seõ ñöôïc ñaët ñeán thö muïc “home”. Ñaây laø thö muïc ñöôïc thieát laäp bôûi ngöôøi quaûn trò heä thoáng daønh cho baïn, noù thöôøng laø truøng vôùi teân login cuûa baïn. Nhöõng ngöôøi söû duïng khi truy xuaát caùc taäp tin trong UNIX phaûi bò kieåm soaùt bôûi “chuû quyeàn” (vuøng chuû quyeàn trong inode). UNIX ñoaùn nhaän 3 lôùp chuû quyeàn, chuû quyeàn ñoïc (r), chuû quyeàn ghi (w), chuû quyeàn thöïc hieän (x). Neáu taäp tin laø thö muïc thì caùc chuû quyeàn trôû thaønh chuû quyeàn trình baøy noäi dung cuûa thö muïc (r), theâm hay loaïi boû taäp tin khoûi thö muïc (w), vaø tìm taäp tin hay thö muïc con trong thö muïc (x). UNIX cuõng ñoaùn nhaän 3 lôùp ngöôøi söû duïng döïa treân ñònh danh (ID) lieân heä vôùi moãi taäp tin. Moãi taäp tin coù ñònh danh ngöôøi söû duïng vaø ñònh danh nhoùm ngöôøi söû duïng. Maëc ñònh, ngöôøi taïo taäp tin laø ngöôøi sôû höõu vaø nhoùm sôû höõu laø nhoùm cuûa ngöôøi taïo taäp tin. Dó nhieân ta coù theå thay ñoåi bôûi leänh chown vaø chgrp. Ba chuû quyeàn ñoái vôùi taäp tin vaø ba chuû quyeàn ñoái vôùi ngöôøi söû duïng taïo neân 9 chuû quyeàn ñoái vôùi moät taäp tin. Söû duïng leänh ls -l seõ hieån thò caùc chuû quyeàn naøy cho töøng taäp tin. Ví duï: -rwxr-xr-- drwxr-xr-- Kyù töï ñaàu xaùc ñònh loaïi taäp tin (d: thö muïc) 3 kyù töï keá xaùc ñònh chuû quyeàn cuûa ngöôøi sôû höõu, 3 kyù töï keá xaùc ñònh chuû quyeàn cuûa nhoùm, 3 kyù töï cuoái laø chuû quyeàn cuûa moät ngöôøi söû duïng baát kyø. Daáu - chæ thò laø khoâng coù chuû quyeàn. Baïn cuõng coù theå söû duïng soá baùt phaân ñeå theå hieän chuû quyeàn.  Soá YÙ nghóa  04 chuû quyeàn ñoïc  02 chuû quyeàn ghi  01 chuû quyeàn thöïc hieän Ví duï: cho pheùp ñoïc ghi seõ coù soá baùt phaân laø 06 UNIX söû duïng leänh mount ñeå nhaän heä thoáng taäp tin. “Mount” laø quaù trình thaâm nhaäp moät heä thoáng taäp tin hay moät thö muïc phaân caáp cuûa moät heä thoáng taäp tin töø ñóa hay baêng. Ñaëc bieät ñoái vôùi heä ñieàu haønh Sun Solaris baïn coøn coù theå truy xuaát heä thoáng taäp tin hay thö muïc cuûa maùy töø xa thoâng qua moâi tröôøng maïng. Khi maùy tính khôûi ñoäng noù töï ñoäng chaïy chöông trình mount vaø gaøi nhöõng taäp tin caàn thieát ñeå hoaït ñoäng hoaëc cuïc boä hoaëc töø xa. Baïn coù theå söû duïng leänh mount ñeå truy xuaát theâm caùc taäp tin hay thö Trang 12/43 HEÄ ÑIEÀU HAØNH UNIX muïc. Khi maùy tính caøi moät thö muïc phaân caáp noù caøi thö muïc vaøo moät ñieåm mount. Ñieåm mount ñöôïc caáp phaùt ôû heä thoáng taäp tin cuïc boä. Thöôøng ñieåm mount laø moät thö muïc roãng. Ví duï: Heä thoáng taäp tin treân ñóa cuûa baïn: Ñieåm mount ==> töø ñóa hay maùy töø xa: Sau khi mount heä thoáng taäp tin trôû thaønh 2. Caùc leänh thao taùc treân thö muïc Söû duïng leänh cd [thö muïc] ñeå thay ñoåi thö muïc laøm vieäc hieän haønh. Ví duï: - chuyeån ñeán thö muïc /usr/include $cd /usr/include - chuyeån trôû laïi thö muïc “home” $cd - chuyeån ñeán moät thö muïc con cuûa thö muïc hieän haønh $cd ccs - chuyeån ñeán thö muïc cha $cd.. Söû duïng leänh ls ñeå trình baøy noäi dung cuûa thö muïc ls [choïn löïa] [thö muïc] Ví duï: - danh saùch caùc taäp tin trong thö muïc hieän haønh $ls passwd hosts - danh saùch caùc taäp tin saép theo thöù töï trong caùc leänh $ls -c Trang 13/43 HEÄ ÑIEÀU HAØNH UNIX hosts passwd inittab - danh saùch taäp tin vôùi loaïi $ls -CF bin/ chmod* etv/ temp / chæ thò bin laø thö muïc, * chæ thò chmod laø taäp tin thöïc thi. - danh saùch caùc taäp tin ôû thö muïc khaùc $ls /bin - danh saùch moät soá taäp tin trong thö muïc $ls -x [pP]* prigfoot Pasks - danh saùch taäp tin vôùi kích thöôùc $ls -s total 28 4 passwd 1 hosts - danh saùch taäp tin vôùi caùc thoâng tin chi tieát total 28 drwxr-xr-x 2 NVA adm 98 Sep 13 10:04 NVAS chuû quyeàn noái keát teân ngöôøi sôû höõu teân nhoùm sôû höõu kích thöôùc thôøi gian teân taäp tin Thöôøng neáu thö muïc coù quaù nhieàu taäp tin ta coù theå söû duïng ñöôøng oáng ñeå coù theå trình baøy danh saùch taäp tin theo töøng trang maøn hình. Ví duï: $ls -C | more Söû duïng mkdir ñeå taïo thö muïc mkdir [­mp] [thö muïc] -m mode: ñaët chuû quyeàn cuûa thö muïc theo soá baùt phaân -p : taïo caùc thö muïc giaùn tieáp neáu teân thö muïc giaùn tieáp trong ñöôøng daãn laø khoâng toàn taïi Ví duï: - taïo thö muïc con trong thö muïc hieän haønh mkdir tam1 - taïo thö muïc con söû duïng ñöôøng daãn töông ñoái mkdir tam1/chung - taïo thö muïc söû duïng ñöôøng daãn ñaày ñuû mkdir /usr/tam1/dung - taïo caùc thö muïc giaùn tieáp mkdir -p /usr/tam2/duc thö muïc tam2 khoâng toàn taïi do ñoù taïo caû thö muïc tam2 vaø duc. Trang 14/43 HEÄ ÑIEÀU HAØNH UNIX Söû duïng leänh pwd trình baøy teân cuûa thö muïc hieän haønh $pwd /usr/tam1/dung Söû duïng rmdir ñeå xoaù thö muïc rmdir [-ps] thö muïc -p : trình baøy laàn löôït caùc thö muïc bò xoaù -s : xoaù thoâng baùo ñöôïc taïo bôûi -p Ví duï: - xoaù 1 thö muïc roãng: rmdir dung - xoaù 1 thö muïc khoâng roãng: rmdir tam2/* 3. Caùc thao taùc vôùi taäp tin Teân taäp tin trong UNIX coù theå daøi 256 kyù töï, ngoaïi tröø caùc kyù töï ñaëc bieät sau: ! “ ‘ ; / $ ( ) [ ] . { }. Ngoaøi ra ta cuõng coù theå söû duïng caùc kyù töï sau: * ñaïi dieän cho moät, nhieàu hoaëc khoâng kyù töï naøo. ? ñaïi dieän cho moät kyù töï ñôn [...] ñaïi dieän cho moät daõy kyù töï coù thöù töï trong baûng Alphabet. Ví duï: lieät keâ taát caû caùc thö muïc baét ñaàu baèng chöõ c, d, e: lc [cde]* Lieät keâ taäp tin ls [choïn löïa] thö muïc - Lieät keâ danh saùch caùc taäp tin ls /thö muïc - Hieån thò caùc taäp tin aån ls -a lc -a - Lieät keâ thoâng tin veà taäp tin ls -l Xem noäi dung 1 taäp tin vaø noái keát caùc taäp tin cat [choïn löïa] [taäp tin] - Xem cat hosts 195.127.50.1 sunfibi - Toå hôïp hai taäp tin thaønh moät cat part1 part2 > report Ta cuõng coù theå söû duïng leänh cat ñeå taïo 1 taäp tin töø baøn phím. Ví duï: cat > thu ñöa vaøo noäi dung taäp tin copy con treân DOS Trang 15/43 HEÄ ÑIEÀU HAØNH UNIX ^d hay coù theå söû duïng more hoaëc pg ñeå xem töøng trang maøn hình: more [teân taäp tin] Vd: more thu Ñoåi teân taäp tin mv teân_cuõ teân_môùi mv teân thö_muïc chuyeån taäp tin coù teân vaøo thö_muïc Ví duï: - Thay ñoåi teân cuûa taäp tin ôû thö muïc hieän haønh: $mv a.out test - Chuyeån taäp tin sang thö muïc tam1 mv test tam1 taäp tin môùi seõ laø tam1/test - Chuyeån moät vaøi taäp tin sang thö muïc khaùc mv test1 test2 tam2 Söû duïng leänh ln ñeå gaùn theâm 1 teân môùi cho 1 taäp tin ln teân1 teân2 ln teân thö_muïc Ví duï: - Taïo teân thöù hai cho 1 taäp tin $ln test thu $ls -I t* 3271 test 3271 thu --> caû hai taäp tin naøy coù cuøng 1 i-nodes $pwd /usr/dung $ln /usr/phan/*.c taát caû caùc taäp tin trong thö muïc /usr/phan maø thích öùng vôùi *.c seõ ñöôïc noái vôùi thö muïc hieän haønh. Xoaù taäp tin rm [-fri] taäp tin -f : xoaù caùc taäp tin maø khoâng hoûi, thaäm chí chuû quyeàn ghi laø khoâng cho pheùp -r : chaáp nhaän thö muïc nhö ñoái soá. Toaøn boä noäi dung cuûa thö muïc bò xoaù (keå caû caùc thö muïc con) sau ñoù baûn thaân thö muïc cuõng bò xoaù. -i : tröôùc khi xoaù taäp tin seõ hoûi Ví duï: - Xoaù taäp tin thu: $rm thu Trang 16/43 HEÄ ÑIEÀU HAØNH UNIX - Xoaù taäp tin coù hoûi $rm -i t* test : ? y thu : ? n $rm -r tam ---> xoaù taát caû caùc thö muïc con cuûa thö muïc tam vaø baûn thaân thö muïc tam. Sao cheùp taäp tin cp taäp_tin_nguoàn taäp_tin_ñích ví duï: cp /etc/passwd /usr/dung/passwdold Tìm kieám 1 taäp tin find ñöôøng_daãn bieåu_thöùc_tìm_kieám * Bieåu thöùc tìm kieám : - name : teân taäp tin --> tìm theo teân taäp tin - user : teân user --> tìm theo teân ngöôøi söû duïng - print : neáu tìm khoâng thaáy thì trình baøy ñöôøng daãn v.v... Ví duï: - Tìm taäp tin thu : $find -name thu -print /usr/tam/thu Tìm kieám chuoãi vaên baûn beân trong taäp tin Söû duïng leänh grep ñeå tìm kieám moät chuoãi vaên baûn beân trong caùc taäp tin ñöôïc chæ ñònh grep vaên_baûn caùc_taäp_tin neáu chuoãi vaên baûn daøi hôn 1 kyù töï thì phaûi ñeå trong hai daáu nhaùy. Ví duï: - Tìm chuoãi kyù töï "ngan hang" trong taäp tin thu $grep "ngan hang" thu ngan hang cong thuong 4. Baûo veä taäp tin vaø thö muïc Thay ñoåi nhoùm truy xuaát cuûa taäp tin chgrp nhoùm_caùc_taäp_tin chæ coù superuser hay ngöôøi sôû höõu môùi ñöôïc quyeàn thay ñoåi Ví duï: $ls -a test -rwx--x--x 1 bin bin 13023 Jun 21 94 test $chgrp data test Trang 17/43 HEÄ ÑIEÀU HAØNH UNIX $ls -a test -rwx--x--x 1 bin data 13023 Jun 21 94 test Thay ñoåi ngöôøi sôû höõu taäp tin chown teân_ ngöôøi_söû_duïng caùc_taäp_tin chæ coù superuser hay ngöôøi sôû höõu môùi ñöôïc quyeàn thay ñoåi Ví duï: $chown dung test $ls -a test -rwx--x--x 1 dung data 13023 Jun 21 94 test Ñaëc quyeàn truy xuaát ngaàm ñònh umask chuû_quyeàn (3 soá baùt phaân) Sau khi ñaët umask taát caû caùc taäp tin vaø thö muïc taïo seõ nhaän chuû quyeàn. Ví duï: $umask 177 $cat test ... ^D $ls -l test -rw------ 1 dung adm 1 Mar 11 10:11 test Thay ñoåi chuû quyeàn cuûa taäp tin Neáu baïn laø ngöôøi sôû höõu hay superuser, baïn coù theå söû duïng leänh chmode ñeå thay ñoåi chuû quyeàn cuûa taäp tin. Coù hai caùch: chmode chuû quyeàn taäp tin - Chuû quyeàn tuyeät ñoái: söû duïng caùc soá baùt phaân, moãi soá ñaïi dieän cho chuû quyeàn cuûa moät lôùp ngöôøi söû duïng: 2 cho pheùp ñoïc 4 cho pheùp ghi 1 cho pheùp thöïc hieän Ví duï: $chmode 754 test $ls -l test -rwxr-xr-- - Duøng kyù hieäu töôïng tröng: chmode loaïi toaùn_töû [quyeàn] teân_taäp_tin Loaïi : u : ngöôøi söû duïng g : nhoùm o : chung Trang 18/43 HEÄ ÑIEÀU HAØNH UNIX a : taát caû Toaùn töû : + : theâm quyeàn - : bôùt quyeàn = : gaùn giaù trò khaùc Quyeàn : r : ñoïc w : ghi x : thöïc hieän s : ñaët UID hay GID Ví duï: $chmode g +w test $ls -l test -rwxrwxr-- ............ .............. test 5. Soaïn thaûo taäp tin söû duïng vi vi laø moät chöông trình soaïn thaûo vaên baûn chuaån trong UNIX. vi coù hai cheá ñoä: - Cheá ñoä leänh: cho pheùp cheøn, xoaù, thay theá. - Cheá ñoä soaïn thaûo: cho pheùp soaïn thaûo vaêb baûn Ñeå vaøo trình soaïn thaûo vi ta ñaùnh: vi teân_taäp_tin Khôûi ñaàu vi ñaët ôû cheá ñoä leänh; ñeå vaøo cheá ñoä soaïn thaûo ñaùnh , thoaùt khoûi cheá ñoä naøy ñaùnh ESC. Thoaùt khoûi vi nhaán: X Moät soá haøm leänh cuûa vi vi taäp tin --> baét ñaàu doøng 1 vi +n taäp tin --> baét ñaàu ôû doøng n vi +/pattern --> baét ñaàu ôû pattern vi -r taäp tin --> phuïc hoài taäp tin sau khi heä thoáng treo Di chuyeån con troû h sang traùi moät khoaûng traéng e sang phaûi moät khoaûng traéng - nt - w sang phaûi 1 töø b sang traùi 1 töø k leân moät doøng j xuoáng moät doøng - nt - Trang 19/43 HEÄ ÑIEÀU HAØNH UNIX ) cuoái caâu ( ñaàu caâu } ñaàu ñoaïn vaên { cuoái ñoaïn vaên ^-w ñeán kyù töï ñaàu tieân cheøn vaøo ^-u cuoán leân 1/2 maøn hình ^-d keùo xuoáng 1/2 maøn hình ^-z keùo xuoáng 1 maøn hình ^-b keùo leân 1 maøn hình Cheøn vaên baûn i tröôùc daáu con troû I tröôùc kyù töï ñaàu tieân treân doøng a sau daáu con troû A sau kyù töï ñaàu tieân treân doøng o döôùi doøng hieän taïi O treân doøng hieän taïi r thay theá 1 kyù töï hieän haønh R thay theá cho ñeán khi nhaán Leänh xoaù dw 1 töø do ñeán ñaàu doøng d$ cuoái doøng 3dw 3 töø dd doøng hieän haønh 5dd 5 doøng X 1 kyù töï Leänh thay theá cw thay theá 1 töø 3cw thay theá 3 töø cc doøng hieän haønh 5cc 5 doøng Leänh tìm kieám */and töø keá tieáp cuûa and *?and töø keát thuùc laø and */nThe tìm doøng keá baét ñaàu baèng The n laëp laïi laàn doø tìm sau cuøng Trang 20/43 HEÄ ÑIEÀU HAØNH UNIX Leänh tìm kieám vaø thay theá :s/text1/text2/g thay text1 bôûi text2 :1,$s/taäp tin/thö muïc thay taäp tin baèng thö muïc töø haøng 1 ñeán cuoái :g/one/s//1/g thay theá one baèng 1 Thoaùt khoûi chöông trình vi :w ghi taäp tin :x ghi vaø thoaùt :g thoaùt khoâng ghi :g! duø taäp tin coù thay ñoåi thoaùt vaãn khoâng ghi. IV/ Xuaát nhaäp chuaån, ñoåi höôùng vaø ñöôøng oáng Caùc chöông trình nhaän döõ lieäu nhaäp vaø taïo xuaát phaûi coù caùc keânh lieân laïc ñeå chuyeån caùc thoâng tin ñoù. Ñoâi khi coâng vieäc naøy ñöôïc thöïc hieän töôøng minh bôûi chöông trình "môû" moät taäp tin cuï theå. Ví duï: giaû söû baïn ñaùnh leänh. sort tam Vieäc naøy gaây ra chöông trình sort môû taäp tin tam nhö vaäy laø sort coù theå ñoïc taäp tin ñeå nhaäp döõ lieäu. Ña soá caùc leänh UNIX (cat, grep, wc,...) töï ñoäng môû 3 taäp tin ñöôïc goïi "nhaäp chuaån", "xuaát chuaån" vaø "sai chuaån" ñeå nhaäp, xuaát, nhaän thoâng baùo sai töông öùng. Trong UNIX thieát bò ñöôïc xöû lyù nhö taäp tin, nhö vaäy ba taäp tin chuaån coù theå laø caùc thieát bò. Nhaäp chuaån laø baøn phím, xuaát chuaån vaø sai chuaån laø maøn hình. Dó nhieân baïn coù theå söû duïng "ñoåi höôùng" ñeå thay ñoåi caùc thieát bò xuaát nhaäp chuaån. Ñoåi höôùng Maëc duø moät vaøi leänh nhö sort ñaõ coù saün choïn löïa ñeå xaùc ñònh taäp tin xuaát vaø nhieàu leänh cho pheùp baïn xaùc ñònh taäp tin nhaäp treân doøng leänh. UNIX cung caáp moät cô caáu toång quaùt hôn vaø raát maïnh: "ñoåi höôùng" - cho pheùp gaùn laïi caùc taäp tin chuaån. Chöông trình vaãn noái keát ñeán ba taäp tin xuaát/ nhaäp chuaån nhöng ñònh danh cuûa taäp tin coù theå bò thay ñoåi. Ví duï leänh cat (söû duïng xuaát chuaån) chuùng ta coù theå söû duïng > ñeå taïo xuaát chuaån laø moät taäp tin. cat tam1 tam2 > baocao noái caùc taäp tin tam1 vaø tam2 göûi keát quaû ñeán xuaát chuaån. Kyù hieäu > baocao ... laø taäp tin xuaát chuaån seõ laø taäp tin baocao thay vì maøn hình. Chuù yù: ñoåi höôùng xuaát chuaån taïo taäp tin xuaát ñeán taäp tin xuaát ñaõ toàn taïi noù seõ bò xoaù tröôùc khi söû duïng. Ñoåi höôùng nhaäp cuõng gioáng nhö xuaát ngoaïi tröø laø kyù hieäu < ñöôïc söû duïng ñeå gaùn laïi nhaäp chuaån. Ví duï: sort < tam leänh sort seõ laáy döõ lieäu nhaäp trong taäp tin tam thay vì töø baøn phím. Caùi gì laø söï khaùc bieät giöõa : sort tam vaø sort < tam Trang 21/43 HEÄ ÑIEÀU HAØNH UNIX Trong sort tam, leänh sort môû thöïc söï taäp tin tam, nhö vaäy noù coù theå söû duïng tam thay cho nhaäp chuaån. Nhö vaäy 2 taäp tin nhaäp ñeàu ñöôïc môû: tam vaø nhaäp chuaån. Vôùi ñoåi höôùng dó nhieân taäp tin tam laø nhaäp chuaån vaø chæ 1 taäp tin nhaäp laø ñöôïc môû. Hôn nöõa vôùi ñoåi höôùng, heä ñieàu haønh môû taäp tin tam thay vì leänh sort môû. Ñoåi höôùng xuaát chuaån khoâng aûnh höôûng ñeán sai chuaån. Vaø thoâng baùo sai vaãn göûi ra maøn hình, giaû söû taäp tin tam2 khoâng toàn taïi, ta ñaùnh leänh: cat tam tam2 > baocao tam2 : No such file or directory Chæ moät taäp tin coù theå söû duïng ñeå ñoåi höôùng xuaát hay nhaäp chuaån, bôûi vì moãi leänh chæ noái vôùi 1 xuaát vaø 1 nhaäp. Ña ñoåi höôùng Ta coù theå söû duïng caû ñoåi höôùng xuaát vaø nhaäp cho moät leänh. Ví duï: tr "[a-z]" "[A-Z]" bigact1 Laáy döõ lieäu nhaäp töø taäp tin act1 göûi noù vaøo leänh tr vaø xuaát ñeán taäp tin bigact1. Cuï theå laø leänh tr ñoåi taát kyù töï chöõ nhoû trong taäp tin act1 thaønh chöõ lôùn vaø xuaát vaøo taäp tin bigact1. Thöù töï ñöa vaøo chæ thò ñoåi höôùng laø khoâng quan troïng, ví duï: tr "[a-z]" "[A-Z]" > bigact1 < act1 Ñöôøng oáng Ñoåi höôùng noái keát leänh vôùi taäp tin. Ñaëc ñieåm ñöôøng oáng cuûa UNIX noái keát 1 leänh vôùi 1 leänh khaùc. Ñaëc bieät hôn noù taïo xuaát chuaån cuûa 1 leänh thaønh nhaäp chuaån cuûa 1 leänh khaùc. Kyù hieäu ñöôøng oáng (|) ñöôïc söû duïng ñeå thieát laäp ñöôøng oáng. Ví duï: wc baocao* | sort -n nhaän xuaát cuûa wc (trong tröôøng hôïp naøy laø toång soá töø vaø kyù töï cuûa caùc taäp tin coù teân baét ñaàu laø baocao) vaø göûi noù ñeán leänh sort ñeå saép thöù töï soá. Keát quaû cuoái cuøng laø caùc toång soá töø saép theo thöù töï taêng daàn hieån thò treân maøn hình. Ñöôøng oáng coù theå keát hôïp vôùi ñoåi höôùng. Ví duï: wc baocao* | sort -n > rep-count keát quaû seõ ñöa ra taäp tin rep-count. Toå hôïp caùc taäp tin vôùi nhaäp chuaån Nhieàu leänh UNIX coù theå söû duïng nhaäp chuaån nhö moät danh saùch caùc taäp tin nhaäp. Xem 3 ví duï sau: lp tam leänh môû taäp tin tam lp < tam leänh söû duïng nhaäp chuaån cat tam | lp leänh söû duïng .................. Taát caû ñeàu in taäp tin tam nhöng noù laøm vieäc khaùc nhau. Leänh ñaàu môû tam vaø boû qua nhaäp chuaån. Leänh thöù hai gaây ra shell môû tam vaø coi noù laø nhaäp chuaån. Leänh thöù ba coi xuaát chuaån cuûa cat laø nhaäp chuaån cuûa leänh lp. Trang 22/43 HEÄ ÑIEÀU HAØNH UNIX Moät vaøi leänh UNIX cho pheùp baïn söû duïng moät danh saùch caùc taäp tin nhaäp baèng caùch söû duïng kyù hieäu (-) ñeå theå hieän nhaäp chuaån nhö 1 danh saùch caùc taäp tin. Ví duï: sort tam | lp tam1 - tam2 lp seõ in ñaàu tieân laø tam1 keá ñoù laø keát quaû saép thöù töï cuûa taäp tin tam, cuoái cuøng laø taäp tin tam2. Caùc daïng khaùc cuûa ñoåi höôùng Ñoåi höôùng theâm vaøo: >> Söû duïng khi baïn muoán theâm döõ lieäu vaøo cuoái cuûa moät taäp tin ñaõ toàn taïi. Ví duï: cat baocao2 baocao3 >> baocao theâm noäi dung cuûa baocao2 vaø baocao3 vaøo cuoái cuûa taäp tin baocao. Neáu taäp tin ñích khoâng toàn taïi thì noù seõ ñöôïc taïo. Ñoåi höôùng “ Taäp tin ôû ñaây ” : << Giaû söû baïn coù thoâng baùo chuaån baïn coù mail töø ngöôøi söû duïng khaùc, baïn coù theå thieát laäp 1 shell script: mail $* < message message laø teân taäp tin chöùa thoâng baùo chuaån. $* theå hieän caùc ñoái soá cuûa shell script. Vaán ñeà vôùi script naøy laø leänh vaø vaên baûn thoâng baùo laø hai taäp tin rieâng reõ. Dó nhieân baïn coù theå traùnh vaán ñeà naøy bôûi söû duïng << laáy choã cuûa vaên baûn trong cuøng taäp tin leänh. Vaên baûn nhö vaäy ñöôïc goïi laø “Taøi lieäu ôû ñaây”. script môùi coù daïng: mail $* << stop Please remember to pay your monthly file insurance --Big Jake stop echo $* reminded on ‘date’ >> $HOME/fi.log Caùc boä moâ taû taäp tin vaø ñoåi höôùng sai chuaån: 2> Ñoâi khi chuùng ta muoán ñoåi höôùng thoâng baùo sai. Ví duï khi chaïy leänh ôû cheá ñoä neàn &. Ví duï: spell baocao & Chaïy ôû cheá ñoä neàn (giaûi phoùng ñaàu cuoái cho coâng vieäc khaùc) vaãn xuaát caùc töø sai chính taû ra maøn hình. Ñieàu naøy gaây roái cho caùc coâng vieäc khaùc. Ñeå traùnh vieäc naøy, baïn phaûi söû duïng ñoåi höôùng sai chuaån vôùi boä moâ taû taäp tin (0: nhaäp chuaån, 1: xuaát chuaån, 2: sai chuaån). Ví duï: spell baocao > baocaodung 2> baocaosai & caùc töø sai seõ ñöôïc ñöa ra taäp tin baocaosai. Trang 23/43 HEÄ ÑIEÀU HAØNH UNIX Toå hôïp xuaát: 2>&1 Ñoâi khi baïn muoán ñoåi höôùng caû hai xuaát chuaån vaø xuaát sai ñeán cuøng moät taäp tin. Vieäc naøy coù theå laøm vôùi toå hôïp 2>&1. Ví duï: spell baocao > baocaodung 2>&1 & baocaodung seõ chöùa caû xuaát vaø caùc thoâng baùo sai. Leänh tee Hoaït ñoäng ñoåi höôùng vaø ñöôøng oáng laø ñaëc ñieåm cuûa heä ñieàu haønh UNIX. Tuy nhieân ta cuõng coù theå söû duïng 1 leänh cuûa UNIX ñeå laøm vieäc naøy. Ñoù laø leänh tee, noù seõ giaûm bôùt caùc keát quaû giaùn tieáp cuûa chuoãi ñöôøng oáng. Ví duï: sort baocao | tee baocaostt | lp Ñaàu tieân leänh tee göûi nhaäp chuaån cuûa noù ñeán xuaát chuaån cuûa noù, trong tröôøng hôïp naøy göûi xuaát cuûa sort ñeán nhaäp cuûa lp. Thöù hai tee laáy choã 1 baûn sao cuûa nhaäp chuaån vaøo teân taäp tin baocaostt. V Thö ñieän töû Thö ñieän töû (mail) laø moät tieän ích do UNIX cung caáp ñeå göûi vaø nhaän thoâng baùo. Coù hai leänh mail vaø mailx. 1. mail $mail Thö ñieän töû cung caáp caùc khaû naêng cô baûn ñeå göûi vaø nhaän thoâng baùo.Mail seõ hieån thò thoâng baùo theo thöù töï vaøo tröôùc ra sau.Sau khi hieån thò moãi thoâng baùo mail seõ hieän leân daáu ? ñeå chôø leänh cuûa ngöôøi söû duïng. Coù theå coù caùc leänh sau : - newline Hieån thò thoâng baùo keá, neáu khoâng coøn thì thoaùt khoûi mail. - + Gioáng nhö newline - p In thoâng baùo - s [taäp tin] Caát thoâng baùo vaøo taäp tin hoaëc mbox - w[taäp tin] Gioáng nhö s nhöng khoâng caát ñaàu thoâng baùo - d Xoùa thoâng baùo - q Thoaùt khoûi mail - x Thoaùt khoûi mail maø khoâng thay ñoåi thoâng baùo - ! leänh Thöïc hieän leänh Unix Gôûi thö : Ñöa vaøo leänh mail vôùi ñòa chæ cuûa ngöôøi söû duïng. Ví duï : $ mail dungø@fibi.hcm.vn.com ^-D Trang 24/43 HEÄ ÑIEÀU HAØNH UNIX Thoâng baùo seõ ñöôïc göûi cho ngöôøi söû duïng coù teân laø dung ôû coâng ty fibi vuøng hcm.vn.com. Coù theå cuøng moät luùc göûi moät thoâng baùo cho nhieàu ngöôøi : $ mail dung@fibi.hcm.vn.com trung@fibi,hanoi.vn.com Nhaän thö : Khi login vaøo heä thoáng neáu coù thö heä thoáng seõ thoâng baùo “ You have mail” khi ñoù coù theå ñaùnh $mail ñeå xöû lí mail. 2. mailx $mailx Mailx bao goàm caùc leänh ñeå truyeàn vaø nhaän thö. Leänh coù daïng : Leânh [danh saùch thoâng baùo] [caùc ñoái soá] [danh saùch thoâng baùo] coù theå laø : n Thoâng baùo soá n $ Thoâng baùo cuoái cuøng * Taát caû thoâng baùo n-m Töø thoâng baùo n ñeán m :d Xoùa taát caû thoâng baùo :n Thoâng baùo môùi :r Thoâng baùo chæ ñoïc :u Thoâng baùo chöa ñoïc :o Thoâng baùo cuõ Leânh help Hieån thò cuù phaùp cuûa leänh ignore Boû qua ñaàu taäp tin print Hieån thò thoâng baùo Print In thoâng baùo top Hieån thò moät vaøi doøng ñaàu cuûa thoâng baùo repond Traû lôøi moät thoâng baùo copy Cheùp thoâng baùo leân taäp tin list Hieån thi danh saùch leänh save Caát thoâng baùo leân taäp tin quit Thoaùt khoûi mailx VI. UNIX Shell Unix shell bao goàm boä bieân dòch leänh vaø ngoân ngöõ laäp trình. Coù ba loaïi shell : Bourne shell cuûa Steven Bourne ñôn giaûn vaø hieäu quaû. Noù laø maëc ñònh trong ña soá caùc heä UNIX (hoaëc coù theå goïi bôûi sh). Trang 25/43 HEÄ ÑIEÀU HAØNH UNIX C shell cuûa Bill Joy ôû tröôøng ñaïi hoïc Berkeley gioáng nhö Bourne shell nhöng boå sung theâm caùc ñaëc ñieåm nhö bí danh, history vvv. Noù coù theå goïi bôûi csh Korn shell cuûa David F. Korn keát hôïp Bourne shell vaø C shell nhöng boå sung theâm caùc ñaëc ñieåm rieâng. Noù coù theå goïi bôûi ksh. Phaàn naøy seõ trình baøy caû ba loaïi shell. Vôùi Korn shell seõ coù chuù thích rieâng. 1. Caùc khaùi nieäm cô baûn Caùc leänh Leänh ñôn giaûn: Laø moät chuoãi töø ñöôïc phaân caùch bôûi khoaûng traéng. Töø ñaàu laø leänh Unix hoaëc leänh shell noäi taïi. Caùc töø khaùc hoaëc laø teân taäp tin xöû lí hoaëc laø caùc ñoái soá laøm thay ñoåi haønh vi cuûa leänh. Leänh trong moâi tröôøng Unix thöôøng xuyeân traû laïi moät giaù trò soá goïi laø traïng thaùi thoaùt khi shell keát thuùc. Neáu leänh hoaøn thaønh traïng thaùi thoaùt baèng khoâng. Neáu traïng thaùi thoaùt khaùc khoâng coù nghóa laø leänh gaëp dieàu kieän khoâng bình thöôøng hoaëc laø keát thuùc baát thöôøng. Vôùi phaùt bieåu if giaù trò 0 töông öùng vôùi dieàu kieän ñuùng. Khi leänh keát thuùc baát thöôøng noù traû veà giaù trò 128 + traïng thaùi, vôùi traïng thaùi laø giaù trò gaây ra keát thuùc baát bình thöôøng. Ví duï neáu nhaán Del ñeå keát thuùc leänh giaù trò traû veà laø 130 (128+02). Ñöôøng oáng: Bao goàm moät hay nhieàu leänh ñôn giaûn döôïc phaân caùch bôûi kí hieäu (|). Xuaát cuûa moãi leänh ñöôïc göûi ñeán nhaäp cuûa leänh keá. Moãi leänh ñöôïc thöïc hieän nhö moät quaù trình rieâng reõ. Traïng thaùi thoaùt cuûa ñöôøng oáng laø traïng thaùi thoaùt cuûa leänh cuoái. Chuoãi leänh: Bao goàm moät hoaëc nhieàu leänh ñôn giaûn ( hay ñöôøng oáng) ñöôïc phaân caùch bôûi (;), (&), (&&), (||). Trong moät danh saùch leänh caùc daáu phaân caùch ñöôïc xöû lí töø traùi sang phaûi vôùi ñoä öu tieân: && vaø || ; vaø & Daáu (;) gaây ra thöïc hieän tuaàn töï caùc leänh trong danh saùch leänh. Shell ñôïi moãi leänh hoaøn thaønh tröôùc khi thöïc hieän leänh keá. Daáu (&) gaây ra thöïc hieän baát ñoàng boä caùc leänh trong danh saùch leänh. Shell thöïc hieän leänh maø khoâng ñôïi leänh tröôùc hoaøn thaønh. Daáu (&&) gaây ra leänh sau ñöôïc thöïc hieän chæ khi leänh tröôùc traû veà giaù trò 0. Ví duï : mail -s && echo You have mail Seõ trình baøy thoâng baùo You have mail chæ khi leänh mail -s traû veà giaù trò khoâng. Daáu (||) gaây ra leänh sau ñöôïc thöïc hieän chæ khi leänh tröôùc traû veà giaù trò khaùc khoâng Ví duï : mail -s || echo No mail Seõ trình baøy thoâng baùo No mail chæ khi leänh mail -s traû veà giaù trò khaùc khoâng. Nhoùm leänh Coù theå nhoùm moät chuoãi leänh trong (). Nhaäp vaø xuaát chuaån coù theå ñoåi höôùng cho toaøn nhoùm. Ví duï : Trang 26/43 HEÄ ÑIEÀU HAØNH UNIX trong leänh $ ls; who; date > status chæ coù xuaát cuûa leänh date laø ñöôïc göûi tôùi taäp tin status. trong leänh $ (ls; who; date) > status xuaát cuûa caû ba leänh laø ñöôïc göûi tôùi taäp tin status. trong leänh $ (ls; who; date) > status & caû ba leänhñeàu chaïy ôû cheá doä neàn. Söï thay theá leänh Xuaát cuûa moät leänh coù theå söû duïng nhö nhaäp cuûa leänh khaùc hay gaùn bieán vôùi söï thay theá leänh. Khi shell gaëp leänh naèm trong ‘ ‘, leänh seõ ñöôïc thöïc hieän, xuaát cuûa noù trôû thaønh nhaäp cuûa leänh khaùc hay gaùn cho bieán. Ví duï : $ here=‘pwd’ thöïc hieän leänh pwd tröôùc sau ñoù gaùn cho bieán here. Chuù thích: söû duïng daáu # Bieân dòch khoaûng traéng: Söû duïng bieán phaân caùch vuøng IFS ñeå thay ñoåi kí hieäu phaân caùch khoaûng traéng. Ví duï : $ IFS=: $ ls:-l Daáu nhaùy ñôn Shell khoâng dieãn dòch caùc doøng kí töï giöõa hai daáu nhaùy ñôn. Ví duï : $ echo `$TERM` $TERM Daáu nhaùy ñoâi Shell khoâng dieãn dòch caùc doøng kí töï giöõa hai daáu nhaùy ñoâi ngoaïi tröø caùc daáu ($,\,’). Ví duï : $ name= “Ng Van A” $ echo $name Ng Van A $ echo “$name Ng Van A Daáu \ ngaên ngöøa shell dieãn dòch kí töï tröïc tieáp sau noù. Teân taäp tin : Coù theå laø teân ñaày ñuû hay teân wild card. Tröôùc khi thöïc hieän leänh shell queùt teân wild card. Coù caùc wild card sau: kí töï yù nghóa * töông öùng vôùi moïi kí töï ? töông öùng vôùi moâtï kí töï [xyz] töông öùng vôùi ba kí töï x,y,z [a-z] töông öùng vôùi caùc kí töï töø a ñeán z [!a-z] töông öùng vôùi caùc kí töï khaùc a ñeán z Daáu nhaéc Söû duïng bieán PS1 ñeå thay ñoåi daáu nhaéc. Trang 27/43 HEÄ ÑIEÀU HAØNH UNIX Söï thöïc thi: Shell thöïc hieän leänh nhö sau :  Giaûi quyeát caùc teân taäp tin, daáu nhaùy, söï thay theá leänh, söï thay theá bieán, vaø ñoåi höôùng xuaát nhaäp.  Thöïc hieän caùc leänh noäi taïi.  Teân leänh ñöôïc so saùnh vôùi teân cuûa caùc haøm ñaõ ñöôïc ñònh nghóa. Neáu töông öùng caùc haøm seõ ñöôïc thöïc hieän  Neáu leänh khoâng phaûi laø leänh noäi taïi hay haøm moät quaù trình môùi ñöôïc taïo vaø shell seõ thöïc hieän leänh bôûi goïi haøm exec. Shell söû duïng bieán PATH ñeå tìm leänh. Giaù trò maëc ñònh laø thö muïc hieän haønh keá ñoù laø thö muïc /bin sau ñoù laø /usr/bin. Quaù trình neàn : Shell coù theå chaïy ôû cheá dñä neàn hay töông taùc. Khi leänh chaïy ôû cheá ñoä neàn shell trôû laïi daáu nhaéc ngay laäp töùc. Ngöôøi söû duïng coù theå ñöa vaøo leänh khaùc. Ví duï : $ sort large_file >file_out & 1222 Khi leänh neàn chaïy ID-quaù trình cuûa noù seõ döôïc trình baøy. Cuõng coù theå söû duïng leänh ps deå trình baøy ID-quaù trình. Söû duïng leänh kill deå huûy boû quaù trình. Ví duï : $ kill -2 1222 Neáu muoán leänh chaïy neàn boû qua tín hieäu hang up thì coù theå söû duïng $ nohupsort database >db.out & 1245 Coù theå söû duïng leänh wait ñeå ñôïi quaù trình neàn vaø nhaän giaù trò traû veà cuûa noù. Ví duï : $ wait 1245 Ngoaøi ra ñoái vôùi ksh coøn coù cô caáu kieåm soaùt coâng vieäc : $ sort large > sort.out & [1] 1923 [1] laø chæ soá coâng vieäc. Goïi laïi leänh: Khi ksh thöïc hieän leänh noù ñöa vaên baûn leänh vaøo taäp tin $HOME/.history. Coù theå ñoåi teân taäp tin bôûi bieán HISTFILE. soá leänh coù theå chöùa laø ôû bieán HISTSIZE maëc ñònh laø 128. Coù theà söû duïng leänh fc deå trình baøy HISTFILE. Ví duï : $ fc -l 2 12 danh saùch caùc leänh töø 2 deán 12 2. Xöû lí quaù trình Heä thoáng Unix duøng caùc quaù trình nhö laø phöông tieän ñeå chaïy caùc chöông trình.Moãi leänh maø ngöôøi duøng nhaäp vaøo laøm taïo ra moät quaù trình.Moät quaù trình laø moät chöông trình ñang chaïy.Ngoaøi ra, quaù trình coøn keát hôïp caû thoâng tin veà ngöôøi duøng vaø moâi tröôøng heä thoáng.Moãi quaù trình coù moät Trang 28/43 HEÄ ÑIEÀU HAØNH UNIX maõ soá nhaän daïng ( ID ) rieâng lieân keát vôùi noù vaø heä ñieàu haønh seõ duøng maõ soá naøy ñeå phaân bieät caùc quaù trình. Quaù trình taïo ra moät quaù trình khaùc ñöïc goïi laø quaù trình cha.Caùc quaù trình ñöôïc taïo ra bôûi caùc quaù trình cha ñöôïc goïi laø caùc quaù trình con.Quaù trình con nhaän bieát cha noù qua ID cuûa quaù trình cha. Moãi quaù trình cuõng coù moät ID nhoùm quaù trình lieän keát vôùi noù.Moät nhoùm quaù trình bao goàm taát caû caùc quaù trình coù cuøng ID nhoùm quaù trình.Moãi voû ñaêng kyù moãi luùc chæ coù theå coù moät ID nhoùm quaù trình lieân keát vôùi noù.Quaù trình naøy goïi laø quaù trình .Neáu moät quaù trình cuûa ngöôøi söû duïng khoâng naèm trong ID cuûa nhoùm quaù trình lieân keát vôùi voû ñaêng kyù cuûa ngöôøi söû duïng thì quaù trình ñoù laø moät quaù trình neàn. Cuøng ñöôïc lieân keát vôùi moãi quaù trình laø ID cuûa ngöôøi söû duïng thöïc vaø hieäu quaû cuõng nhö ID cuûa nhoùm thöïc vaø hieäu quaû.Caùc ID cuûa ngöôøi söû duïng thöïc vaø quaù trình thöïc ñöôïc thieát laäp bôûi quaù trình ñaêng kyù vaø ñöôïc taát caû caùc quaù trình maø ngöôøi söû duïng taïo ra thöøa höôûng.ID cuûa ngöôøi söû duïng hieäu quaû thöôøng thì gioáng vôùi ID cuûa ngöôøi söû duïng thöïc nhöng coù theå ñöôïc thay ñoåi bôûi caùc chöông trình coù theå thieát laäp ID ngöôøi söû duïng ( ñoù laø su ).Cuõng vaäy, caùc ID cuûa nhoùm thöïc vaø hieäu quaû thöôøng cuõng gioáng nhau nhöng ID cuûa nhoùm hieäu quaû coù theå ñöôïc thay ñoåi bôûi caùc chöông trình coù theå thieát laäp ID nhoùm ( ví duï, mail ).Caùc ID cuûa nhoùm hieäu quaû vaø ngöôøi söû duïng hieäu quaû cuûa moät quaù trình ñöôïc duøng ñeå xaùc ñònh quyeàn truy nhaäp taäp tin vaø thö muïc cuûa moät quaù trình ( ñoïc, ghi, thöïc hieän hay tìm kieám ). Caùc quaù trình taïo bôûi leänh goïi heä thoáng fork hay exec ( moät leänh goïi heä thoáng laø moät lôøi goïi cuûa chöông trình göûi ñeán heä ñieàu haønh ñeå yeâu caàu caùc phuïc vuï heä thoáng ). Leänh goïi heä thoáng fork : Quaù trình cha taïo ra moät quaù trình con baèng moät leänh goïi heä thoáng fork. hinh 1 Leänh fork taïo ra moät baûn sao cuûa quaù trình goác gioáng nhö quaù trình cha ngoaïi tröø giaù trò ID-quaù trình cuûa noù. Quaù trình cha coù theå taïm ngöng söï thöïc hieän cuûa noù cho ñeán khi quaù trình con keát thuùc. Thoâng thöôøng shell thöïc thi leänh baèng caùch taïo quaù trình con sau ñoù ñôïi quaù trình con hoaøn thaønh tröôùc khi taïo daáu nhaéc keá. Quaù trình con thöøa keá caùc thoâng tin moâi tröôøng sau töø cha:  ID-quaù trình cha  ID nhoùm-quaù trình  Caùc taäp tin môû  Thö muïc laøm vieäc  Maët naï taïo taäp tin (umask)  ID-user chaïy  ID-nhoùm chaïy  Giôùi haïn kích thöôùc taäp tin taïo  Giôùi haïn boä nhôù toái ña  Caùc taùc ñoäng ñaët signal  Caùc bieán Khi quaù trình hoaøn thaønh, kieåm soaùt trôû laïi quaù trình cha. Caùc taøi nguyeân ñöôïc caáp phaùt seõ ñöôïc giaûi phoùng. Trang 29/43 HEÄ ÑIEÀU HAØNH UNIX Goïi heä thoáng exec Goïi heä thoáng exec naïp chöông trình vaøo vuøng boä nhôù cuûa quaù trình hieän haønh. Khoâng gioáng nhö fork, exec khoâng taïo quaù trình môùi. hinh 2 Quaù trình login Caùc söï kieän xaûy ra khi login seõ moâ taû caùch thöùc laøm vieäc cuûa fork vaø exec. Quaù trình /etc/init (PID 1) chaïy khi khôûi ñoäng heä thoáng vaø seõ tieáp tuïc chaïy cho ñeán khi ngöng. Quaù trình /etc/init laø moät quaù trình deamon. /etc/init xem xeùt /etc/inittab taäp tin naøy chöùa caùc doøng leänh phaûi thöïc hieän vôùi caùc möùc heä thoáng khaùc nhau. Ví duï nhö xuaát login : hoaëc ñaët cheá ñoä cho terminal 11:234:respawn:/etc/getty tty11 9600 respawn chæ thò laø moãi khi getty cheát noù seõ ñöôïc khôûi ñoäng laïi bôûi /etc/init hinh 3 Thöïc hieän leänh ñôn giaûn: Khi ñöa vaøo leänh ñôn giaûn shell fork moät shell khaùc vaø sau ñoù exec leänh. Shell cha ñôïi cho ñeán khi quaù trình con hoaøn thaønh hinh 4 Thöïc hieän chuoãi leänh: Khi ñöa vaøo chuoãi leänh shell fork moät shell con vaø sau ñoù goïi exec ñeå thöïc hieän leänh ñaàu tieân. Khi leänh ñaàu hoaøn thaønh shell fork shell khaùc vaø sau ñoù goïi leänh exec ñeå thöïc hieän leänh thöù hai v.v... hinh 5 Thöïc hieän nhoùm leänh: Khi ñöa vaøo nhoùm leänh shell fork moät shell con ñeå thöïc hieän caùc leänh. Shell con naøy goïi exec ñeå thöïc hieän leänh ñaàu tieân. Khi leänh ñaàu hoaøn thaønh shell fork shell khaùc vaø sau ñoù goïi leänh exec ñeå thöïc hieän leänh thöù hai vvv. hình 6 Thöïc hieän leänh ñöôøng oáng: Khi ñoaùn nhaän ñöôøng oáng (|) shell khôûi ñoäng moãi quaù trình trong doøng leänh vaø thieát laäp lieân laïc giöõa chuùng thoâng qua moät taäp tin ñöôøng oáng ñaëc bieät. Caùc leänh trong ñöôøng oáng ñöôïc thöïc hieän töø phaûi sang traùi. hình 7 Trang 30/43 HEÄ ÑIEÀU HAØNH UNIX Thöïc hieän leänh neàn: Khi ñöa vaøo leänh neàn shell fork shell con ø sau ñoù goïi leänh exec ñeå thöïc hieän leänh. Kieåm soaùt traû laïi quaù trình cha ngay. Shell khi ñoù coù theå thöïc hieän caùc leänh khaùc. hình 8 3. Leänh noäi taïi Caùc leänh noäi taïi laø moät phaàn cuûa shell. Coù caùc leänh sau : . taäp tin Shell hieän haønh ñoïc vaø bieân dòch leänh trong taäp tin alias [teân[=giaù trò]...] (ksh) Leänh alias cho pheùp ñoåi teân caùc leänh trong shell. Ví duï : $ alias dir=“ls “ $ alias opt=“-CF” $dir opt bin/ unit01.n unit02.n status * bg %chæ soà coâng vieäc ñaët coâng vieäc ôû cheá ñoä neàn break Thoaùt khoûi caùc caáu truùc for,while ... cd [thö muïc ] Chuyeån thö muïc continue Laëp caùc caáu truùc echo [ñoái soá] Hieån thò noäi dung ñoái soá exec [leänh] Goïi leänh thöïc hieän exit Keát thuùc shell export Ñöa caùc bieán moâi tröôøng thaønh caùc bieán chung fc Hieån thò taäp tin history fg %chæ soá coâng vieäc Ñaët coâng vieäc ôû cheá ñoä töông taùc kill ID-quaù trình Xoùa ñi moät quaù trình newgrp [nhoùm] Ñoåi nhoùm cuûa ngöôøi söû duïng read bieán Ñoïc döõ lieäu töø baøn phím pwd Hieån thò thö muïc hieän haønh return Traû veà haøm goïi set Ñaët bieán moâi tröôøng test [bieåu thöùc] Kieåm tra bieåu thöùc. Ví duï : -r taäp tin Ñuùng neáu taäp tin toàn taïi vaø coù theå ñoïc vvv. ulimit [kích thöôùc] Ñònh kích thöôùc toái ña taäp tin taïo unalias teân Xoùa alias moät teân Trang 31/43 HEÄ ÑIEÀU HAØNH UNIX umask [maët naï] Ñònh maët naï chuû quyeàn taäp tin Giaù trò maët naï Chuû quyeàn taäp tin Chuû quyeàn thö muïc 000 -rw-rw-rw- drwxrwxrwx 002 -rw-rw-r-- drwxrwxr-x 007 -rw-rw---- drwxrwx--- 022 -rw-r--r-- drwxr-x--- 027 -rw-r----- drwxr-x--- 077 -rw------- drwx------ uset Xoùa caùc bieán moâi tröôøng wait [PID] Ñôïi quaù trình PID hoaøn thaønh sau ñoù baùo caùo traïng thaùi keát thuùc cuûa noù. 4. Bieán vaø tham soá shell Caùc tham soá shell ñöôïc söû duïng chöùa caùc giaù trò cuûa shell hieän haønh hay caùc shell con ñeå söû duïng sau ñoù. Coù caùc loaïi tham soá sau:  Tham soá vò trí  Tham soá ñaëc bieät  Tham soá ñöôïc ñaët teân (bieán) 4.1 Tham soá vò trí Tham soá vò trí laø caùc giaù trò truyeàn qua khi shell hay shell con ñöôïc goïi. Coù theå ñaët caùc tham soá vò trí nhö caùc ñoái soá cuûa shell script vaø caùc tham soá naøy ñöôïc ñaùnh soá 1,2 vvv. Teân cuûa leänh hieän haønh ñöôïc tham chieáu bôûi $0. Caùc tham soá khaùc seõ laø $1, $2 vvv. 4.2 Tham soá ñaëc bieät Tham soá ñaëc bieät ñöôïc ñaët töï ñoäng khi shell ñöôïc goïi.Chuùng coù moät yù nghóa ñaëc bieät khoâng theå thay ñoåi. Bieán yù nghóa $@ Tham soá vò trí nhö “$1 $2 $3 $4...” $@ Tham soá vò trí nhö “$1”, “ $2”, “ $3”, “ $4” vvv. $# Chæ soá cuûa tham soá vò trí truyeàn ñeán shell $? Maõ thoaùt cuûa leänh ñoàng boä cuoái cuøng $$ Chæ soá quaù trình cuûa shell hieän haønh $! Chæ soá cuûa leänh neàn cuoái cuøng ñöôïc keùo bôûi shell hieän haønh 4.3 Tham soá ñöôïc ñaët teân Tham soá ñöôïc ñaët teân ñöôïc goïi laø bieán shell vaø phaûi baét ñaàu vôùi moät chöõ sau ñoù coù theå laø chöõ hay soá. Ñeå ñaët bieán söû duïng daáu =. Ví duï : $ ten = “ Ng Van A” $ echo $ten Trang 32/43 HEÄ ÑIEÀU HAØNH UNIX Ng Van A Daáu {} phaûi ñöôïc söû duïng vôùi teân bieán theo sau bôûi chöõ hay soá maø khoâng phaûi laø moät phaàn cuûa teân bieán. Ví duï : $ filename=chapt $ echo ${filename}0 chapt0 Caùc bieán ñöôïc ñaët bôûi shell(ksh) ; ERRNO giaù trò sai cuûa laàn goïi heä thoáng cuoái LINENO Chæ soá doøng hieän haønh trong shell script OLDPWD Giöõ thö muïc hieän haønh cuõ ñöôïc ñaët bôûi leänh cd PPD Chæ soá quaù trình cuûa shell cha PWD Thö muïc hieän haønh Caùc bieán ñöôïc söû duïng bôûi shell(ksh) ; Caùc bieá naøy thöôøng ñöôïc ñaët bôûi quaûn trò heä thoáng trong taäp tin /etc/profile hay bôûi ngöôøi söû duïng trong taäp tin .profile CDPATH Ñöôøng daãn ñeå tìm leänh cd HOME Thö muïc “home” PATH Ñöôøng daãn ñeå tìm leänh PS1 Daáu nhaéc thöùø nhaát maëc ñònh “$ “ PS2 Daáu nhaéc thöù hai maëc ñònh “> “ TERM Loaïi Terminal 5. Caáu truùc laäp trình + for for bieán in töø do danh saùch leänh done for bieán do danh saùch leänh done Ví duï : $ ls unit??.n unit01.n unit02.n unit04.n unit12.n $ for i in unit??.n > do > spell $i > ${i}_sp > done $ ls unit??* Trang 33/43 HEÄ ÑIEÀU HAØNH UNIX . unit01.n unit02.n unit04.n unit12.n unit01.n_sp unit02.n_sp unit04.n_sp unit12.n_sp Hay ta coù theå thu thaäp caùc taäp tin xuaát vaøo moät taäp tin for i in unit??.n do echo “$i:” spell $i echo “\n” done > spell.out + while while leänh do danh saùch leänh   done Thöïc hieän danh saùch leänh chöøng naøo traïng thaùi thoaùt cuûa leänh khaùc khoâng. Neáu ngay laàn ñaàu leänh ñaõ traû veà giaù trò khaùc khoâng thì danh saùch leänh seõ khoâng ñöôïc thöïc hieän. Ví duï : while who | grep NVA > /dev/null do sleep 10 done echo “NVA daõ log off “ > /etc/w_NVA + until until leänh do danh saùch leänh   done Thöïc hieän danh saùch leänh chöøng naøo traïng thaùi thoaùt cuûa leänh baèng khoâng. Neáu ngay laàn ñaàu leänh ñaõ traû veà giaù trò baèng khoâng thì danh saùch leänh seõ khoâng ñöôïc thöïc hieän. Ví duï : until who | grep NVA > /dev/null do sleep 10 done echo “NVA daõ log on” + if  if leänh then danh saùch leänh fi Trang 34/43 HEÄ ÑIEÀU HAØNH UNIX if leänh then danh saùch leänh else danh saùch leänh  fi   if leänh then danh saùch leänh elif leänh then  danh saùch leänh  fi Neáu leänh trôû laïi giaù trò khoâng danh saùch leänh sau then seõ ñöôïc thöïc hieän. if who | grep NVA > /dev/null then echo “NVA ñaõ ø log on”  fi if  [ -f status ] then echo “ status laø taäp tin thöôøng” else echo “ status khoâng phaûi laø taäp tin thöôøng”  fi if [ -f status ] then echo “ status laø taäp tin thöôøng” elif [ -d status ] then  echo “ status laø thö muïc” fi + case case töø in pattern1) danh saùch leänh ;; pattern2) danh saùch leänh ;; Trang 35/43 HEÄ ÑIEÀU HAØNH UNIX esac Leänh case seõ thöïc hieân danh saùch leänh lieän heä vôùi pattern ñaàu tieân thích öùng vôùi töø. Moãi pattern ñöôïc keát thuùc bôûi (;;). Ví duï : echo “ Ñöa vaøo leänh : \c” read cmd case $cmd in ls) /bin/ls ;; who) /bin/who;; date) /bin/date;; *) echo “ Leänh sai”;; esac + Haøm teân() { caùc leänh } function { caùc leänh } Caùc haøm ñöôïc ñoïc vaøo shell hieän haønh. Ñeå goïi haøm chæ caàn goïi baèng teân ( chuù yù teân haøm phaûi khaùc vôùi teân cuûa caùc leänh unix ñaõ toàn taïi. Shell thöïc hieän caùc leänh trong { } khi haøm ñöôïc goïi.Haøm coù theå truy xuaát taäp hôïp bieán cuûa shell hieän haønh. Ví duï : dir() { /bin/ls -C } 6. Shell script Shell script laø moät taäp tin chöùa caùc leänh noäi taïi,haøm vaø leänh unix. Shell script thöôøng söû duïng khi moät chuoãi leänh phaûi thöïc hieän nhieàu hôn moät laàn. Ñeå taïo shell script söû duïng moät chöông trình hieäu ñính ñeå ñöa caùc leänh muoán thöïc hieän vaøo taäp tin. Ñeå thöïc hieän shell script coù theå laøm nhö sau : Thay ñoåi chuû quyeàn taäp tin ñeán cheá ñoä thöïc hieän ñöôïc. Sau ñoù chaïy shell script nhö moät leänh bình thöôøng. hoaëc söû duïng leänh sh $ sh myprog Trang 36/43 HEÄ ÑIEÀU HAØNH UNIX Teân cuûa shell script khoâng neân truøng vôùi caùc leänh UNIX,leänh noäi taïi, haøm. Ví shell script thöïc hieän ñaàu tieân. Ñeå gôõ roái shell script söû duïng $ sôû höõu -x myprog Coù theå söû duïng leänh chaám (.) thöïc hieän chöông trình tröïc tieáp shell script trong moâi tröôøng cuûa noù. Ví duï : $ . .profile Ñoïc vaø thöïc hieän caùc leänh trong taäp tin .profile VII Söû duïng openwin VIII Maïng UNIX Maïng cho pheùp ngöôøi söû duïng truy xuaát vaø chia seû taøi nguyeân cuûa caùc maùy caùch xa nhau. Caùc maùy tính noái keát treân maïng ñöôïc goïi laø “host”. Maùy taïi choã goïi laø maùy chuû cuïc boä (local host). Taát caû caùc maùy khaùc goïi laø maùy chuû töø xa (remote host). Maïng cuïc boä (LAN) laø taäp hôïp cuûa caùc maùy gaàn nhau (trong phaïm vi 2km). Maïng roäng (WAN) laø taäp hôïp cuûa caùc maùy coù khoaûng caùch ñòa lí xa nhau (coù theå haøng ngaøn caây soá). UNIX cung caáp caû hai khaû naêng noái keát maïng LAN vaø WAN, vôùi hai giao thöùc : UUCP (Unix-to Unix CoPy) - Noái keát giöõa hai heä UNIX vôùi nhau. TCP/IP (Transmission Control Protocol/ Internet Protocol) - Noái keát giöõa caùc heä maùy chuû khaùc nhau. Ñaëc bieät noù laø moät giao thöùc chuaân ñöôïc söû duïng trong maïng Internet - Maïng WAN phoå bieán nhaát theá giôùi. 1. Giao thöùc TCP/IP Giao thöùc TCP/IP ñöôïc thieát laäp bôûi toå chöùc Internet. TCP/IP laø moät taäp caùc giao thöùc (FTP,SMTP,Telnet vvv) maø ñònh nghóa chuaån cho caùc loaïi truyeàn thoâng khaùc nhau (Truyeàn taäp tin, thö ñieän töû, moâ phoûng terminal vvv). Hieän nay TCP/IP laø giao thöùc ñöôïc söû duïng phoå bieán nhaát. Caùc giao thöùc TCP/IP ñöôïc caøi ñaët nhö caùc öùng duïng Client/Server. Moät “client” söû duïng ñeå yeâu caàu söï thöïc hieän moät taùc ñoäng bôûi maùy “server” töø xa. Maùy “server” coù traùch nhieäm xöû lí yeâu caàu cuûa maùy “client”. Döõ lieäu truyeàn qua LAN vaø WAN theo töøng khoái (packets). Coù raát nhieàu loaïi LAN vaø WAN khaùc nhau tuøy theo caùch thöùc chuùng truyeàn packets. LAN phoå bieán nhaát laø Ethernet. Moät host maø coù phaàn cöùng cho caû LAN vaø WAN ñöôïc goïi laø “gateway” vì chuùng coù khaû naêng phaân ñuôøng giöõa LAN vaø WAN. Ñeå cho caùc maùy PC söû duïng caùc phaàn cöùng LAN,WAN caùc boä ñieàu khieån thieát bò phaûi ñöôïc caùi ñaëi, Caùc boä ñieàu khieån cho LAN coù theå laø NDIS, ODI,ASI,PDS. Caùc boä ñieàu khieån cho WAN coù theå laø X.25,PPP vaø SLIP. 1.1 Caùc thaønh phaàn cuûa TCP/IP Trang 37/43 HEÄ ÑIEÀU HAØNH UNIX quaù trình cuûa ngöôøi söû duïng quaù trình cuûa ngöôøi söû duïng TCP UDP ICMP IP ARP RARP giao tieáp phaàn cöùng TCP ( Transmission Control Protocol) Giao thöù höôùng ñeán noái keát : tin caäy, hai chieàu, kieåm soaùt söï truyeàn nhaän caùc doøng döõ lieäu. Ña soá caùc öùng duïng söû duïng TCP. UDP (User Datagram Protocol) Giao thöùc khoâng noái keát : khoâng tin caäy, doøng döõ lieäu truyeàn khoâng caàn ù kieåm tra nhaän ñöôc hay khoâng. ICMP (Internet Control Message Protocol) Giao thöùc ñieàu khieån sai vaø kieåm soaùt thoâng tin giöõa “gateway” vaø caùc maùy chuû. IP (Internet Protocol) Giao thöùc cung caáp caùc dòch vuï chuyeån goùi (packet) ñeå ch TCP, UDP vaø ICMP. ARP Address Resolution Protocol Giao thöùc aùnh xaï ñòa chì Internet vaøo ñòa chæ phaàn cöùng. RARP Revese Address Resolution Protocol Giao thöùc aùnh xaï ñòa chæ phaàn cöùng vaøo ñòa chæ Internet. 1.2 Caùc khaùi nieäm cô baûn Ñòa chæ IP (IP Address) : Chæ soá duy nhaát ñeå ñònh danh moãi maùy trong maïng. Coù daïng sau : Chæ soá maïng Chæ soá maïng con Chæ soá maùy Ví duï : 192.127. 50. 1 Chæ soá maïng : Nhaän töø Network Information Center(NIC), Khoâng theå thay ñoåi Chæ soá maïng con : Tuøy choïn, chæ soá maïng con maø maùy noái vaøo. Chæ soá maùy : Xaùc ñònh duy nhaát cho moãi maùy treân maïng. Do ngöôøi quaûn trò heä thoáng ñaët khi taïo maïng hay theâm maùy. Ñòa chæ IP ñöôïc bieåu dieãn baèng 4 byte : 3 byte ñaàu daønh cho chæ soá maïng vaø maïng con. Byte cuoái daønh cho ñòa chæ maùy. Moãi byte caùch nhau bôûi (.). Ví duï : 195.127.50.1 Maët naï maïng con ( subnet mask) :Soá söû duïng bôûi phaàn meàm ñeå phaân caùch ñòa chæ maïng con vaø phaàn coøn laïi cuûa ñòa chæ IP. Ví duï : 255.255.255.0 ba byte ñaàu bieåu dieãn chæ soá maïng vaø maïng con. Ñòa chæ chung (Broadcast Address): Ñöôïc söû duïng ñeå lan truyeàn thoâng baùo ñeán taát caû caùc maùy trong maïng. Ví duï : 195.127.50.255. Khi söû duïng ñòa chæ naøy ñeå göûi thoâng baùo thì taát caû caùc maùy trong maïng 195.127.50 seõ nhaän ñöôïc thoâng baùo. Teân vuøng (domain name) : Teân daøng cho moät nhoùm maùy ñöôïc quaûn trò ñoáng thôøi. Teân vuøng coù tính phaân caáp, caùc thaønh phaàn ñöôïc phaân caùch bôûi daáu chaám (.). Möùc vuøng ñöôïc tính töø phaûi sang traùi. Möùc vuøng cao nhaát coù theå laø : .COM laõnh vöïc thöông maïi .EDU laõnh vöïc giaùo duïc .GOV laõnh vöïc chính phuû Trang 38/43 HEÄ ÑIEÀU HAØNH UNIX Teân vuøng ñaày ñuû phaûi duy nhaát treân toaøn theá giôùi. Ví duï: hcm.vn.com Dòch vuï teân vuøng (Domain Name Service) : dòch vuï teân cuûa hoï TCP/IP, cung caáp caùc thoâng tin veà caùc maùy cuïc boä cuõng nhö töø xa. Teân maùy (host name): Coù theå laø ñòa chæ IP hay moät chuoãi kí töï maø laø teân hình thöùc cuûa maùy. Ñöôïc ñònh nghóa trong taäp tin /etc/host. Ví duï : trong taäp tin /etc/host coù doøng 195.127.50.1 sunfibi thì sunfibi laø teân maùy. 1.3 Caùc öùng duïng Döïa treân TCP/IP coù raát nhieàu öùng duïng khaùc nhau : Telnet : cho pheùp caùc terminal lieân laïc vôùi nhau theo töøng kí töï. Noù cuõng cho pheùp moâ phoûng PC hnö moät terminal cuûa maùy chuû. Ftp (File Transfer Protocol): Cho pheùp truyeàn taäp tin giöõa caùc maùy (maïng) caùch xa nhau. Dòch vuï teân vuøng (DNS) : cung caáp caùc aùnh xaï Teân-Ñòa chæ. Ngoaøi ra coøn coù caùc leänh nhö rcp,rsh vvv. Duøng ñeå thöïc hieän töø xa hay sao cheùp caùc taäp tin ôû caùc maùy töø xa. Caùc leänh cô baûn treân (DOS,UNIX): + Kieåm soaùt ñöôøng truyeàn : ping [time out] timeout thôøi gian coà gaéng noái keát. Ví duï : $ping sunfibi Ping göûi moät ICMP tôùi hostname. Neáu host coù ñaùp öùng thì seõ coù thoâng baùo : sunfibi is alive. Neáu khoâng : No answer from sunfibi. + Moâ phoûng terminal : Cho pheùp terminal noái keát vôùi maùy chuû töø xa. Coù hai loaïi terminal coù theå moâ phoûng VT100 hay IBM3270. Ví duï : $rlogin sunfibi login: password: + Truyeàn taäp tin : Cho pheùp truyeàn vaø nhaän taäp tin vôùi maùy töø xa. Ví duï : $ftp sunfibi login: password: > Taïi daáu nhaéc naøy coù theå ñöa vaøo caùc leänh hay söû duïng leänh help ñeå lieät keâ caùc leänh coù theå söû duïng. Coù moät vaøi leänh cô baûn nhö : Trang 39/43 HEÄ ÑIEÀU HAØNH UNIX dir Hieån thò caùc thö muïc cuûa maùy login get path/filename (cuïc boä) path/filename (töø xa) Truyeàn taäp tin ñeán maùy töø xa put path/filename (töø xa) path/filename(cuïc boä) Nhaän taäp tin töø maùy töø xa exit Thoaùt khoûi ftp + Sao cheùp taäp tin töø xa : Sao cheùp taäp tin giöõa caùc maùy.Coù daïng rcp [choïn löïa] nguoàn ñích choïn löïa : -p sao cheùp caû thôøi gian vaø chuû quyeàn cuûa taäp tin nguoàn -r sao cheùp caû caùc thö muïc con. nguoàn vaø ñích coù daïng hostname:pathname. hostname coù theå boû qua ôû maùy cuïc boä. Ví duï : $rcp test sunfibi:/usr/dung hoaëc $rcp sunfibi:/usr/dung/test /usr/tan/thu + Thöïc hieän leänh töø xa: Noái keát vôùi host vaø thöïc hieän leänh. Daïng : rsh host [choïn löïa] [leänh] choïn löïa : -lusername noái keát host vôùi username. -n höôùng nhaäp ñeán /dev/null Ví duï : $rsh sunfibi -lroot cat /test > /thu cheùp taäp tin /test ôû maùy sunfibi sang maùy cuïc boä. + In taäp tin : In noäi dung taäp tin ra maùy in töø xa. Daïng : lpr hostname filename hostname laø teân maùy coù gaén maùy in.Ví duï : $lpr sunfibi test Ngoaøi ra trong PC/TCP coøn coù caùc chöông trình chaïy trong WINDOW maø cho pheùp söû duïng caùc giao thöùc TCP/IP ôû cheá ñoä ñoà hoïa. Ñeå coù theå thöïc hieän ñöôïc caùc öøng duïng cuûa XWINDOW phaûi söû duïng chöông trình moâ phoûng X terminal (eXceed 4). Caùc böôùc thöïc hieän nhö sau : - Nhaán hai laàn con chuoät treân icon eXceed trong Window ñeå khôûi ñoäng eXceed. - Nhaán hai laàn con chuoät treân icon Telnet coù dialog sau: Connect OK Host : sunfibi Cancel Help Ñöa vaøo ñòa chæ IP hay teân host chöùa XWINDOW server.Sau khi noái keát thaøng coâng ñöa vaøo login: password: Trang 40/43 HEÄ ÑIEÀU HAØNH UNIX Keá ñoù laø khôûi ñoäng X WINDOW client: $[path/]xterm -ls -displays client1:0 & 2. Giao thöùc UUCP Maïng ñaõ ñöôïc ñöa vaøo UNIX naêm 1975 vôùi UUCP döôùi daïng “ñieåm - ñieåm” giöõa hai heä thoáng UNIX keát noái qua ñöôùng daây ñieän thoaïi. UUCP ñöôïc söû duïng roäng raõi, ngaøy nay noù cung caáp caû khaû naêng treân maïng cuïc boä. Giao thöùc UUCP coù theå söû duïng ñeå truyeàn taäp tin, thöïc hieän töø xa, göûi thö tín ñieän töû. Leänh UUCP ñaõ ñöôïc naâng cao, caùc taäp tin truyeàn bò ngaét seõ ñöôïc truyeàn laïi töø choã truyeàn sai chöù khoâng phaûi töø ñaàu taäp tin. Phaàn cöùng cuûa UUCP coù ba loaïi khaùc nhau :  Direct links: ñöôùng daây tröïc tieáp toái ña laø 50 feet toác ñoä coù theå ñaït ñöôïc 19200 baud  Telephone line: Söû duïng Automatic Call Unit (ACU) töï ñoäng quay soá theo yeâu caàu cuûa UUCP.  Networking: söû duïng moâi tröôøng maïng cuïc boä 2.1 Caùc thaønh phaàn cuûa UUCP:. user mail news UUCP UUX work file data file executes file UUCICO | Kernel | | Kernel | UUCI CO uucico coâng cuï noái keát caùc maùy tính xa cho pheùp truye nà taäp tin hay thöïc hieän leänh uucp sao cheùp moät taäp tin töø moät maùy ñeán maùy khaùc, UUCP taïo taäp tin döõ lieäu vaø taäp tin laøm vieäc, xeáp haøng caùc coâng vieäc ñeå truye nà vaø goïi uucico daemon å noái keát vôùi maùy töø xa. uux taïo caùc taäp tin laøm vieäc(C.xxx) , döõ lieäu(D.xxx) vaø thöïc hieän(X.xxx) ca nà thieát ñeå thöïc hieän leänh treân moät maùy töø xa.Taäp tin laøm vieäc chöùa cuøng moät thoâng tin nhö taäp tin laøm vieäc taïo bôûi uucp vaø uuto. Taäp tin thöïc hieän chöùa doøng leänh seõ ñöôïc thöïc hieän treân maùy töø xa vaø danh saùch caùc taäp tin döõ lieäu. Caùc taäp tin döõ lieäu laø caùc taäp tin ñöôïc ñoøi hoûi ñeå thöïc hieän leänh. Trang 41/43 HEÄ ÑIEÀU HAØNH UNIX 2.2 Caùc leänh UUCP Goïi UNIX (cu) : Cho pheùp noái keát vôùi moät heä UNIX töø xa. Sau khi noái keát coù theå thöïc hieän caùc leänh töø xa. Leänh coù daïng nhö sau : cu [-s toác ñoä][-l ñöôøng] [-h][-o][-e] hostname cu [-s toác ñoä][-l ñöôøng] [-t][-h][-o[-e] telnum trong ñoù : -s toác ñoä : ñònh nghóa toác ñoä truyeàn -l ñöôøng : choïn coång -h :truyeàn theo cheá ñoä half-duplex -d : Hieån thò töøng böôùc thöïc hieän -o : kieåm tra chaün -e: kieåm tra leû -t : quaûn lí terminal ôû cheá ñoä töï ñoäng hostname: teân heä thoáng töø xa telnum: soá ñieân thoaïi cuûa maùy töø xa Sau khi noái ñöôùng thaønh coâng,cu seõ truyeàn thoâng tin ñoïc töø thieát bò nhaäp chuaån cho heä xa, nhaän caùc thoâng tin cuûa maùy xa chuyeån ra xuaát chuaån. Coù theå söû duïng caùc leänh sau : . keát thuùc ñoái thoaïi ! trôû veà heä cuïc boä ! cmd thöïc hieän leänh taïi choã $ cmd thöïc hieän leänh taïi choã vaø göûi cho maùy töø xa %cd chuyeån thö muïc treân maùy cuïc boä %take taäp tin töø xa taäp tin cuïc boä sao cheùp taäp tin töø maùy töø xa %put taäp tin cuïc boä taäp tin töø xa sao cheùp taäp tin ñeán maùy töø xa %debug Cheá ñoä gôõ roái Ví duï : cu -s 2400 -l tty01 sunfibihn hoaëc cu -s 2400 -l tty01 014234567 connect Wellcome to Sun Solaris login: password: sunfibihn$~% sunfibihn$[sunfibi]%cd /usr/dung +uucp : sao cheùp taäp tin giöõa caùc heä unix. Daïng leänh : Trang 42/43 HEÄ ÑIEÀU HAØNH UNIX uucp [choïn löïa][nguoàn!]taäp tin nguoàn [ñích!] taäp tin ñích nguoàn vaø ñích coù theå laø caùc heä töø xa, taäp tin ñích coù theå laø thö muïc. Choïn löïa : -C cheùp caùc taäp tin vaøo thö muïc spool cuûa maùy ôû xa -c khoâng cheùp caùc taäp tin vaøo thö muïc spool cuûa maùy ôû xa -d taïo caùc thö muïc neáu caùc thö muïc khoâng toàn taïi -f khoâng taïo caùc thö muïc neáu caùc thö muïc khoân toàn taïi -m Göûi mail cho user khi sao cheùp hoaøn thaønh -n user göûi mail cho user baùo caùc taäp tin ñaõ ñöôïc göûi Ví duï : $uucp -m test sunfibihn!~/test + uux (unix to unix execution): Cho pheùp thöïc hieän leänh treân moät heä vaø göûi keát quaû ñeán heä khaùc. Daïng leänh : uux [choïn löïa][sys!]leänh choïn löïa : 8 - nhaäp chuaån -L khôûi ñoâng uucico -C cheùp caùc taäp tin cuïc boä vaøo thö muïc spool ñeå truyeàn -c khoâng cheùp caùc taäp tin vaøo thö muïc spoolñeå truyeàn Ví duï : $uux sunfibihn!ls > sunfibí!test + uustat : Thoâng baùo traïng thaùi uucp. Daïng leänh : uustat [choïn löïa] choïn löïa : -a Hieån thò taát caû traïng thaùi -u user Hieån thò traïng thaùi user -s sys Hieån thò traïng thaùi cuûa heä Trang 43/43

Các file đính kèm theo tài liệu này:

  • pdftailieu.pdf