unix - nguyễn trí thành

Upload: hieuphong

Post on 10-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Unix - Nguyn Tr Thnh

    1/212

    I HC QUC GIA H NI

    TRNGI HC CNG NGH=====================================

    H QUANG THY - NGUYN TR THNH

    Gio trnh:

    HIU HNH UNIX - LINUXDnh cho sinh vin ngnh Cng ngh thng tin,

    in t- Vin thng, Ton tin ng dng

    H NI - 2004

  • 8/8/2019 Unix - Nguyn Tr Thnh

    2/212

    MC LC

    LI GII THIU 6U

    CHNG 1. GII THIU CHUNG V LINUX 7

    1.1. Gii thiu v UNIX v Linux 71.1.1. Xut x, qu trnh tin ha v mt sc trng ca hiu hnh UNIX 7

    1.1.2. Gii thiu sb v Linux 9

    1.2. Sb v cc thnh phn ca Linux 121.2.1. Sb v nhn 12

    1.2.2. Sb v shell 13

    1.3. Gii thiu v sdng lnh trong Linux 141.3.1. Cc quy c khi vit lnh 16

    1.3.3. Lm n gin thao tc g lnh 18

    1.3.4. Tip ni dng lnh 201.4. Trang Man 21

    CHNG 2. THAO TC VI H THNG 23

    2.1. Qu trnh khi ng Linux 232.2. Th tc ng nhp v cc lnh thot khi h thng 24

    2.2.1. ng nh p

    2.2.2. Ra khi h thng 25

    2.2.3. Khi ng li h thng 262.2.4. Khi ng vo ch ho 27

    2.3. Lnh thay i mt khu 292.4. Lnh xem, thit t ngy, gihin ti v xem lch trn h thng 31

    2.4.1 Lnh xem, thit t ngy, gi 312.4.2. Lnh xem lch 32

    2.5. Xem thng tin h thng 332.6. Thay i ni dung du nhc shell 342.7. Lnh gi ngn ngtnh ton s hc 35

    CHNG 3. H THNG FILE 38

    3.1 Tng quan v h thng file 38

    3.1.1. Mt s khi nim 383.1.2. Sb kin trc ni ti ca h thng file 40

    3.1.3. Mt s thut ton lm vic vi inode 44

    3.1.4. H trnhiu h thng File 463.1.5. Lin kt tng trng (lnh ln) 49

    3.2 Quyn truy nhp thmc v file 503.2.1 Quyn truy nh p

    1

  • 8/8/2019 Unix - Nguyn Tr Thnh

    3/212

    3.2.2. Cc lnh cbn 52

    3.3 Thao tc vi thmc 563.3.1 Mt s th mc c bit 56

    3.3.2 Cc lnh cbn v th mc 58

    3.4. Cc lnh lm vic vi file 613.4.1 Cc kiu file c trong Linux 61

    3.4.2. Cc lnh to file 62

    3.4.3 Cc lnh thao tc trn file 63

    3.4.4 Cc lnh thao tc theo ni dung file 693.4.5 Cc lnh tm file 76

    3.5 Nn v sao lu cc file 823.5.1 Sao lu cc file (lnh tar) 823.5.2 Nn d liu 84

    CHNG 4. QUN TR QU TRNH 884.1 Qu trnh trong UNIX 884.1.1. Sb v qu trnh 88

    4.1.2. Sb cu trc iu khin ca UNIX 88

    4.1.3. Cc h thng con trong nhn 904.1.4. Sb viu khin qu trnh 92

    4.1.5. Trng thi v chuyn dch trng thi 93

    4.1.6. S ngng hot ng v hot ng trli ca qu trnh 94

    4.1.7. Sb v lnh i vi qu trnh 94

    4.2. Cc lnh cbn 954.2.1. Lnh fg v lnh bg 95

    4.2.2. Hin th cc qu trnh ang chy vi lnh ps 97

    4.2.3. Hy qu trnh vi lnh kill 98

    4.2.4. Cho my ngng hot ng mt thi gian vi lnh sleep 99

    4.2.5. Xem cy qu trnh vi lnh pstree 1004.2.6. Lnh thit t li u tin ca qu trnh nice v lnh renice 101

    CHNG 5. QUN L TI KHON NGI DNG 103

    5.1 Ti khon ngi dng 103

    5.2 Cc lnh cbn qun l ngi dng 1035.2.1 File /etc/passwd 103

    5.2.2 Thm ngi dng vi lnh useradd 1045.2.3 Thay i thuc tnh ngi dng 106

    5.2.4 Xa b mt ngi dng (lnh userdel) 106

    5.3 Cc lnh cbn lin quan n nhm ngi dng 1075.3.1 Nhm ngi dng v file /etc/group 107

    2

  • 8/8/2019 Unix - Nguyn Tr Thnh

    4/212

    5.3.2 Thm nhm ngi dng 108

    5.3.3 Sa i cc thuc tnh ca mt nhm ngi dng (lnh groupmod) 108

    5.3.4 Xa mt nhm ngi dng (lnh groupdel) 108

    5.4 Cc lnh cbn khc c lin quan n ngi dng 1095.4.1 ng nhp vi t cch mt ngi dng khc khi dng lnh su 109

    5.4.2 Xc nh ngi dng ang ng nhp (lnh who) 109

    5.4.3 Xc nh cc qu trnh ang c tin hnh (lnh w) 111

    CHNG 6. TRUYN THNG V MNG UNIX-LINUX 112

    6.1. Lnh truyn thng 1126.1.1. Lnh write 112

    6.1.2. Lnh mail 112

    6.1.3. Lnh talk 114

    6.2 Cu hnh Card giao tip mng 114

    6.3. Cc dch v mng 1156.3.1 H thng tin mng NIS 115

    6.4 H thng file trn mng 1206.4.1 Ci t NFS 1206.4.2 Khi ng v dng NFS 121

    6.4.3 Cu hnh NFS server v Client 121

    6.4.4 S dng mount 122

    6.4.5 Unmount 122

    6.4.6 Mount tng qua tp cu hnh 123

    CHNG 7. LP TRNH SHELL V LP TRNH C TRN LINUX 1247.1. Cch thc pipes v cc yu t cbn lp trnh trn shell 124

    7.1.1. Cch thc pipes 124

    7.1.2. Cc yu t cbn l p trnh trong shell 125

    7.2. Mt s lnh lp trnh trn shell 1287.2.1. S dng cc ton t bash 128

    7.2.2. iu khin lung 1307.2.3 Cc ton tnh hng vo ra 140

    7.2.4. Hin dng vn bn 141

    7.2.5. Lnh read c d liu cho bin ngi dng 1427.2.6. Lnh set 142

    7.2.7. Tnh ton trn cc bin 1427.2.8. Chng trnh v d 143

    7.3. Lp trnh C trn UNIX 1447.3.1. Trnh bin dch gcc 144

    7.3.2. Cng c GNU make 146

    3

  • 8/8/2019 Unix - Nguyn Tr Thnh

    5/212

    7.3.3. Lm vic vi file 147

    7.3.4. Th vin lin kt 153

    7.3.5 Cc cng c cho th vin 160

    TI LIU THAM KHO 162

    CH THCH MT S THUT NG 163PH LC A. QU TRNH CI T REDHAT-LINUX 165

    AA. Ci t phin bn RedHat 6.2 165AA.1. To a mm khi ng 165

    AA.2. Phn vng li a DOS/Windows hin thi 166AA.3. Cc bc ci t (bn RedHat 6.2 v khi ng t CD-ROM) 166

    AA.4. Cc hn ch v phn cng i vi Linux 173

    PH LC B. TRNH SON THO VIM 176

    B.1 Khi ng vim 178B.1.1 Mchng trnh son tho vim 178

    B.1.2. Tnh nng mnhiu ca s 178B.1.3. Ghi v thot trong vim 179

    B.2. Di chuyn tr son tho trong Vim 180B.2.1. Di chuyn trong vn bn 180

    B.2.2. Di chuyn theo cc i tng vn bn 180

    B.2.3. Cun mn hnh 181

    B.3. Cc thao tc trong vn bn 181B.3.1. Cc lnh chn vn bn trong vim 181

    B.3.2. Cc lnh xo vn bn trong vim 181

    B.3.3. Cc lnh khi phc vn bn trong vim 182

    6.3.4. Cc lnh thay th vn bn trong vim 182B.3.5. Sao chp v di chuyn vn bn trong vim 183

    B.3.6. Tm kim v thay th vn bn trong vim 184

    B.3.7. nh du trong vim 185

    B.3.8. Cc phm s dng trong ch chn 185

    B.3.9. Mt s lnh trong cho 186B.3.10. Cc lnh l p

    B.4. Cc lnh khc 186B.4.1. Cch thc hin cc lnh bn trong Vim 186

    B.4.2. Cc lnh lin quan n file 187

    4

  • 8/8/2019 Unix - Nguyn Tr Thnh

    6/212

    PH LC C. MIDNIGHT COMMANDER 188

    C.1. Gii thiu v Midnight Commander (MC) 188C.2. Khi ng MC 188C.3. Giao din ca MC 188C.4. Dng chut trong MC 189

    C.5. Cc thao tc bn phm 189C.6. Thc n thanh ngang (menu bar) 191C.7. Cc phm chc nng 193C.8. B son tho ca Midnight Commander 193

    PH LC D. SAMBA 196

    D.1 Ci t Samba 196D.2 Cc thnh phn ca Samba 197D.3 File cu hnh Samba 198D.4 Cc phn c bit ca file cu hnh Samba 199D.5 Qun l ngi dng trong Samba 205

    D.6 Cch sdng Samba tcc my trm 206D.6.1 Cch s dng t cc my trm l Linux 206D.6.2 Cch s dng t cc my trm l Windows 208

    5

  • 8/8/2019 Unix - Nguyn Tr Thnh

    7/212

    LI GII THIU

    6

  • 8/8/2019 Unix - Nguyn Tr Thnh

    8/212

    CHNG 1. GII THIU CHUNG V LINUX

    1.1. Gii thiu v UNIX v Linux

    1.1.1. Xut x, qu trnh tin ha v mt sc trng ca hiu hnh UNIX

    Nm 1965, Vin cng ngh Massachusetts (MIT: Massachusetts Institute ofTechnology) v Phng th nghim Bell ca hng AT&T thc hin d n xy dng mt hiu hnh c tn gi l Multics (MULTiplexed Information and Computing Service) vimc tiu: to lp c mt hiu hnh ph trn vng lnh th rng (hot ng trn tpcc my tnh c kt ni), a ngi dng, c nng lc cao v tnh ton v lu tr. D nni trn thnh cng mc ht sc khim tn v ngi ta bit n mt s khimkhuyt kh khc phc ca Multics.

    Nm1969, Ken Thompson, mt chuyn vin ti phng th nghim Bell, ngi thamgia d n Multics, cng Dennics Richie vit li hiu hnh a-bi ton trn my PDP-7vi tn l UNICS (UNiplexed Information and Computing Service) t mt cu gi a camt ng nghip. Trong hiu hnh UNICS, mt s khi tho u tin v H thng file

    c Ken Thompson v Dennis Ritchie thc hin. n nm 1970 hiu hnh c vittrn assembler cho my PDP-11/20 v mang tn l UNIX.Nm 1973, Riche v Thompson vit li nhn ca hiu hnh UNIX trn ngn ng C,

    v hiu hnh trnn d dng ci t ti cc loi my tnh khc nhau; tnh cht nhthc gi l tnh kh chuyn (portable) ca UNIX. Trc , khong nm 1971, hiuhnh c th hin trn ngn ng B (m da trn ngn ng B, Ritche pht trin thnhngn ng C).

    Hng AT&T ph bin chng trnh ngun UNIX ti cc trng i hc, cc cng tythng mi v chnh ph vi gi khng ng k.

    Nm 1982, h thng UNIX-3 l bn UNIX thng mi u tin ca AT&T.Nm 1983, AT&T gii thiu H thng UNIX-4 phin bn th nht trong c trnh

    son tho vi, th vin qun l mn hnh c pht trin ti hc Tng hp California,Berkley.Giai on 1985-1987, UNIX-5 phin bn 2 v 3 tng ng c a ra vo cc nm

    1985 v 1987. Trong giai on ny, c khong 100000 bn UNIX c ph bin trn thgii, ci t t my vi tnh n cc h thng ln.

    u thp k 1990. UNIX-5 phin bn 4 c a ra nh l mt chun ca UNIX. yl s kt hp ca cc bn sau:

    AT&T UNIX-5 phin bn 3, Berkley Software Distribution (BSD),

    XENIX ca MicroSoft

    SUN OS

    C th tm thy cc ni dung lin quan ti mt s phin bn mi ca UNIX ti a chwebsite http://problem.rice.edu/.

    Cc nhm nh cung cp khc nhau v UNIX ang hot ng trong thi gian hin nayc kn nh sau:

    Unix International (vit tt l UI). UI l mt t chc gm cc nh cung cp thchin vic chuyn nhng h thng UNIX-5 v cung cp bn AT&T theo cc

    7

  • 8/8/2019 Unix - Nguyn Tr Thnh

    9/212

    nhu cu v thng bo pht hnh mi, chng hn nhiu chnh bn quyn. Giaodin ha ngi dng l Open Look.

    Open Software Foundation (OSF). OSF c h trbi IBM, DEC, HP ... theohng pht trin mt phin bn ca Unix nhm tranh ua vi h thng UNIX-5phin bn 4. Phin bn ny c tn l OSF/1 vi giao din ha ngi dng

    c gi l MOTIF. Free SoftWare Foundation (FSF): mt cng ng do Richard Stallman khi

    xng nm 1984 ch trng pht hnh cc phn mm s dng t do, trn csmt hiu hnh thuc loi UNIX.

    Bng sau y lit k mt s ci t UNIX kh ph bin (thng thy c ch X cuitn gi ca Hiu hnh):

    Tn h Nh cung cp Nn pht trin

    AIX International Business Machines AT&T System VA/UX Apple Computer AT&T System V

    Dynix Sequent BSD (Berkeley SoftWare Distribution)HP-UX Hewlett-Packard BSDIrix Silicon Graphics AT&T System VLinux Free SoftWare Foundation NextStep Next BSDOSF/1 Digital Equipment Corporation BSDSCO UNIX Santa Cruz Operation AT&T System VSolaris Sun Microsystems AT&T System VSunOS Sun Microsystems BSD UNIXUltrix Digital Equipment Corporation BSD UNIXUnicos Cray AT&T System VUnixWare Novell AT&T System VXENIX MicroSoft AT&T System III-MS

    Di y lit k mt sc trng ca hiu hnh UNIX: Hiu hnh c vit trn ngn ng bc cao; bi vy, rt dc, d hiu, d

    thay i ci t trn loi my mi (tnh d mang chuyn, nh ni),

    C giao din ngi dng n gin nng lc cung cp cc dch v m ngidng mong mun (so snh vi cc hiu hnh c t trc th giao din ca

    UNIX l mt tin b vt bc), Tha mn nguyn tc xy dng cc chng trnh phc tp t nhng chngtrnh n gin hn: trc ht c cc mun cbn nht ca nhn sau phttrin c ton b hiu hnh,

    S dng duy nht mt h thng File c cu trc cho php d dng bo qun vs dng hiu qu,

    8

  • 8/8/2019 Unix - Nguyn Tr Thnh

    10/212

    S dng ph bin mt dng n gin trnh by ni ti ca File nh mt dng ccbyte cho php d dng khi vit cc chng trnh ng dng truy nhp, thao tcvi cc d liu trong File,

    C kt ni n gin vi thit b ngoi vi: cc file thit b c t sn trongH thng File to ra mt kt ni n gin gia chng trnh ngi dng vi cc

    thit b ngoi vi, L hiu hnh a ngi dng, a qu trnh, trong mi ngi dng c th

    thc hin cc qu trnh ca mnh mt cch c lp. Mi thao tc vo - ra ca hiu hnh c thc hin trn h thng File: mi

    thit b vo ra tng ng vi mt file. Chng trnh ngi dng lm vic vifile m khng cn quan tm c th tn file c t cho thit b no trongh thng.

    Che khut cu trc my i vi ngi dng, m bo tnh c lp tng i cachng trnh i vi d liu v phn cng, to iu kin thun li hn chongi l p trnh khi vit cc chng trnh chy UNIX vi cc iu kin phncng hon ton khc bit nhau.

    1.1.2. Gii thiu sb v LinuxLinus Tovalds (mt sinh vin Phn lan) a ra nhn (phin bn u tin) cho hiu hnhLinux vo thng 8 nm 1991 trn csci tin mt phin bn UNIX c tn Minix do Gios Andrew S. Tanenbaum xy dng v ph bin. Nhn Linux tuy nh song l tng gi.Kt hp vi cc thnh phn trong h thng GNU, hiu hnh Linux c hnh thnh.V cng t thi im , theo t tng GNU, hng nghn, hng vn chuyn gia trn tonth gii (nhng ngi ny hnh thnh nn cng ng Linux) tham gia vo qu trnh phttrin Linux v v vy Linux ngy cng p ng nhu cu ca ngi dng.Di y l mt s mc thi gian quan trng trong qu trnh hnh thnh v pht trin hiu hnh Linux.

    Sau ba nm nhn Linux ra i, n ngy 14-3-1994, hiu hnh Linux phin bn 1.0c ph bin. Thnh cng ln nht ca Linux 1.0 l n h tr giao thc mngTCP/IP chun UNIX, snh vi giao thc socket BSD- tng thch cho lp trnh mng.Trnh iu khin thit b c b sung chy IP trn mt mng Ethernet hoc trntuyn n hoc qua modem. H thng file trong Linux 1.0 vt xa h thng file caMinix thng thng, ngoi ra h triu khin SCSI truy nhp a tc cao. iukhin b nho c mrng h triu khin trang cho cc file swap v nhx b nhca file c quyn (ch c mt nh x b nhchc c thi hnh trongLinux 1.0).

    Vo thng 3-1995, nhn 1.2 c ph bin. iu ng k ca Linux 1.2 so vi Linux

    1.0 ch n h trmt phm vi rng v phong ph phn cng, bao gm c kin trctuyn phn cng PCI mi. Nhn Linux 1.2 l nhn kt thc dng nhn Linux ch h trPC.Mt iu cn lu v cc nh ch s cc dng nhn (hiu hnh) Linux. H thngch sc chia thnh mt s mc, chng hn hai mc nh 2.4 hoc ba mc nh 2.2.5.Trong cch nh ch s nh vy, quy c rng vi cc ch s t mc th hai tri, nul s chn th dng nhn kh n nh v tng i hon thin, cn nu l s l thdng nhn vn ang c pht trin tip.

    9

  • 8/8/2019 Unix - Nguyn Tr Thnh

    11/212

    Thng 6-1996, nhn Linux 2.0 c ph bin. C hai c trng ni bt ca Linux 2.0 lh trkin trc phc hp, bao gm c cng Alpha 64-bit y , v h trkin trc ab x l. Phn phi nhn Linux 2.0 cng thi hnh c trn b x l Motorola 68000v kin trc SPARC ca SUN. Cc thi hnh ca Linux da trn vi nhn GNU Machcng chy trn PC v PowerMac.

    Ti nm 2000, nhn Linux 2.4 c ph bin. Mt trong c im c quan tm canhn ny l n h trm k t Unicode 32 bt, rt thun li cho vic xy dng cc giiphp ton din v trit i vi vn ngn ng t nhin trn phm vi ton th gii.

    Vn phn phi v giy php LinuxV l thuyt, mi ngi c th khi to mt h thng Linux bng cch tip nhn bn minht cc thnh phn cn thit t cc site ftp v bin dch chng. Trong thi ku tin,ngi dng Linux phi tin hnh ton b cc thao tc ny v v vy cng vic l kh vt v.Tuy nhin, do c s tham gia ng o ca cc c nhn v nhm pht trin Linux, tinhnh thc hin nhiu gii php nhm lm cho cng vic khi to h thng vt v. Mttrong nhng gii php in hnh nht l cung cp t p cc gi chng trnh tin dch,

    chun ha.Nhng tp hp nh vy hay nhng bn phn phi l ln hn nhiu so vi h thng Linuxc s. Chng thng bao gm cc tin ch b sung cho khi to h thng, cc th vinqun l, cng nh nhiu gi c tin dch, sn sng khi to ca nhiu b cng cUNIX dng chung, chng hn nh phc v tin, trnh duyt web, cng c x l, son thovn bn v thm ch cc tr chi.Cch thc phn phi ban u rt n gin song ngy cng c nng cp v hon thinbng phng tin qun l gi tin tin. Cc bn phn phi ngy nay bao gm cc csdliu tin ha gi, cho php cc gi d dng c khi to, nng cp v loi b.Nh phn phi u tin thc hin theo phng chm ny l Slakware, v chnh h l nhngchuyn bin mnh m trong cng ng Linux i vi cng vic qun l gi khi to Linux.

    Tin ch qun l gi RPM (RedHat Package Manager) ca cng ty RedHat l mt trongnhng phng tin in hnh.Nhn Linux l phn mm t do c phn phi theo Giy php shu cng cng phnmm GNU GPL.

    Cc thnh phn tch hp Hiu hnh LinuxLinux s dng rt nhiu thnh phn t D n phn mm t do GNU, t hiu hnh BSDca i hc Berkeley v t h thng X-Window ca MIT.Th vin h thng chnh ca Linux c bt ngun t D n GNU, sau c rt nhiungi trong cng ng Linux pht trin tip, nhng pht trin tip theo nh vy ch yulin quan ti vic gii quyt cc vn nh thiu vng a ch (li trang), thiu hiu qu v

    g ri. Mt s thnh phn khc ca D n GNU, chng hn nh trnh bin dch GNU C(gcc), vn l cht lng cao nn c s dng nguyn xy trong Linux.Cc tool qun l mng c bt ngun t m 4.3BSD song sau c cng ngLinux pht trin, chng hn nh th vin ton hc ng x l du chm ng Intel v cctrnh iu khin thit b phn cng m thanh PC. Cc tool qun l mng ny sau lic b sung vo h thng BSD.H thng Linux c duy tr gn nh bi mt mng li khng cht ch cc nh pht trinphn mm cng tc vi nhau qua Internet, mng li ny gm cc nhm nh v c nhn

    10

  • 8/8/2019 Unix - Nguyn Tr Thnh

    12/212

    chu trch nhim duy tr tnh ton vn ca tng thnh phn. Mt lng nh cc site phncp ftp Internat cng cng ng vai tr nh kho theo chun de facto cha cc thnhphn ny. Ti liu Chun phn cp h thng file (File System Hierarchy Standard) ccng ng Linux duy tr nhm gi tnh tng thch xuyn qua s khc bit rt ln gia ccthnh phn h thng.

    Mt sc im chnh ca LinuxDi y trnh by mt sc im chnh ca ca hiu hnh Linux hin ti:

    Linux tng thch vi nhiu hiu hnh nh DOS, MicroSoft Windows ...:

    Cho php ci t Linux cng vi cc hiu hnh khc trn cng mt cng. Linux cth truy nhp n cc file ca cc hiu hnh cng mt a. Linux cho php chym phng cc chng trnh thuc cc hiu hnh khc.

    Do gic chun ca UNIX nn s chuyn i gia Linux v cc h UNIX khc ld dng.

    Linux l mt hiu hnh UNIX tiu biu vi cc c trng l a ngi dng, achng trnh v a x l.

    Linux c giao din ho (GUI) tha hng t h thng X-Window. Linux h trnhiu giao thc mng, bt ngun v pht trin t dng BSD. Thm vo , Linux cnh trtnh ton thi gian thc.

    Linux kh mnh v chy rt nhanh ngay c khi nhiu qu trnh hoc nhiu ca s.

    Linux c ci t trn nhiu chng loi my tnh khc nhau nh PC, Mini v vic cit kh thun li. Tuy nhin, hin nay cha xut hin Linux trn my tnh ln(mainframe).

    Linux ngy cng c h trbi cc phn mm ng dng b sung nh son tho, qun

    l mng, qun tr csd liu, bng tnh ...Linux h tr tt cho tnh ton song song v my tnh cm (PC-cluster) l mt hng

    nghin cu trin khai ng dng nhiu trin vng hin nay.

    L mt hiu hnh vi m ngun m, c pht trin qua cng ng ngun m(baogm c Free Software Foundation) nn Linux pht trin nhanh. Linux l mt trong mts t cc hiu hnh c quan tm nhiu nht trn th gii hin nay.

    Linux l mt hiu hnh h tra ngn ng mt cch ton din nht. Do Linux cho php h tr cc b m chun t 16 bit tr ln (trong c cc b m ISO10646,Unicode) cho nn vic bn a ha trn Linux l trit nht trong cc hiu hnh.

    Tuy nhin cng tn ti mt s kh khn lm cho Linux cha thc s trthnh mt hiu

    hnh ph dng, di y l mt s kh khn in hnh:Tuy c cng c h trci t, tuy nhin, vic ci t Linux cn tng i phc tp

    v kh khn. Kh nng tng thch ca Linux vi mt s loi thit b phn cng cnthp do cha c cc trnh iu khin cho nhiu thit b,

    Phn mm ng dng chy trn nn Linux tuy phong ph song so vi mt s hiuhnh khc, c bit l khi so snh vi MS Windows, th vn cn c khong cch.

    11

  • 8/8/2019 Unix - Nguyn Tr Thnh

    13/212

    Vi s h trca nhiu cng ty tin hc hng u th gii (IBM, SUN, HP ...) v s thamgia pht trin ca hng vn chuyn gia trn ton th gii thuc cng ng Linux, cc khkhn ca Linux chc chn s nhanh chng c khc phc.

    Chnh v l hnh thnh mt s nh cung cp Linux trn th gii. Bng di y ltn ca mt s nh cung cp Linux c ting nht v a ch website ca h.

    ng ch nht l Red Hat Linux (ti M) v Red Flag Linux (ti Trung Quc). RedHat c coi l lu i v tin cy, cn Red Flag l mt cng ty Linux ca Trung quc, cquan h vi cng ng Linux Vit nam v chng ta c th hc hi mt cch trc tip kinhnghim cho qu trnh a Linux vo Vit nam.

    Tn cng ty a chwebsiteCaldera OpenLinux www.caldera.comCorel Linux www.corel.comDebian GNU/Linux www.debian.comLinux Mandrake www.mandrake.comRed Hat Linux www.redhat.comRed Flag Linux www.redflag-linux.comSlackware Linux www.slackware.comSuSE Linux www.suse.comTurboLinux www.turbolinux.com

    1.2. Sb v cc thnh phn ca LinuxH thng Linux, c thi hnh nh mt hiu hnh UNIX truyn thng, gm shell v bathnh phn ( dng m chng trnh) sau y:

    - Nhn hiu hnh chu trch nhim duy tr cc i tng tru tng quan trng ca hiu hnh, bao gm b nho v qu trnh. Cc m un chng trnh trong nhn cc quyn trong h thng, bao gm c quyn thng trc b nhtrong.

    - Th vin h thng xc nh mt t p chun cc hm cc ng dng tng tc vi

    nhn, v thi hnh nhiu chc nng ca h thng nhng khng cn c cc c quyn cam un thuc nhn. Mt h thng con in hnh c thi hnh da trn th vin hthng l h thng file Linux.

    - Tin ch h thng l cc chng trnh thi hnh cc nhim v qun l ring r, chuynbit. Mt s tin ch h thng c gi ra ch mt ln khi ng v cu hnh phngtin h thng, mt s tin ch khc, theo thut ng UNIX c gi l trnh chy ngm(daemon), c th chy mt cch thng xuyn (thng theo chu k), iu khin cc biton nh hng ng cc kt ni mng mi n, tip nhn yu cu logon, hoc cp nhtcc file log.

    Tin ch (hay lnh) c sn trong hiu hnh (di y tin ch c coi l lnh thngtrc). Ni dung chnh yu ca ti liu ny gii thiu chi tit v mt s lnh thng dng nhtca Linux. H thng file sc gii thiu trong chng 3. Trong cc chng sau c cp ti nhiu ni dung lin quan n nhn v shell, song di y l mt s nt sb vchng.

    1.2.1. Sb v nhnNhn (cn c gi l h li) ca Linux, l mt b cc mdun chng trnh c vai tr

    iu khin cc thnh phn ca my tnh, phn phi cc ti nguyn cho ngi dng (cc qutrnh ngi dng). Nhn chnh l cu ni gia chng trnh ng dng vi phn cng.

    12

  • 8/8/2019 Unix - Nguyn Tr Thnh

    14/212

    Ngi dng s dng bn phm g ni dung yu cu ca mnh v yu cu c nhn giti shell: Shell phn tch lnh v gi cc chng trnh tng ng vi lnh thc hin.

    Mt trong nhng chc nng quan trng nht ca nhn l gii quyt bi ton lp lch, tcl h thng cn phn chia CPU cho nhiu qu trnh hin thi cng tn ti. i vi Linux, slng qu trnh c th ln ti con s hng nghn. Vi s lng qu trnh ng thi nhiu

    nh vy, cc thut ton lp lch cn phi hiu qu: Linux thng lp lch theo chRound Robin (RR) thc hin vic lun chuyn CPU theo lng t thi gian.Thnh phn quan trng th hai trong nhn l h thng cc mun chng trnh (c

    gi l li gi h thng) lm vic vi h thng file. Linux c hai cch thc lm vic vi ccfile: lm vic theo byte (k t) v lm vic theo khi. Mt c im ng ch l file trongLinux c thc nhiu ngi cng truy nhp ti nn cc li gi h thng lm vic vi filecn m bo vic file c truy nhp theo quyn v c chia x cho ngi dng.

    1.2.2. Sb v shellMt s ni dung chi tit v shell (cn c gi l h v) trong Linux c trnh by

    trong chng "Lp trnh trn shell". Nhng ni dung trnh by di y cung cp mt cch

    nhn sb v shell v vai tr ca n trong hot ng chung ca hiu hnh.Ngi dng mong mun my tnh thc hin mt cng vic no th cn g lnh thhin yu cu ca mnh h thng p ng yu cu . Shell l b dch lnh v hot ngnh mt kt ni trung gian gia nhn vi ngi dng: Shell nhn dng lnh do ngi dnga vo; v t dng lnh ni trn, nhn tch ra cc b phn nhn c mt hay mt slnh tng ng vi cc on vn bn c trong dng lnh. Mt lnh bao gm tn lnh vtham s: tu tin l tn lnh, cc t tip theo (nu c) l cc tham s. Tip theo, shell sdng nhn khi sinh mt qu trnh mi (khi to qu trnh) v sau , shell chi qutrnh con ny tin hnh, hon thin v kt thc. Khi shell sn sng tip nhn dng lnh cangi dng, mt du nhc shell (cn gi l du nhc nhp lnh) xut hin trn mn hnh.

    Linux c hai loi shell ph bin l: C-shell (du nhc %), Bourne-shell (du nhc $) vmt s shell pht trin t cc shell ni trn (chng hn, TCshell - tcsh vi du nhc ngmnh > pht trin t C-shell v GNU Bourne - bash vi du nhc bash # pht trin tBourne-shell). Du mi phn bit shell ni trn khng phi hon ton r rng do Linux chophp ngi dng thay i li du nhc shell nhvic thay gi tr cc bin mi trng PS1v PS2. Trong ti liu ny, chng ta s dng k hiu "hng ro #" biu th du nhc shell.

    C-shell c tn gi nh vy l do cch vit lnh v chng trnh lnh Linux ta nhngn ng C. Bourne-shell mang tn tc gi ca n l Steven Bourne. Mt s lnh trong C-shell (chng hn lnh alias) khng cn c trong Bourne-shell v v vy nhn bit hthng ang lm vic vi shell no, chng ta g lnh:

    # alias

    Nu mt danh sch xut hin th shell ang s dng l C-shell; ngc li, nu xut hin

    thng bo "Command not found" th shell l Bourne-shell.Lnh c chia thnh 3 loi lnh:

    Lnh thng trc (c sn ca Linux). Tuyt i a s lnh c gii thiu trongti liu ny l lnh thng trc. Chng bao gm cc lnh c cha sn trongshell v cc lnh thng trc khc.

    File chng trnh ngn ng my: chng hn, ngi dng vit trnh trn ngn ngC qua b dch gcc (bao gm c trnh kt ni link) to ra mt chng trnhtrn ngn ng my.

    13

  • 8/8/2019 Unix - Nguyn Tr Thnh

    15/212

    File chng trnh shell (Shell Scrip).

    Khi kt thc mt dng lnh cn g phm ENTER shell phn tch v thc hin lnh.

    1.3. Gii thiu v sdng lnh trong LinuxNh gii thiu phn trn, Linux l mt hiu hnh a ngi dng, a nhim,

    c pht trin bi hng nghn chuyn gia Tin hc trn ton th gii nn h thng lnhcng ngy cng phong ph; n thi im hin nay Linux c khong hn mt nghn lnh.Tuy nhin ch c khong vi chc lnh l thng dng nht i vi ngi dng. Ti liu

    ny cng hn ch gii thiu khong vi chc lnh . Chng ta ng e ngi v s lnglnh c gii thiu ch chim mt phn nh trong tp hp lnh bi v y l nhng lnhthng dng nht v chng cung cp mt phm vi ng dng rng ln, tha mn yu cuca chng ta.

    Cng nh ni trn, ngi dng lm vic vi my tnh thng qua vic s dng trmcui: ngi dng a yu cu ca mnh bng cch g "lnh" t bn phm v giao cho hiu hnh x l.

    Khi ci t Linux ln my tnh c nhn th my tnh c nhn va ng vai tr trm cui,

    va ng vai tr my tnh x l.Dng tng qut ca lnh Linux c thc vit nh sau:# []

    trong : Tn lnh l mt dy k t, khng c du cch, biu th cho mt lnh ca Linux

    hay mt chng trnh. Ngi dng cn hiu hnh p ng yu cu g camnh th phi chn ng tn lnh. Tn lnh l bt buc phi c khi g lnh.

    Cc tham s c th c hoc khng c, c vit theo quy nh ca lnh mchng ta s dng, nhm cung cp thng tin v cc i tng m lnh tc ngti. ngha ca cc du [, , ] c gii thch phn quy tc vit lnh.

    Cc tham sc phn ra thnh hai loi: tham s kha (sau y thng dng l "ty chn")v tham s v tr. Tham s v tr thng l tn file, th mc v thng l cc i tng chus tc ng ca lnh. Khi g lnh, tham s v tr c thay bng nhng i tng m ngidng cn hng tc ng ti. Tham s kha chnh l nhng tham siu khin hot ngca lnh theo cc trng hp ring. Trong Linux, tham s kha thng bt u bi du tr"-" hoc hai du tr lin tip "--". Khi g lnh, cng ging nh tn lnh, tham s kha phic vit chnh xc nh trnh by trong m t lnh. Mt lnh c th c mt s hoc rtnhiu tham s kha. Ph thuc vo yu cu c th ca mnh, ngi dng c th chn mthoc mt s cc tham s kha khi g lnh. Trong m t lnh, thng xut hin thut ngty-chn. Ty chn lnh (thc cht l tham skha) cho php iu chnh hot ng calnh trong Linux, lm cho lnh c tnh ph dng cao. Tu chn lnh cho php lnh c th

    p ng mun ca ngi dng i vi hu ht (tuy khng phi lc no cng vy) cc tnhhung t ra cho thao tc ng vi lnh.

    K hiu "" biu th vic g phm ht dng . kt thc mt yu cu,ngi dng nht thit phi g phm "".

    V d, khi ngi dng g lnh xem thng tin v cc file:

    # ls -l gtrong lnh ny:

    14

  • 8/8/2019 Unix - Nguyn Tr Thnh

    16/212

    ls l tn lnh thc hin vic a danh sch cc tn file/ th mc con trong mtth mc,

    -l l tham s kha, cho bit yu cu xem y thng tin v cc i tng hinra. Ch , trong tham s kha ch ci (ch "l") phi i ngay sau du tr "-".Tng ng vi lnh ls cn c cc tham s kha -a, -L, ... v chng cng l cc

    ty chn lnh. Trong mt s tham s kha c nhiu ch ci thay cho mt du "-"l hai du "--" u tham s. V d, nh trng hp tham s --file ca lnhdate.

    g* l tham s v tr ch r ngi dng cn xem thng tin v cc file c tn gi btu l ch ci "g".

    Trong ti liu ny, quy c rng khi vit mt lnh (trong m t lnh v g lnh) thkhng cn phi vit du "" cui dng lnh , song lun ghi nh rng phm ENTER("") l bt buc khi g lnh. Lu :

    Linux (v UNIX ni chung) c xy dng trn ngn ng lp trnh C, v vy khi

    g lnh phi phn bit ch thng vi ch hoa. Ngoi tr mt s ngoi l, trongLinux chng ta thy ph bin l: Cc tn lnh l ch thng,

    Mt s tham s c th l ch thng hoc ch hoa (v d, trong lnh datev thi gian h thng th hai tham s-rv -R c ngha hon ton khcnhau). Tn cc bin mi trng cng thng dng ch hoa.

    Trong ti liu ny, ti nhng dng vn bn din gii, s dng cch vit tn lnh,cc tham s kha bng kiu ch khng chn, m nhdate, -R, -r...

    Linux phn bit siu ngi dng (ting Anh l superuser hoc root, cn c gil ngi qun tr hay ngi dng ti cao hoc siu ngi dng) vi ngidng thng thng. Trong tp hp lnh ca Linux, c mt s lnh m ch siungi dng mi c php s dng cn ngi dng thng thng th khngc php (v d nh lnh adduserthc hin vic b sung thm ngi dng).Mt khc trong mt s lnh, vi mt s tham s kha th ch siu ngi dngc php dng, cn vi mt s tham s khc th mi ngi dng u cphp (v d nh lnh passwd thay i mt khu ngi dng).

    Mt dng lnh c th c nhiu hn mt lnh, trong lnh sau c ngn cchbi vi lnh i ngay trc bng du ";" hoc du "|". V d v mt s dng lnhdng ny:

    # ls -l; date# head Filetext | sort >temp

    Sau khi ngi dng g xong dng lnh, shell tip nhn dng lnh ny v phntch ni dung vn bn ca lnh. Nu lnh c g ng th n c thc hin;ngc li, trong trng hp c sai st khi g lnh th shell thng bo v sai stv du nhc shell li hin ra chlnh tip theo ca ngi dng. V ph bin,nu nh sau khi ngi dng g lnh, khng thy thng bo sai st hin ra th cngha lnh c thc hin mt cch bnh thng.

    Trc khi i vo ni dung chi tit cc lnh thng dng, chng ta xem xt v mt s quynh dng trong m t lnh c trnh by trong ti liu ny.

    15

  • 8/8/2019 Unix - Nguyn Tr Thnh

    17/212

    1.3.1. Cc quy c khi vit lnhTrong ti liu ny, cc lnh c trnh by theo mt b quy tc c php nht qun. B

    quy tc ny cho php phn bit trong mi lnh cc thnh phn no l bt buc phi c, ccthnh phn no c th c hoc khng ... Di y l ni dung ca cc quy tc trong b quytc .

    Tn lnh l bt buc, phi l tu tin trong bt k lnh no, phi c gng nh khi m t lnh.

    Tn khi nim c nm trong cp du ngoc quan h (< v >) biu th cho mtlp i tng v l tham s bt buc phi c. Khi g lnh th tn khi nim (cthc coi l "tham s hnh thc") phi c thay th bng mt t (thng ltn file, tn th mc ... v c thc coi l "tham s thc s") chi tnglin quan n thao tc ca lnh.

    V d, m t c php ca lnh more xem ni dung file l# more

    th tmore l tn lnh, cn l tham s trong file l tn khi nim v l tham s

    bt buc phi c. Lnh ny c tc ng l hin ln mn hnh theo cch thc cun ni dungca file vi tn ch trong lnh. xem ni dung file c tn l temp, ngi dng g lnh:

    # more temp

    Nh vy, tn lnh morec g ng nh m t c php (c ni dung v v tr) cn"file" c thay th bng t "temp" l tn file m ngi dng mun xem ni dung.

    Cc b phn nm gia cp du ngoc vung [ v ] l c th g hoc khng gcng c.

    V d, c php ca lnh halt l# halt [ty-chn]

    Vi cc ty chn l -w, -n, -d, -f, -i m mi ty chn cho mt cch thc hot ngkhc nhau ca lnh halt. Lnh halt c tc ng chnh l lm ngng hot ng ca hiuhnh, tuy nhin khi ngi dng mun c mt cch hot ng no ca lnh ny th schn mt (hoc mt s) tu chn lnh tng ng. Mt s cch g lnh halt ca ngi dngnh sau y l ng c php:

    # halt# halt -w# halt -n# halt -f

    Cc gi tr c trong cp | v | trong cc b phn cch nhau bng du sng

    "|" cho bit cn chn mt v ch mt trong cc gi tr nm gia hai du ngoc.

    V d, khi gii thiu v ty chn lnh ca lnh tailxem phn cui ni dung ca file,chng ta thy:

    -f, --follow[={tn | c t}]

    Nh vy, sau tham s kha --follow, nu xut hin thm du bng "="th phi c hoc tn hoc c t. y l trng hp cc chn la "loi tr nhau".

    16

  • 8/8/2019 Unix - Nguyn Tr Thnh

    18/212

    Du ba chm ... th hin vic lp li thnh phn c php i ngay trc du ny,vic lp li c th t khng n nhiu ln (khng k chnh thnh phn cphp ). Cch thc ny thng c dng vi cc tham s nh tn file.

    V d, m t lnh chown nh sau:chown [ty-chn] [,[nhm]]...

    Nh vy trong lnh chown c th khng c hoc c mt s ty chn lnh v c t mtn nhiu tn file.

    [ ], , { } Cc b phn trong m t lnh, nu khng nm trong cc cp du thkhi g lnh thc s phi g y ng nh khi m t (ch , quy tc vit tn lnh lmt trng hp ring ca quy tc ny).

    Vic kt hp cc du ngoc vi nhau cho php to ra cch thc s dng quy tct hp cc tham s trong lnh. V d, lnh more bnh thng c c php l:

    # more

    c ngha l thay bng tn file cn xem ni dung, nu kt hp thm du ngoc vung, tc l c dng sau (chnh l dng tng qut ca lnh more):[ v ]

    # more []th ni chung phi c trong lnh more, tuy nhin trong mt s trng hp c th bqua tham s file. Lu :

    i vi nhiu lnh, cho php ngi dng g tham skha kt hp tng ngvi ty_chn trong m t lnh. Tham s kha kt hp c vit theo cch -, trong xu-k-t gm cc ch ci trong tham s kha. V d,

    trong m t lnh in lch cal:cal [ty-chn] [thng [nm] ]

    c ba tham s kha l -m, -j, -y. Khi g lnh c th g mt t hp no t ba

    tham s kha ny c tnh hung s dng lnh theo mun. Chng hn,nu g lnh

    cal -mj 3

    th lnh cal thc hin theo iu khin ca hai tham s kha -m (chn Th Hail ngy u tun, thay v cho ngm nh l Ch Nht) v -j (hin th ngy trongthng di dng s ngy trong nm k tu nm). V vy, khi vit [ty-chn]trong m t lnh biu th c vic s dng tng ty chn, nhiu ty chn hoc kthp cc tu chn.

    Trong mt s lnh, c hai tham s kha cng tng ng vi mt tnh hung thchin lnh, trong mt tham s gm mt k t cn tham s kia li l mt t.

    Tham s di mt t l tham s chun ca lnh, cn tham s mt k t l cchvit ngn gn. Tham s chun dng c trong mi Linux v khi g phi c k t trong t.

    V d, khi m t lnh date c ty chn:

    -d, --date=STRING

    nh vy hai tham s-d v --date=STRING c cng ngha.

    17

  • 8/8/2019 Unix - Nguyn Tr Thnh

    19/212

    Ngoi nhng quy c trn y, ngi dng ng qun mt quy nh cbn l cn phnbit ch hoa vi ch thng khi g lnh.

    1.3.3. Lm n gin thao tc g lnhVic s dng bn phm nhp lnh tuy khng phi l mt cng vic nng n, song

    Linux cn cho php ngi dng s dng mt s cch thc thun tin hn khi g lnh.Mt s trong nhng cch thc l: S dng vic khi phc dng lnh, S dng cc phm c bit, S dng cc k hiu thay th v phm , S dng thay thalias, S dng chng trnh lnh.

    Cch thc s dng chng trnh lnh (shell script) sc gii thiu chi tit trong ccchng sau. Di y, chng ta xem xt cch thc s dng vic khi phc dng lnh, phmc bit v k hiu thay th.

    Cch khi phc dng lnhLinux cung cp mt cch thc c bit l kh nng khi phc lnh. Ti du nhc shell:

    Ngi dng s dng cc phm mi tn ln/xung (/) trn bn phm nhn li cc dnglnh c a vo trc y ti du nhc shell, chn mt trong cc dng lnh v bintp li ni dung dng lnh theo ng yu cu mi ca mnh.

    V d, ngi dng va g xong dng lnh:# ls -l tenfile*

    sau mun g lnh ls -l tentaptin th ti du nhc ca shell, ngi dng s dng ccphm di chuyn ln () hoc xung () nhn c:

    # ls -l tenfile*dng cc phm tt di chuyn, xo k t (xem phn sau) c c:# ls -l ten

    v g tip cc k t "taptin" nhn c:# ls -l tentaptin

    chnh l kt qu mong mun.Trong trng hp s lng k t thay th l rt t so vi s lng k t ca ton dng

    lnh th hiu qu ca cch thc ny rt cao.

    Lu :

    Vic nhn lin tip cc phm di chuyn ln () hoc xung () cho php ngidng nhn c cc dng lnh g t trc m khng ch dng lnh mi cg. Cch thc ny tng t vi cch thc s dng tin ch DOSKEY trong hiu hnh MS-DOS.

    Mt s phm c bit khi g lnhKhi ngi dng g lnh c th xy ra mt s tnh hung nh sau:

    18

  • 8/8/2019 Unix - Nguyn Tr Thnh

    20/212

    Dng lnh ang g c ch sai st, khng ng theo yu cu ca ngi dng vvy cn phi sa li i cht ni dung trn dng lnh . Trong trng hp cn s dng cc phm c bit (cn gi l phm vit tt hay phm tt) dichuyn, xo b, b sung vo ni dung dng lnh.

    Sau khi s dng cch thc khi phc dng lnh, chng ta nhn c dng lnh

    tng t vi lnh cn g v sau s dng cc phm tt hon thin lnh.Di y gii thiu cc phm tt v ngha ca vic s dng chng:

    Nhn phm di chuyn con tr sang bn phi mt v tr

    Nhn phm di chuyn con tr sang bn tri mt v tr

    Nhn phm xo mt t bn tri con tr

    Nhn phm xo mt t bn phi con tr

    Nhn phm di chuyn con tr sang bn phi mt t

    Nhn phm di chuyn con tr sang bn tri mt t

    Nhn phm di chuyn con tr vu dng lnh

    Nhn phm di chuyn con tr v cui dng Nhn phm xa dng lnh

    C th dng phm thay cho phm .

    Cc k hiu m t nhm file v phm

    Khi g lnh thc snhiu trng hp ngi dng mong mun mt tham s trong lnhkhng chxc nh mt file m li lin quan n mt nhm cc file m tn gi ca cc filetrong nhm c chung mt tnh cht no . Trong nhng trng hp nhvy, ngi dngcn sdng cc k hiu m t nhm file (wildcards), chng ta gi l k hiu m t nhm(cn c gi l k hiu thay th). Ngi ta sdng cc k t*, ? v cp hai du [ v ] m t nhm file. Cc k tny mang ngha nhsau khi vit vo tham stn file thc s:

    "*" : l k t m t nhm gm mi xu k t (thay th mi xu). M t ny chomt nhm ln nht trong ba m t.

    "?" : m t nhm gm mi xu vi di khng qu 1 (thay th mt k t).Nhm ny l tp con ca nhm u tin (theo k t "*").

    [xu-k-t] : m t nhm gm mi xu c di 1 l mi k t thuc xu nitrn. M t ny cho mt nhm c lc lng b nht trong ba m t. Nhm nyl tp con ca nhm th hai (theo k t "?"). Khi g lnh phi g c hai du

    [ v]. Mt dng khc ca m t nhm ny l [-] ngha l giacp du ngoc c ba k t trong k tgia l du ni (du -) th cch vit

    ny tng ng vi vic lit k mi k t t n . Chnghn, cch vit [a-d] tng ng vi cch vit [abcd].

    V d, gi s khi mun lm vic vi tt c cc file trong mt th mc no , ngidng g * thay th tham sfile th xc nh c cc tn file sau (chng ta vit bn tn filetrn mt dng):

    info-dir initlog.conf inittab lynx.cfgmail.rc mailcap minicom.users motd

    19

  • 8/8/2019 Unix - Nguyn Tr Thnh

    21/212

    mtab mtools.conf services shadowshadow- shells smb.conf sysctl.confsyslog.conf temp termcap up2date.conftemp termcap

    Nu ngi dng g s* ( ch cc tn c ch ci u l s) thay th tham sfile th xc

    nh c cc tn file sau:shadow shadow- shells sysctl.confsyslog.conf

    Nu ngi dng g [si]* ( ch cc tn c ch ci u l s hoc i, ch dng c hai kt ) thay th tham sfile th xc nh cc tn file sau:[ v ]

    info-dir initlog.conf inittab servicesshadow shadow- shells smb.confsysctl.conf syslog.conf

    Lu : Nh vy, Linux (v UNIX ni chung) khng ch s dng hai k t m t nhm *

    v ? m cn c cch thc s dng cp k t [ v ]. Cn phn bit cp du [ v ] c s dng khi ngi dng g lnh c ngha

    hon ton khc vi ngha ca chng khi c s dng trong m t lnh.Hn th na, Linux cn cung cp cho ngi dng cch thc s dng phm

    hon thnh nt tn file (tn th mc) trong lnh. V d, khi chng ta g dng lnh# ls /ulocalb

    th n cng tng ng nh g dng lnh (v y chnh l ni dung xut hin ti du nhcshell):

    # ls /usr/local/bin

    vi iu kin trong th mc /usr ch c th mc localc bt u bi ch "l" v trong thmc local cng ch c th mc binc bt u bi ch "b".Trong trng hp nu nh mt k t cha xc nh, ngi dng cn g thm k t tiptheo trong tn file (tn th mc) v nhn phm hon thnh dng lnh.

    1.3.4. Tip ni dng lnhNh lu trn y, mt dng lnh c th gm mt hoc mt s lnh, mt khc tham

    s ca lnh c th l rt di khng th trong khun kh ca mt dng vn bn c. Khi glnh, nu dng lnh qu di, Linux cho php ngt dng lnh xung dng di bng cchthm k t bo hiu chuyn dng "\" ti cui dng; trong trng hp , k t "\" phi l k

    t cui cng thuc dng lnh trc.V d,# cd vsd\thumuc

    th dng th hai l phn tip theo ca dng th nht v kt hp c hai dng ny thc cht lmt dng lnh Linux.

    20

  • 8/8/2019 Unix - Nguyn Tr Thnh

    22/212

    1.4. Trang ManChng ta c th ni rng Linux l mt hiu hnh rt phc tp vi hng nghn lnh v

    mi lnh li c th c ti vi hoc vi chc tnh hung s dng do chng cho php c nhiuty chn lnh. thuc ht c ni dung tt c cc lnh ca Linux l mt iu ht sckh khn, c th ni l khng th. Linux cho php ngi dng s dng cch thc gi trang

    Man c c cc thng tin y gii thiu ni dung cc lnh. Di y l mt s nidung v cch thc s dng trang Man."Man" l t vit tt ca "manual", c coi l ti liu trc tuyn trong Linux lu tr

    ton b cc lnh c sn vi cc thng tin tham kho kh y cho php ngi dng c thmra nhn c trgip. mtrang Man ca mt lnh, chng ta s dng lnh man ca Linux v g:

    # man

    Ni dung ca trang Man tuy khng phi l qu kh hiu, song hiu ht c n cngi hi khng t thi gian. Tuy vy, nu qun ni dung mt lnh no th cch tt nht lhy s dng trang Man.

    Cu trc chung ca mt trang Man nh sau:

    COMMAND(1) Linux Programmer's Manual COMMAND(1)NAME

    tn lnh - khi qut tc dng ca lnhSYNOPSIS

    c php ca lnhDESCRIPTION

    m t c th hn v tc dng ca lnhOPTIONS

    lit k cc ty chn lnh v tc dng ca chngFILES

    lit k cc file m lnh s dng hoc tham chiu n

    SEE ALSOlit k cc lnh, cc ti liu, ..., c lin quan n lnh

    REPORTING BUGSa ch lin h nu gp li khi s dng lnh

    AUTHORtn tc gi ca lnh

    Ngi dng thm ch khng nhchnh xc tn lnh. Linux cn c mt cch thc h trngi dng c th nhanh chng tm c lnh cn s dng trong trng hp ch nhnhngch ci u ca tn lnh, l cch thc s dng phm TAB. Trong cch thc ny, ngidng ch cn nhmt s ch ci u tin ca tn lnh.C th trnh by cch thc theo c php sau y:

    #

    Trong dy-ch-ci c t mt n mt vi ch ci thuc phn u ca tn lnh. Ch rng, cc ch ci v hai phm phi c g lin tip nhau.

    Kt hp cch thc ny vi cch thc s dng lnh man (vi s phong ph v ty chnca lnh man) nhn c mt cch thc kh tuyt vi trgip ngi dng.

    21

  • 8/8/2019 Unix - Nguyn Tr Thnh

    23/212

    V d, mun s dng lnh history nhng li khng nhchnh xc tn lnh c vit ranh th no m ch nhn c bt u bi chh, hy g chh ti du nhc shell vnhn phm TAB hai ln, s thy mt danh sch cc lnh c ch ci u tin l hc hinra trn mn hnh:

    # h

    h2ph hboot help hexdump historyhostname htdigest h2xs hcc helpme hf77

    hltest hoststat htpasswd halt hcp

    helptool hinotes host hpcdtoppm hash

    head hexbin hipstopgm hostid hpftodit

    Nh vy, tt c cc lnh c tn bt u vi chhc hin th trn mn hnh v chophp ngi dng c th xc nh c lnh cn quan tm.

    Trng hp tn ti mt s lng ln cc lnh c cng ch ci u tin m ngi dng g, thay v hin ht mi tn lnh, hiu hnh cho ra mt thng bo hi ngi dng cmun xem ton b cc lnh hay khng. Ngi dng p ng thng bo tu theo

    mun ca mnh.V d, khi ngi dng g ni dung nh sau:# p

    th h thng p li l:There are 289 possibilities. Do you really wish to see them all? (y or n)

    Ngi dng g phm "y" nu mun xem, hoc g "n" nu b qua.Ngi dng c th g nhiu hn mt ch ci u tn lnh v iu cho php gim

    bt s tn lnh m h thng tm c v hin th. Chng hn, khi bit hai ch ci u l"pw" v ngi dng g:

    # pw

    th h thng s hin ra danh sch cc tn lnh bt u bi "pw":pwck pwconv pwd pwdb_chkpwd pwunconvTrong trng hp ny, ngi dng s nhn bit c tn lnh ang cn tm thun tin

    hn.

    22

  • 8/8/2019 Unix - Nguyn Tr Thnh

    24/212

    CHNG 2. THAO TC VI H THNG

    2.1. Qu trnh khi ng LinuxTrong phn ny, chng ta xem xt sb qu trnh khi ng hiu hnh Linux.Mt trong nhng cch thc khi ng Linux ph bin nht l cch thc do chng trnh

    LILO (LInux LOader) thc hin. Chng trnh LILO c np ln a ca my tnh khi cit hiu hnh Linux. LILO c np vo Master Boot Record ca a cng hoc voBoot Sector ti phn vng khi ng (trn a cng hoc a mm). Gi s my tnh cachng ta ci t Linux v s dng LILO khi ng hiu hnh. LILO thch hp vivic trn my tnh c ci t mt s hiu hnh khc nhau v theo , LILO cn chophp ngi dng chn la hiu hnh khi ng.

    Giai on khi ng Linux ty thuc vo cu hnh LILO c la chn trong qutrnh ci t Linux. Trong tnh hung n gin nht, Linux c khi ng ta cng haya mm khi ng.

    Qu trnh khi ng Linux c thc m t theo s sau:

    LILO Nhn init

    Theo s ny, LILO c ti vo my thc hin m vic u tin l a nhn vob nhtrong v sau ti chng trnh init thc hin vic khi ng Linux.

    Nu ci t nhiu phin bn Linux hay ci Linux cng cc hiu hnh khc (trong cctrng hp nh th, mi phin bn Linux hoc hiu hnh khc c gn nhn - label phn bit), th thng bo sau y c LILO a ra:

    LILO boot:

    cho php nhp xu l nhn ca mt trong nhng hiu hnh hin c trn my khing n. Ti thi im , ngi dng cn g nhn ca hiu hnh cn khi ng vo, v

    d, gLILO boot: linux

    nu chn khi ng lm vic trong Linux, hoc gLILO boot: dos

    nu chn khi ng lm vic trong MS-DOS, Windows.Lu :

    Nu chng ta khng nhc nhn ca hiu hnh c trong my chn, hyg phm c LILO cho bit nhn ca cc hiu hnh.

    LILO boot:

    s hin ra danh sch cc nhn (v d nh): linux dos ...

    v hin li thng bo ni trn ta g nhn ca hiu hnh. LILO cng cho php t ch chn ngm nh hiu hnh khi ng m

    theo nu chng ta khng c tc ng g sau thng bo chn hiu hnh thLILO s tng chn hiu hnh ngm nh ra khi ng. Nu chng takhng can thip vo cc file tng ng ca trnh LILO th hiu hnh Linux lhiu hnh ngm nh.

    23

  • 8/8/2019 Unix - Nguyn Tr Thnh

    25/212

    Gi s Linux c chn khi ng. Khi initthc hin, chng ta s thy mt chui(khong vi chc) dng thng bo cho bit h thng phn cng c Linux nhn din vthit lp cu hnh cng vi tt c trnh iu khin phn mm c np khi khi ng. Qutrnh initl qu trnh khi thy, l cha ca mi qu trnh. Ti thi im khi ng h thnginitthc hin vai tr u tin ca mnh l chy chng trnh shell trong file/etc/inittab v

    cc dng thng bo trn y chnh l kt qu ca vic chy chng trnh shell . Sau khichng trnh shell trn c thc hin xong, bt u qu trnh ngi dng ng nhp (login)vo h thng.

    2.2. Th tc ng nhp v cc lnh thot khi h thng

    2.2.1. ng nhpSau khi h thng Linux (ly Red Hat 6.2 lm v d) khi ng xong, trn mn hnh xut

    hin nhng dng sau:Ret Hat Linux release 6.2 (Zoot)Kernel 2.2.14-5.0 on an i686

    May1 login:Dng th nht v dng th hai cho bit loi phin bn Linux, phin bn ca nhn v

    kin trc phn cng c trn my, dng th ba l du nhc ng nhp ngi dng thchin vic ng nhp. Ch l cc dng trn y c th thay i cht t ty thuc vo phinbn Linux.

    Chng ta c ththay i cc dng hin th nhtrnh by trn y bng cch sai file/etc/rc.d/rc.localnhsau:

    Thay on chng trnhecho "" > /etc/issue

    echo "$R" >> /etc/issue

    echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue

    cp -f /etc/issue /etc/issue.net

    echo >> /etc/issue

    thnh

    echo "" > /etc/issue

    echo "Thng bo mun hin th" >> /etc/issuev d sa thnh:

    echo "" > /etc/issue

    echo "This is my computer" >> /etc/issue

    th trn mn hnh ng nhp sc dng sau:This is my computerhostname login:

    Ti du nhc ng nhp, hy nhp tn ngi dng (cn gi l tn ng nhp): y l tnk hiu cung cp cho Linux nhm nhn din mt ngi dng c th. Tn ng nhp ngvi mi ngi dng trn h thng l duy nht, km theo mt mt khu ng nhp.

    May1 login: rootPassword:

    24

  • 8/8/2019 Unix - Nguyn Tr Thnh

    26/212

    Khi nhp xong tn ng nhp, h thng s hin ra thng bo hi mt khu v di chuyncon tr xung dng tip theo ngi dng nhp mt khu. Mt khu khi c nhp skhng hin th trn mn hnh v chnh iu gip trnh khi s "nhm ng" ca ngikhc.

    Nu nhp sai tn ng nhp hoc mt khu, h thng sa ra mt thng bo li:

    May1 login: rootPassword:Login incorrect

    My1 login:

    Nu ng nhp thnh cng, ngi dng s nhn thy mt s thng tin v h thng, mtvi tin tc cho ngi dng... Lc , du nhc shell xut hin ngi dng bt u phinlm vic ca mnh.

    May1 login: rootPassword:

    Last login: Fri Oct 27 14:16:09 on tty2Root[may1 /root]#

    Dy k t trong dng cui cng chnh l du nhc shell. Trong du nhc ny, rootltn ngi dng ng nhp, may1 l tn my v/root tn th mc hin thi (v y l ngidng root). Khi du nhc shell xut hin trn mn hnh th iu c ngha l hiu hnh sn sng tip nhn mt yu cu mi ca ngi dng.

    Du nhc shell c th khc vi trnh by trn y (Mc 2.7 cung cp cch thay i dunhc shell), nhng c th hiu n l chui k t bt u mt dng c cha tr chut v lunxut hin mi khi hiu hnh hon thnh mt cng vic no .

    2.2.2. Ra khi h thng

    kt thc phin lm vic ngi dng cn thc hin th tc ra khi h thng. C rtnhiu cch cho php thot khi h thng, y chng ta xem xt mt s cch thng dngnht.

    Cch n gin nht m bo thot khi h thng ng n l nhn t hpphm CTRL+ALT+DEL.Khi , trn mn hnh s hin th mt s thng boca h thng v cui cng l thng bo thot trc khi tt my. Cn ch l:Nu ang lm vic trong mi trng X Window System, hy nhn t hp phmCTRL+ALT+BACKSPACE trc ri sau hy nhn CTRL+ALT+DEL.

    Cch th hai l s dng lnh shutdown vi c php nh sau:shutdown [ty-chn] [cnh-bo]

    Lnh ny cho php dng tt c cc dch vang chy trn h thng.Cc ty-chn ca lnh ny nh sau:

    -k : khng thc s shutdown m ch cnh bo.

    -r: khi ng li ngay sau khi shutdown.

    -h : tt my thc s sau khi shutdown.

    -f: khi ng li nhanh v b qua vic kim tra a.

    -F : khi ng li v thc hin vic kim tra a.

    25

  • 8/8/2019 Unix - Nguyn Tr Thnh

    27/212

    -c : b qua khng chy lnh shutdown. Trong ty chn ny khng tha ra tham s thigian nhng c tha ra thng bo gii thch trn dng lnh gi cho tt c cc ngi dng.

    -t s-giy : qui nh init(8) chkhong thi gian s-giy tm dng gia qu trnh gi cnhbo v tn hiu kill, trc khi chuyn sang mt mc chy khc.

    v hai tham s v tr cn li:

    time : t thi im shutdown. Tham s time c hai dng. Dng tuyt i l gg:pp (gg: gitrong ngy, pp: pht) th h thng s shutdown khi ng h my trng vi gi tr tham s. Dngtng i l + l hn sau thi khong pht s shutdown; coi shutdown lp tc tngng vi +0.

    cnh-bo : thng bo gi n tt c ngi dng trn h thng. Khi lnh thc hin tt c ccmy ngi dng u nhn c cnh bo.

    V d, khi ngi dng g lnh:shutdown +1 Sau mot phut nua he thong se shutdown!

    trn mn hnh ca tt c ngi dng xut hin thng bo "Sau mot phut nua he thong seshutdown! " v sau mt pht th h thng shutdown thc s.

    Cch th ba l s dng lnh halt vi c php nh sau:halt [ty-chn]

    Lnh ny tt hn my.Cc tu chn ca lnh halt:

    -w : khng thc s tt my nhng vn ghi cc thng tin ln file /var/log/wtmp (y l filelu tr danh sch cc ngi dng ng nhp thnh cng vo h thng).

    -d: khng ghi thng tin ln file /var/log/wtmp. Ty chn -n c ngha tng t songkhng tin hnh vic ng b ha.

    -f : thc hin tt my ngay m khng thc hin ln lt vic dng cc dch v c trn h

    thng. -i : ch thc hin dng tt c cc dch v mng trc khi tt my.

    Chng ta cn nhrng, nu thot khi h thng khng ng cch th dn n hu qu lmt s file hay ton b h thng file c th b h hng.

    Lu : C th s dng lnh exit trv du nhc ng nhp hoc kt thc phin lm

    vic bng lnh logout.

    2.2.3. Khi ng li h thng Ngoi vic thot khi h thng nh cc cch thc trn y (n t h p ba phm

    Ctrl+Alt+Del, dng lnh shutdown hoc lnh halt), khi cn thit (chng hn, g p phitnh hung mt trnh ng dng chy qun) c th khi ng li h thng nhlnh reboot.C php lnh reboot:

    reboot [ty-chn]

    Lnh ny cho php khi ng li h thng. Ni chung th ch siu ngi dng mi cphp s dng lnh reboot, tuy nhin, nu h thng ch c duy nht mt ngi dng anglm vic th lnh reboot vn c thc hin song h thng i hi vic xc nhn mt khu.

    26

  • 8/8/2019 Unix - Nguyn Tr Thnh

    28/212

    Cc ty chn ca lnh reboot nh sau l -w, -d, -n, -f, -i c ngha tng t nh tronglnh halt.

    2.2.4. Khi ng vo ch hoLinux cho php nhiu ch khi ng, nhng ch ny c lit k trong file

    /etc/inittab. Di y l ni dung ca file ny:# inittab This file describes how the INIT process should set up# the system in a certain run-level.## Author: Miquel van Smoorenburg, # Modified for RHS Linux by Marc Ewing and Donnie Barnes#

    # Default runlevel. The runlevels used by RHS are:# 0 - halt (Do NOT set initdefault to this) -y l ch dng hotng ca hthng# 1 - Single user mode -y l chn ngi dng, ta c thng nhp vo ch

    ny trong trng hp mun khc phc mt ssc.# 2 - Multiuser, without NFS (The same as 3, if you do not have networking) - y l cha ngi dng, giao din text, khng htrkt ni mng.

    # 3 - Full multiuser mode Cha ngi dng, giao din text# 4 unused Khng sdng ch ny# 5 - X11 -y l cha ngi dng, giao din ho# 6 - reboot (Do NOT set initdefault to this) Ch khi ng li my tnh#id:3:initdefault: -y l ch ngm nh hthng ssdngkhing

    # System initialization.si::sysinit:/etc/rc.d/rc.sysinit

    l0:0:wait:/etc/rc.d/rc 0l0:0:wait:/etc/rc.d/rc 0l1:1:wait:/etc/rc.d/rc 1l2:2:wait:/etc/rc.d/rc 2l3:3:wait:/etc/rc.d/rc 3l4:4:wait:/etc/rc.d/rc 4l5:5:wait:/etc/rc.d/rc 5l6:6:wait:/etc/rc.d/rc 6

    # Things to run in every runlevel.ud::once:/sbin/update# Trap CTRL-ALT-DELETEca::ctrlaltdel:/sbin/shutdown -t3 -r now#ca::ctrlaltdel:/bin/echo "You can't do that"

    # When our UPS tells us power has failed, assume we have a few minutes# of power left. Schedule a shutdown for 2 minutes from now.# This does, of course, assume you have powerd installed and your

    27

  • 8/8/2019 Unix - Nguyn Tr Thnh

    29/212

    # UPS connected and working correctly.pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

    # If power was restored before the shutdown kicked in, cancel it.pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

    # Run gettys in standard runlevels1:2345:respawn:/sbin/mingetty tty12:2345:respawn:/sbin/mingetty tty2#3:2345:respawn:/sbin/mingetty tty3#4:2345:respawn:/sbin/mingetty tty4#5:2345:respawn:/sbin/mingetty tty5#6:2345:respawn:/sbin/mingetty tty6# Run xdm in runlevel 5# xdm is now a separate servicex:5:respawn:/etc/X11/prefdm nodaemon

    Trong ch khi ng s 3 l ch khi ng vo ch Text, v ch 5 lkhng vo ch ho. Nh vy cho my tnh khi ng vo ch ho ta sali dng cu hnh

    id:3:initdefault:thnh

    id:5:initdefault:

    Trong Linux c mt s loi giao din ho do mt s t chc vit ra. Hai t chc niting l GNOME (http://www.gnome.org) v KDE (http://www.kde.org) vit ra cc giaodin ho mang tn trng vi t chc l GNOME v KDE.

    Cng tu vo vic c ci giao din GNOME hay KDE m khi khi ng vo ch ho, my tnh c cc giao din tng ng. Trn hnh trn l giao din GNOME m khikhi ng vo ch ho. Mt khc, cc giao din ny lin tc c pht trin, do mi phin bn s c s khc nhau. Trong giao din ng nhp ha, h thng hin th hpthoi cho php ngi dng nhp vo tn ti khon; sau khi ngi dng nhp tn ti khon

    28

    http://www.kde.org/http://www.kde.org/
  • 8/8/2019 Unix - Nguyn Tr Thnh

    30/212

    ca mnh, h thng hi tip mt khu. Nu c tn ti khon v mt khu u chnh xc thngi dng c php vo h thng v mt giao din lm vic mi s hin ra nh hnhdi.

    2.3. Lnh thay i mt khuMt khu l vn rt quan trng trong cc h thng a ngi dng v m bo tnh

    bo mt ti a, cn thit phi ch ti vic thay i mt khu. Thm ch trong trng hph thng ch c mt ngi s dng th vic thay i mt khu vn l rt cn thit.Mt khu l mt xu k ti km vi tn ngi dng m bo cho php mt ngi volm vic trong h thng vi quyn hn c quy nh. Trong qu trnh ng nhp, ngidng phi g ng tn v mt khu, trong g mt khu l cng vic bt buc phi thchin. Tn ngi dng c thc cng khai song mt khu th tuyt i phi c m bob mt.

    Vic ng k tn v mt khu ca siu ngi dng c tin hnh trong qu trnh khito hiu hnh Linux. Vic ng k tn v mt khu ca mt ngi dng thng thng c tin hnh khi

    mt ngi dng mi ng k tham gia s dng h thng. Thng thng siu ngidng cung cp tn v mt khu cho ngi dng mi (c th do ngi dng ngh)v dng lnh adduser(hoc lnh useradd) ng k tn v mt khu vi hthng. Sau , ngi dng mi nht thit cn thay i mt khu bo m vic gib mt c nhn tuyt i.

    29

  • 8/8/2019 Unix - Nguyn Tr Thnh

    31/212

    Lnh passwd cho php thay i mt khu ng vi tn ng nhp ngi dng. C phplnh passwd:

    passwd [ty-chn] [tn-ngi-dng]

    vi cc ty chn nh sau:-k : thay i mt khu ngi dng. Lnh i hi phi xc nhn quyn bng vic g mt

    khu ang dng trc khi thay i mt khu. Cho php ngi dng thay i mt khu camnh c lp vi siu ngi dng.

    -f : t mt khu mi cho ngi dng song khng cn tin hnh vic kim tra mt khuang dng. Ch siu ngi dng mi c quyn s dng tham s ny.

    -l : kha mt ti khon ngi dng. Vic kha ti khon thc cht l vic dch bn m hamt khu thnh mt xu k t v ngha bt u bi k hiu "!". Ch siu ngi dng mi cquyn s dng tham s ny.

    -stdin : vic nhp mt khu ngi dng chc tin hnh t thit b vo chun khng thtin hnh tng dn (pipe). Nu khng c tham s ny cho php nhp mt khu c tthit b vo chun hoc tng dn.

    -u : mkha (tho b kha) mt ti khon (i ngu vi tham s -l). Ch siu ngi dngmi c quyn s dng tham s ny.

    -d: xa b mt khu ca ngi dng. Ch siu ngi dng mi c quyn s dng tham sny.

    -S : hin th thng tin ngn gn v trng thi mt khu ca ngi dng c a ra. Ch siungi dng mi c quyn s dng tham s ny.

    Nu tn-ngi-dng khng c trong lnh th ngm nh l chnh ngi dng g lnhny.

    V d khi ngi dng user1 g lnh:# passwd user1

    h thng thng bo:Changing password for user user1New UNIX password:

    ngi dng nhp mt khu mi ca mnh vo. Sau khi ngi dng g xong mt khumi, h thng cho ra thng bo:

    BAD PASSWORD: it is derived from your password entryRetype new UNIX password:

    ngi dng khng nh mt ln na mt khu va g dng trn (nhphi g li ng htnh ln trc). Chnn qu phn vn v thng bo dng pha trn v hu ht khi g mtkhu mi lun gp nhng thng bo kiu i loi nh vy, chng hn nh:

    BAD PASSWORD: it is too simplistic/systematic

    V sau khi chng ta khng nh li mt khu mi, h thng cho ra thng bo:Passwd: all authentication tokens updated successfully.

    cho bit vic thay i mt khu thnh cng v du nhc shell li hin ra.Khi siu ngi dng g lnh:

    # passwd -S root

    30

  • 8/8/2019 Unix - Nguyn Tr Thnh

    32/212

    s hin ra thng boChanging password for user rootPassword set, MD5 encryption

    cho bit thut ton m ha mt khu m Linux s dng l mt thut ton hm bm c tn lMD5.

    Lu : C mt li khuyn i vi ngi dng l nn chn mt khu khng qu n gin

    qu (nhm trnh ngi khc d d tm ra) hoc khng qu phc tp (trnh khkhn cho chnh ngi dng khi phi ghi nhv g mt khu). c bit khngnn s dng h tn, ngy sinh, sin thoi ... ca bn thn hoc ngi thnlm mt khu v y l mt trong nhng trng hp mt khu n gin nht.

    Nu thng bo mt khu qu n gin c lp i lp li mt vi ln v khngc thng bo mt khu mi thnh cng quay v du nhc shell th nn g lilnh v chn mt mt khu mi phc tp hn i cht.

    2.4. Lnh xem, thit t ngy, gihin ti v xem lch trn h thng

    2.4.1 Lnh xem, thit t ngy, giLnh date cho php c th xem hoc thit t li ngy gitrn h thng.C php ca lnh gm hai dng, dng xem thng tin v ngy, gi:date [ty-chn] [+nh-dng]

    v dng thit t li ngy gicho h thng:date [ty-chn] [MMDDhhmm[ [CC[YY] ]-ss]]

    Cc ty-chn nh sau:

    -d, --date=xu-vn-bn : hin th thi gian di dngxu-vn-bn, m khng ly "thi

    gian hin ti ca h thng nh theo ngm nh;xu-vn-bnc t trong hai du nhy nhoc hai du nhy kp.

    -f, --file=file-vn-bn : ging nh mt tham s--datenhng ng vi nhiu ngy cnxem: mi dng ca file-vn-bn c vai tr nh mtxu-vn-bntrong trng hp tham s--date.

    : hin th ngy githeo chun ISO-8601 (v d: 2000-11-8). -I, --iso-8601[=m-t]

    -I tng ng vi tham s--iso-8601='date' Vi --iso-8601: num-tl 'date'(hoc khng c) th hin th ngy, num-tl

    'hours' hin th ngy+gi, nu m-t l 'minutes': ngy+gi+pht; nu m-t l'seconds': ngy + gi+ pht + giy.

    -r, --reference= file : hin th thi gian sa ifileln gn y nht. -R, --rfc-822 : hin th ngy theo RFC-822 (v d: Wed, 8 Nov 2000 09:21:46 -0500).

    -s, --set=xu-vn-bn: thit t li thi gian theo kiuxu-vn-bn.

    -u, --utc, --universal : hin th hoc thit t thi gian theo UTC (v d: Wed Nov 814:29:12 UTC 2000).

    --help: hin th thng tin trgip v thot.

    31

  • 8/8/2019 Unix - Nguyn Tr Thnh

    33/212

    Trong dng lnh date cho xem thng tin ngy, gi th tham snh-dng iu khincch hin th thng tin kt qu. nh-dng l dy c t mt n nhiu cp gm hai k t,trong mi cp k tu tin l % cn k t th hai m tnh dng.

    Do s lng nh dng l rt nhiu v vy chng ta ch xem xt mt snh dng inhnh ( xem y cc nh dng, s dng lnh man date).

    Di y l mt snh dng in hnh: %% : Hin ra chnh k t %.

    %a : Hin ra thng tin tn ngy trong tun vit tt theo ngn ng bn a.

    %A: Hin ra thng tin tn ngy trong tun vit y theo ngn ng bn a.

    %b : Hin ra thng tin tn thng vit tt theo ngn ng bn a.

    %B : Hin ra thng tin tn thng vit y theo ngn ng bn a.

    Trong dng lnh date cho php thit t li ngy gi cho h thng th tham s[MMDDhhmm[ [CC[YY] [.ss]] m t ngy, gimi cn thit t, trong :

    MM: hai s ch thng,DD: hai s ch ngy trong thng,

    hh: hai s ch gitrong ngy,mm: hai s ch pht,CC: hai s ch th k,YY: hai s ch nm trong th k.

    Cc dng ngay di y trnh by mt s v d s dng lnh date, mi v dc chotng ng vi mt cp hai dng, trong dng trn m t lnh c g cn dng di lthng bo ca Linux.

    # date

    Wed Jan 3 23:58:50 ICT 2001# date -d='01/01/2000'

    Sat Jan 1 00:00:00 ICT 2000# date -iso-8601='seconds'

    2000-12-01T00:36:41-0500# date -d='01/01/2001'

    Mon Jan 1 00:00:00 ICT 2001# date 010323502001.50

    Wed Jan 3 23:50:50 ICT 2001# date +%a%A

    Wed Wednesday# date +%a%A%b%B

    Wed Wednesday Jan January# date +%D%%%j

    01/05/01%005

    2.4.2. Lnh xem lchLnh cal cho php xem lch trn h thng vi c php nh sau:cal [ty-chn] [ []]

    32

  • 8/8/2019 Unix - Nguyn Tr Thnh

    34/212

    nu khng c tham s, lch ca thng hin thi sc hin th.Cc tu-chn l:

    -m: chn ngy Th hai l ngy u tin trong tun (mc nh l ngy Ch nht).

    -j : hin th s ngy trong thng di dng s ngy trong nm (v d: ngy 1/11/2000 sc hin th di dng l ngy th 306 trong nm 2000, s ngy bt u c tnh t ngy1/1).

    -y: hin th lch ca nm hin thi.

    V d:# cal 1 2001

    January 2001Su Mo Tu We Th Fr Sa

    1 2 3 4 5 67 8 9 10 11 12 1314 15 16 17 18 19 20

    21 22 23 24 25 26 2728 29 30 31

    Khi nhp dng lnh trn, trn mn hnh s hin th lch ca thng 1 nm 2001, mc nhchn ngy ch nht l ngy bt u ca tun. Di y l v d hin th s ngy trong thng3 di dng s ngy trong nm 2001.

    # cal -j 3 2001

    March 2001Su Mo Tu We Th Fr Sa

    60 61 6263 64 65 66 67 68 69

    70 71 72 73 74 75 7677 78 79 80 81 82 8384 85 86 87 88 89 90

    2.5. Xem thng tin h thngLnh uname cho php xem thng tin h thng vi c php l:uname [ty-chn]

    Nu khng c tu chn th hin tn hiu hnh.Lnh c cc ty chn l:

    -a, --all : hin tt c cc thng tin.

    -m, --machine: kiu kin trc ca b x l (i386, i486, i586, i686...). -n, --nodename: hin tn ca my.

    -r, --release : hin nhn ca hiu hnh.

    -s, --sysname : hin tn hiu hnh.

    -p, --processor : hin kiu b x l ca my ch.

    V d, nu g lnh

    33

  • 8/8/2019 Unix - Nguyn Tr Thnh

    35/212

    # uname -a

    th mn hnh s hin ra nh sau:Linux linuxsrv.linuxvn.net 2.2.14-5.0 #1 Tue Mar 7 21:07:39 EST 2000 i686 unknown

    #

    Thng tin hin ra c tt c 6 trng l:Tn hiu hnh: LinuxTn my: linuxsrv.linuxvn.netTn nhn ca hiu hnh: 2.2.14-5.0Ngy sn xut: #1 Tue Mar 7 21:07:39 EST 2000Kiu kin trc b x l: i686Kiu b x l ca my ch: unknown

    V d nu g lnh:# uname -spr

    th mn hnh s hin ra nh sau:Linux 2.2.14-5.0 unknown

    l tn hiu hnh, tn nhn v kiu b x l ca my ch.Lu :

    Chng ta lm r thm ni dung lu trong mc 1.3.1 v tham s kha kt hp:Trong v d trn y khi vit tham s-sprl yu cu thc hin lnh usame vingha kt hp tnh hung theo c ba tham s kha -s, -p, -r. Ch rng, khngth vit -s-p-rthay cho -sprc. Nh lu mc 1.3.1 trong nhiu lnhca Linux cho php vit kt hp cc tham s kha theo cch thc nh trn minl cc tham s khng xung khc vi nhau.

    2.6. Thay i ni dung du nhc shellTrong Linux c hai loi du nhc: du nhc cp mt (du nhc shell) xut hin khi nhp

    lnh v du nhc cp hai (du nhc nhp liu) xut hin khi lnh cn c d liu c nhpt bn phm v tng ng vi hai bin nhc tn l PS1 v PS2.PS1 l bin h thng tng ng vi du nhc cp 1: Gi tr ca PS1 chnh l ni dung hinth ca du nhc shell. nhn bit thng tin h thng hin ti, mt nhu cu t ra l cnthay i gi tr ca cc bin h thng PS1 v PS2.Linux cho php thay i gi tr ca bin h thng PS1 bng lnh gn tr mi cho n. Lnhny c dng:

    # PS1=''

    Nm (5) k tu tin ca lnh gn trn y (PS1=') phi c vit lin tip nhau. Dyk t nm gia cp hai du nhy n (c th s dng cp hai du kp ") v khng c

    php cha du nhy. Dy k t ny bao gm cc cp k tiu khin v cc k t khc, chophp c th c du cch. Cp k tiu khin gm hai k t, k tu tin l du s xui "\"cn k t th hai nhn mt trong cc trng hp lit k trong bng di y. Bng di ygii thiu mt s cp k tiu khin c thc s dng khi mun thay i du nhclnh:

    34

  • 8/8/2019 Unix - Nguyn Tr Thnh

    36/212

    Cp k tiu khin ngha\! Hin th th t ca lnh trong lch s\# Hin th th t ca lnh\$ Hin th du -la ($). i vi siu ngi dng

    (super user), th hin th du s hiu (#)

    \\ Hin th du s (\)\d Hin th ngy hin ti\h Hin th tn my (hostname)\n K hiu xung dng\s Hin th tn h shell\t Hin th gihin ti\u Hin th tn ngi dng\W Hin th tn thc s ca th mc hin thi (v d th

    mc hin thi l /mnt/hda1 th tn thc s ca n l/hda1)

    \w Hin th tn y ca th mc hin thi (v d

    /mnt/hda1)

    V d, hin thi du nhc shell c dng:root[may1 /hda1]#

    Sau khi g lnhroot@may1 /hda1]# PS1='[\h@\u \w : \d]\$'

    th du nhc shell c thay i l:[may1@root /mnt/hda1 : Fri Oct 27 ]#

    ngoi vic i th t gia tn ngi dng v my cn cho chng ta bit thm v ngy hthng qun l v tn y ca th mc hin thi.

    Linux cung cp cch thc hon ton tng t nhi vi bin PS1 thay i gi tr binh thng PS2 tng ng vi du nhc cp hai.

    2.7. Lnh gi ngn ngtnh ton s hcLinux cung cp mt ngn ng tnh ton vi chnh xc ty thng qua lnh bc. Khi

    yu cu lnh ny, ngi dng c cung cp mt ngn ng tnh ton (v cho php lp trnhtnh ton c dng ngn ng lp trnh C) hot ng theo thng dch. Trong ngn ng lptrnh c cung cp (tm thi gi l ngn ngbc), tn ti rt nhiu cng c h trtnh tonv lp trnh tnh ton: kiu php ton s hc phong ph, php ton so snh, mt s hmchun, bin chun, cu trc iu khin, cch thc nh ngha hm, cch thc thay i chnh xc, t li ch thch ... Ch cn s dng mt phn nh tc ng ca lnh bc, chng

    ta c mt "my tnh s bm tay" hiu qu.C php lnh bc:bc [ty-chn] [file...]

    vi cc tu chn sau y:

    -l, --mathlib : thc hin php tnh theo chun th vin ton hc (v d:5/5=1.00000000000000000000).

    35

  • 8/8/2019 Unix - Nguyn Tr Thnh

    37/212

    -w, --warn : khi thc hin php tnh khng tun theo chun POSIX (POSIX l mt chuntrong Linux) th mt cnh bo xut hin.

    -s, --standard : thc hin php tnh chnh xc theo chun ca ngn ng POSIXbc.

    -q, --quiet : khng hin ra li gii thiu v phn mm GNU khi dngbc.

    Tham s file l tn file cha chng trnh vit trn ngn ngbc, khi lnh bc thc hins tng chy cc file chng trnh ny (Nu c nhiu tham s th c ngha s chy nhiuchng trnh lin tip nhau).

    Di y l mt v d s dng lnh bcdng n gin nht.Khi g lnh ti du nhc:# bc -l

    mn hnh xut hin li gii thiu v GNU khi dng bc v ngn ngbcc kch hot phc v ngi dng.

    bc 1.05Copyright 1991, 1992, 1993, 1994, 1997, 1998 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.

    For details type `warranty'.5^312512+12+78*7-62/4554.50000000000000000000a=4a^a256a*78312b=45a*b180a/b.08888888888888888888a%b.00000000000000000040

    y * l php nhn, ^ l php tnh lu tha, / l php chia ly thng, % l chia ly phnd.

    Lu : Ngn ng lp trnh tnh ton bc l mt ngn ng rt mnh c ni dung ht sc

    phong ph cho nn trong khun kh ca ti liu ny khng th m t ht cc nidung ca ngn ng c. Chng ta cn s dng lnh man bc nhn cthng tin y v lnh bc v ngn ng tnh ton bc.

    y trnh by sb mt s yu t cbn nht ca ngn ng (btl vit ttca biu thc, b l vit tt ca bin):

    36

  • 8/8/2019 Unix - Nguyn Tr Thnh

    38/212

    Cc php tnh: - bt: ly i; ++ b, --b, b ++, b --: php ton tng, gim b; ccphp ton hai ngi cng +, tr -, nhn *, chia /, ly phn d %, ly tha nguynbc ^; gn =; gn sau khi thao tc =; cc php ton so snh =, bng ==, khc != ...

    Php so snh cho 1 nu ng, cho 0 nu sai.

    Bn bin chun l scale s lng ch s phn thp phn; lastgi tr tnh toncui cng; ibase cs hm i vi input v obase l cs hm vi output(ngm nh hai bin ny c gi tr 10).

    Cc hm chun sin s (bt); cosin c (bt); arctg a (bt); lgarit t nhin l (bt); m cs t nhin e (bt); hm Bessel bc nguyn n ca bt l j (n, bt).

    37

  • 8/8/2019 Unix - Nguyn Tr Thnh

    39/212

    CHNG 3. H THNG FILE

    3.1 Tng quan v h thng file

    3.1.1. Mt s khi nim

    Ngi dng tng lm vic vi hiu hnh DOS/Windows th rt quen bit vi cckhi nim: file (tp tin), th mc, th mc hin thi ... m bo tnh h thng v thuntin cho ngi dng cha tng lm vic thnh tho vi mt hiu hnh no khc, chngny vn gii thiu v cc khi nim ny mt cch sb.

    Mt i tng in hnh trong cc hiu hnh lfile. File l mt tp hp d liu ct chc c hiu hnh qun l theo yu cu ca ngi dng. Cch t chc d liu trongfile thuc v ch ca n l ngi to ra file. File c th l mt vn bn (trng hp cbit l chng trnh ngun trn C, PASCAL, shell script ...), mt chng trnh ngn ngmy, mt tp hp d liu ... Hiu hnh t chc vic lu tr ni dung file trn cc thit bnh lu di (chng hn a t) v m bo cc thao tc ln file. Chnh v c hiu hnhm bo cc chc nng lin quan n file nn ngi dng khng cn bit file ca mnh lu

    vng no trn a t, bng cch no c/ghi ln cc vng ca a t m vn thc hinc yu cu tm kim, x l ln cc file.Hiu hnh qun l file theo tn gi ca file (tn file) v mt s thuc tnh lin quan

    n file. Trc khi gii thiu mt s ni dung lin quan n tn file v tn th mc, chngta gii thiu sb v khi nim th mc.

    lm vic c vi cc file, hiu hnh khng ch qun l ni dung file m cnphi qun l cc thng tin lin quan n cc file. Th mc (directory) l i tng cdng cha thng tin v cc file, hay ni theo mt cch khc, th mc cha cc file. Ccth mc cng c hiu hnh qun l trn vt dn ngoi v v vy, theo ngha ny, thmc cng c coi l file song trong mt s trng hp phn bit vi "file" th mc,chng ta dng thut ng file thng thng. Khc vi file thng thng, hiu hnh li

    quan tm n ni dung ca th mc.Mt s ni dung sau y lin quan n tn file (bao gm c tn th mc):

    Tn file trong Linux c th di ti 256 k t, bao gm cc ch ci, ch s, du gchni, gch chn, du chm. Tn th mc/file trong Linux c th c nhiu hn mtdu chm, v d: This_is.a.VERY_long.filename. Nu trong tn file c duchm "." th xu con ca tn file t du chm cui cng c gi l phn mrngca tn file (hoc file). V d, tn file trn y c phn mrng l .filename. Ch rng khi nim phn mrng y khng mang ngha nh mt s hiu hnhkhc (chng hn nh MS-DOS).

    Lu : Chng ta nn lu rng, khng phi k t no cng c ngha. Nu c hai file ch

    khc nhau k t cui cng, th i vi Linux, l hai file c th trng tn.Bi l, Linux ch ly 32 hay 64 k tu tin trong tn file m thi (ty theo phin bn Linux), phn tn file cn li dnh cho ch ca file, Linux theo dithng tin, nhng thng khng xem cc k tng sau k t th 33 hay 65 lquan trng i vi n.

    Xin nhc li lu v phn bit ch hoa v ch thng i vi tn th mc/file, vd hai file FILENAME.tar.gz v filename.tar.gz l hai file khc nhau.

    38

  • 8/8/2019 Unix - Nguyn Tr Thnh

    40/212

    Nu trong tn th mc/file c cha khong trng, s phi t tn th mc/file votrong cp du nhy kp s dng th mc/file . V d, to th mc c tn lMy document chng hn, hy nh dng lnh sau:

    # mkdir "My document"

    Mt s k t sau khng c s dng trong tn th mc/file: !, *, $, &, # ...

    Khi s dng chng trnh mc (Midnight Commander), vic hin th tn file s bsung mt k t theo ngha: du "*" cho file kh thi trong Linux, du "~" cho file saolu, du "." cho file n, du "@" cho file lin kt...

    Tp hp tt c cc file c trong hiu hnh c gi l hthng file l mt h thngthng nht. Bi chnh t cch thc s dng th mc, h thng file c t chc lgic theodng hnh cy: H thng file c xut pht t mt th mc gc (c k hiu l "/") vcho php to ra th mc con trong mt th mc bt k. Thng thng, khi khi to Linux c ngay h thng file ca n. Hnh 3.1. cho minh ha mt phn trong cy lgic ca hthng file.

    ch mt file hay mt th mc, chng ta cn a ra mt ng dn, v dngdn xc nh file Xclients trong hnh 3.1. chng ta vit nh sau:

    /etc/X11/xinit/Xclients

    /

    root bin etc usr home dev

    peng office52 sh date who X11 src bin user1 user2 tty00 tty01

    xinit

    Xclients Xmodmap

    Hnh 3.1. Mt phn cu trc lgic dng cy ca h thng File

    39

  • 8/8/2019 Unix - Nguyn Tr Thnh

    41/212

    ng dn ny cho bit Xclients nm trong xinit, xinit nm trong X11, X11nm trong etc v etc nm trong gc /.

    Tn file thng l tham s thc s khi g lnh v cng vic g lnh trnn rt nng ni vi ngi dng nu nh trong lnh phi g mt ng dn di theo dng trn (cbit vi tn gi l ng dn tuyti). V vy, Linux (cng nh nhiu hiu hnh khc)

    s dng khi nim thmc hin thica mi ngi dng lm vic trong h thng. Thmc hin thi l mt th mc trong h thng file m hin thi "ngi dng ang ".Qua th mc hin thi, Linux cho php ngi dng ch mt file trong lnh ngn gn

    hn nhiu. V d, nu th mc hin thi l th mcxinitth ch file ni, ngi dngch cn vit Xclients hoc ./Xclients trong k hiu "." ch th mc hin thi.ng dn c xc nh qua th mc hin thi c gi l ng dn tngi.

    Khi mt ngi dng ng nhp vo h thng, Linux lun chuyn ngi dng vo thmc ring, v ti thi im th mc ring l th mc hin thi ca ngi dng. Thmc ring ca siu ngi dng l /root, th mc ring ca ngi dng c tn l user1 l/home/user1 ... Linux cho php dng lnh cd chuyn sang th mc khc (ly thmc khc lm th mc hin thi). Hai du chm ".." c dng ch th mc ngay trn

    th mc hin thi (cha ca th mc hin thi).Linux cn cho php ghp mt h thng file trn mt thit b nh (a mm, vng acng cha c a vo h thng file) thnh mt th mc con trong h thng file ca hthng bng lnh mount. Cc h thng file c ghp thuc vo cc kiu khc nhau.

    Hai mc tip theo (3.1.2 v 3.1.3.) gii thiu nhng ni dung su hn v h thng fileLinux.

    3.1.2. Sb kin trc ni ti ca h thng fileTrn a t, h thng file c coi l dy tun t cc khi lgic mi khi cha hoc

    512B hoc 1024B hoc bi ca 512B l cnh trong mt h thng file. Trong h thngfile, cc khi d liu c a ch ha bng cch nh ch s lin tip, mi a chc

    cha trong 4 byte (32 bit).Cu trc ni ti ca h thng file bao gm 4 thnh phn k tip nhau: Boot block (dng khi ng h thng), Siu khi (Super block), Danh sch inode v Vng d liu.

    Di y, chng ta xem xt s lc ni dung cc thnh phn cu trc ni ti mt hthng file.

    Siu khiSiu khi cha nhiu thng tin lin quan n trng thi ca h thng file. Trong siu

    khi c cc trng sau y:

    Kch thc ca danh sch inode (khi nim inode sc gii thch trong mcsau): nh kch cvng khng gian trn H thng file qun l cc inode.

    Kch thc ca h thng file.Hai kch thc trn y tnh theo n v dung lng b nhngoi,

    Mt danh sch ch s cc khi ri (thng trc trn siu khi) trong h thngfile.

    Ch s cc khi ri thng trc trn siu khi c dng p ng nhu cu phn phimi. Ch rng, danh sch ch s cc khi ri c trn siu khi ch l mt b phn ca tptt c cc khi ri c trn h thng file.

    40

  • 8/8/2019 Unix - Nguyn Tr Thnh

    42/212

    Ch s ca khi ri tip theo trong danh sch cc khi ri.

    Ch s khi ri tip theo dng h trvic tm kim tip cc khi ri: bt u tm tkhi c ch s ny tri. iu c ngha l mi khi c ch s khng ln hn ch s nyhoc c trong danh sch cc khi ri thng trc hoc c cp pht cho mt file no .Nhiu thao tc to file mi, xo file, thay i ni dung file v.v. cp nht cc thng tin ny.

    Mt danh sch cc inode ri (thng trc trn siu khi) trong h thng file.Danh sch ny cha ch s cc inode ri c dng phn phi ngay c cho mt

    file mi c khi to. Thng thng, danh sch ny ch cha mt b phn cc inode ritrn h thng file.

    Ch s inode ri tip theo trong danh sch cc inode ri.

    Ch s inode ri ti p theo nh v vic tm kim ti p thm inode ri: bt u tm tinode c ch s ny tri. iu c ngha l mi inode c ch s khng ln hn ch sny hoc c trong danh sch cc inode ri thng trc hoc c tng ng vi mt fileno .

    Hai tham s trn y to thnh cp xc nh c danh sch cc inode ri trn h thng

    file cc thao tc to file mi, xo file cp nht thng tin ny. Cc trng kha (lock) danh sch cc khi ri v danh sch inode ri: Trongmt s trng hp, chng hn khi h thng ang lm vic thc s vi a tcp nht cc danh sch ny, h thng khng cho php cp nht ti hai danh schni trn.

    Cch dn v vic siu khi c bin i: nh k thi gian siu khi bnhtrong c cp nht li vo siu khi a t v v vy cn c thng tin vvic siu khi b nh trong khc vi ni dung b nhngoi: nu hai bnkhng ging nhau th cn phi bin i chng c ng nht.

    C ch dn rng h thng file ch c thc (cm ghi): Trong mt s trnghp, h thng ang cp nht thng tin t b nhngoi th ch cho php c i

    vi h thng file, S lng tng cng cc khi ri trong h thng file,

    S lng tng cng cc inode ri trong h thng file,

    Thng tin v thit b, Kch thc khi (n v phn phi d liu) ca h thng file. Hin ti kch thc

    ph bin ca khi l 1KB.Trong thi gian my hot ng, theo tng giai on, nhn sa siu khi ln a nu

    n c bin i ph hp vi d liu trn h thng file.Mt trong khi nim ct li xut hin trong h thng file l inode. Cc i tng linquan n khi nim ny sc trnh by trong cc mc tip theo.

    InodeMi khi mt qu trnh khi to mt file mi, nhn h thng s gn cho n mt inode

    cha s dng. hiu r hn v inode, chng ta xem xt s lc mi quan h lin quangia file d liu v vic lu tr trn vt dn ngoi i vi Linux.

    Ni dung ca file c cha trong vng d liu ca h thng file v c phn chia cckhi d liu (cha ni dung file) v hnh nh phn b ni dung file c trong mt inodetng ng. Lin kt n tp hp cc khi d liu ny l mt inode, ch thng qua inode mi

    41

  • 8/8/2019 Unix - Nguyn Tr Thnh

    43/212

    c th lm vic vi d liu ti cc khi d liu: Inode cha dng thng tin v tp hp cckhi d liu ni dung file. C th quan nim rng, t hp gm inode v tp cc khi d liunh vy l mt file vt l: inode c thng tin v file vt l, trong c a ch ca cc khinhcha ni dung ca file vt l. Thut ng inode l s kt hp ca hai t index vi nodev c s dng ph dng trong Linux.

    Cc inode c phn bit nhau theo ch s ca inode: chnh l s th t ca inodetrong danh sch inode trn h thng file. Thng thng, h thng dng 2 bytes lu trch s ca inode. Vi cch lu tr ch s nh th, khng c nhiu hn 65535 inode trongmt h thng file.

    Nh vy, mt file ch c mt inode song mt file li c mt hoc mt s tn file. Ngidng tc ng thng qua tn file v tn file li tham chiu n inode (tn file v ch sinode l hai trng ca mt phn t ca mt th mc). Mt inode c th tng ng vi mthoc nhiu tn file, mi tng ng nh vy c gi l mt lin kt. Inode c lu tr tivng danh sch cc inode.

    Trong qu trnh lm vic, Linux dng mt vng b nh, c gi l bng inode (trongmt s trng hp, n cn c gi tng minh l bng sao in-core inode) vi chc nngtng ng vi vng danh sch cc inode c trong h thng file, h trcho qu trnh truynhp d liu trong h thng file. Ni dung ca mt in-core inode khng ch cha cc thngtin trong inode tng ng m cn c b sung cc thng tin mi gip cho qu trnh x linode.

    Chng ta xem xt cu trc ni ti ca mt inode thy c s trnh by ni ti camt file. Inode bao gm cc trng thng tin sau y:

    Kiu file. Trong Linux phn loi cc kiu file: file thng thng (regular), thmc, c t k t, c t khi v ng dn FIFO (pipes). Linux quy nh trngkiu file c gi tr 0 tng ng l inode cha c s dng.

    Quyn truy nhp file. Trong Linux, file l mt ti nguyn chung ca h thng vvy quyn truy nhp file c c bit quan tm trnh nhng trng hp truy

    nhp khng hp l. i vi mt inode, c 3 mc quyn truy nhp lin quan ncc i tng:

    mc ch ca file (i tng ny c k hiu l u: t ch user), mc nhm ngi dng ca ch nhn ca file (i tng ny c k hiu

    lg: t ch group), mc ngi dng khc (i tng ny c k hiu l a: t ch all).

    Quyn truy nhp l c, ghi, thc hin hoc mt t hp no t nhm gm 3 quyntrn. Ch rng, quyn thc hin i vi mt th mc tng ng vi vic cho php tmmt tn file c trong th mc .

    S lng lin kt i vi inode: y chnh l s lng cc tn file trn cc th

    mc c lin kt vi inode ny, nh danh ch nhn ca inode, nh danh nhm ch nhn: xc nh tn nhm ngi dng m ch file l mt

    thnh vin ca nhm ny,

    di ca file tnh theo byte,

    Thi gian truy nhp file: thi gian file c sa i mun nht,

    42

  • 8/8/2019 Unix - Nguyn Tr Thnh

    44/212

    thi gian file c truy nhp mun nht, thi gian file c khi to,

    Bng a ch cha cc a ch khi nhcha ni dung file. Bng ny c 13 phnta ch, trong c 10 phn t trc tip, 1 phn t gin tip bc 1, 1 phn tgin tip bc 2 v mt phn t gin tip bc 3 (chi tit c trong phn sau).

    Ni dung ca file thay i khi c thao tc ghi ln n; ni dung ca mt inode thay ikhi ni dung ca file thay i hoc thay i ch hoc thay i quyn hoc thay i s linkt.

    V d v ni dung mt inode nh sau:

    type regularperms rwxr-xr-x

    links 2owner 41CT

    group 41CNTTsize 5703 bytes

    accessed Sep 14 1999 7:30 AMmodified Sep 10 1999 1:30 PMinode Aug 1 1995 10:15 AM

    Cc phn ta ch d liuBn sao in-core inode cn b sung thm trng trng thi ca in-core inode.

    Trng trng thi ca in-core inode c cc thng tin sau: inode b kho, mt qu trnh ang chi khi inode tho kha, in-core inode khc vi inode do s thay i d liu trong inode, in-core inode khc vi inode do s thay i d liu trong file,

    s lng cc tn file ni vi file ang c m, s hiu thit b lgic ca h thng file cha file ni trn ch s inode: dng lin kt vi inode trn a, cc mc ni ti cc in-core inode khc. Trong b nh trong, cc in-core

    inode c lin kt theo mt hng bm v mt danh sch t do. Trongdanh sch hng bm cc in-core inode ha hp theo s hiu thit b lgicv s hiu inode.

    Trong qu trnh h thng lm vic, ny sinh khi nim inode tch cc nu nh c mtqu trnh ang lm vic vi inode (nh mfile).

    Mt inode thuc vo danh sch cc inode ri khi khng c file vt l no tng ng vi

    inode .

    Bng cha a ch khi dliu ca File trong UNIXBng cha a ch khi d liu ca file gm 13 phn t vi 10 phn t trc tip v 3

    phn t gin tip: Mi phn t c di 4 bytes, cha mt s hiu ca mt khi nh trna. Mi phn t trc tip tr ti 1 khi d liu thc s cha ni dung file. Phn t gin tipbc 1 (single indirect) tr ti 1 khi nhngoi. Khc vi phn t trc tip, khi nhngoiny khng dng cha d liu ca file m li cha danh sch ch s cc khi nhngoi

    43

  • 8/8/2019 Unix - Nguyn Tr Thnh

    45/212

    v chnh cc khi nhngoi ny mi thc s cha ni dung file. Nh vy, nu khi c di 1KB v mt ch s khi ngoi c di 4 bytes th a ch gin tip cho php nh vkhng gian trn a lu tr d liu ca file ti 256KB (Khng gian b nh ngoi trongvng d liu phi dng ti l 257KB). Tng ti vi cc phn t gin tip mc cao hn.

    Cch qun l a ch file nh trn cho thy c s phn bit gia file nh vi file ln.

    File nh c di b hn v theo cch t chc nh trn, phng php truy nhp s chophp tc nhanh hn, n gin hn do ch phi lm vic vi cc phn t trc tip. Khi xl, thut ton c File tin hnh theo cc cch khc nhau i vi cc phn t trc tip vgin tip.

    Cch t chc lu tr ni dung Fle nh trnh by cho php di file c th ln ti(224+216 + 28+10) khi.

    Vng dliu bao gm cc khi d liu, mi khi d liu c nh ch s phn bit.Khi trn vng d liu c dng cha ni dung cc file, ni dung cc th mc v nidung cc khi nh va ch ca cc file. Ch rng, ch s ca khi d liu c chatrong 32 bit v thng tin ny xc nh dung lng ln nht ca h thng file.

    3.1.3. Mt s thut ton lm vic vi inode

    H thng li gi h thng fileKhi lm vic vi file thng thng qua li gi h thng. Mt s li gi h thng thng

    gp nh mfile open, ng file close, c ni dung file read, ghi ni dung file write v.v.Bng di y thng k cc li gi h thng lm vic vi h thng file v phn loi

    theo chc nng ca mi li gi h thng (mt li gi c thc nhc ti mt s ln):

    Thi ims dng file

    S dng namei gn inode thuctnh file

    Vo-rafile

    Cu trc hthng file

    Qunl cy

    opencreatduppipeclose

    opencreatchdirchrootchownchmod

    statlinkunlinkmknodmountumount

    creatmknodlinkunlink

    chownchmodstat

    readwritecseek

    montumount

    chdirchown

    Thut ton h thng file mc thpNamei

    iget iput Ialloc ifree alloc free bmapThut ton nh v buffer

    getblk brelse Bread breada bwrite

    Hnh 3.2. Tng thvli gi h thng File

    Chng ta xem xt mt s thut ton lm vic vi inode.

    Thut ton truy nhp ti inode (iget)Nhiu tnh hung i hi thut ton iget, chng hn nh, mt qu trnh mmt file mi

    hoc to mt file mi v.v.. Thut ton igetcp pht mt bn in-core inode i vi mt shiu inode. Tuy nhin, trong trng hp cha c bn sao in-core inode th d c ni dung

    44

  • 8/8/2019 Unix - Nguyn Tr Thnh

    46/212

    ca n cn phi c c ni dung ca inode v cn nh v khi d liu cha inode cho. Cng thc lin quan n khi a t cha inode c thc vo b nh trong nhsau:

    Ch s khi cha inode = (s hiu inode - 1) / (s lng inode trong mt khi nh)+ ch s khi nhu tin cha danh sch inode trn a.

    Sau khi c khi a cha inode vo b nh trong, xc nh chnh xc v tr cainode, chng ta c cng thc sau:Byte v tr u tin = ((s hiu inode - 1) mod (s lng inode trong mt khi

    nh))* di mt inodeV d, nu nh mi inode a chim 64 bytes, mi khi a cha 8 inode a th inode

    s 8 s bt u t byte th 448 trn khi a u tin trong vng danh sch cc inode. rng, khi lm vic vi mt h thng file th super block ca n lun c mt trong bnhtrong h thng c nhng thng tin lm vic. Ch rng, trong super block c mtdanh sch cc inode ri (trn n) v mt danh sch cc khi ri.

    Thut ton igetnhn mt inode cho n tch cc v iu ty thuc vo mt s tnhhung sau y:

    - Nu inode khng tn ti trong vng m m li khng thuc danh sch ccinode ri trn super block th h thng phi thng bo mt li c gp.Li ny xy ra do yu cu mt inode khng cn vng m lm vic vi filena (tng ng vi trng h p trong MS-DOS thng bo: too many filesopened),

    - inode c trong vng m cc inode trn h thng file ( c in-core inode).Trong trng hp ny x l theo hai bc:+ inode tng ng b kha bi mt qu trnh khc: lc phi i cho

    n khi qu trnh trc y khng kha inode na. Sau khi c thokha inode c th trthnh tch cc hoc ri,

    + Nu inode danh sch cc inode ri th loi b n khi danh sch nybng cch t inode sang tch cc.

    - inode khng tn ti trn vng m tuy nhin danh sch cc inode ri khcrng. Khi danh sch cc inode ny khc rng, c ngha l c nhng inodekhng c gi tr: loi b n v t inode mi vo thay th.

    Thut ton iput loi b inodeThut ton iputc chc nng i ngu vi thut ton iget: cn tho bt s xut hin ca

    mt inode, chng hn khi chng trnh thc hin thao tc ng file.Khc vi trng hp thut ton iget, thut ton iputkhng ny sinh tnh hung sai st.Trong thut ton ny, khi mt qu trnh khng lm vic vi mt file c lin kt vi

    mt inode na th mt s tnh hung xy ra:- H thng gim s lng file tch cc i 1,- Nu s lng file tch cc l 0 th:

    + Nu l lnh xo file th trc h thng thc hin thao tc gim slin kt vi inode i 1 v v vy c th s lng lin kt tr thnh 0, cngha l s tn ti ca file vt l khng cn. Khi , chng ta thc hinvic xo thc s file ni trn bng mt s thao tc: gii phng cc khi dliu, t kiu file ca inode l 0 v gii phng inode.

    + khi s lin kt >0 thi cn cp nht s thay i ca inode ln a t.

    45

  • 8/8/2019 Unix - Nguyn Tr Thnh

    47/212

    - Trong trng hp s lng file tch cc vn dng th khng thc hin thao tcg.Ch l trong thut ton ny c s dng thut ton ifree.

    Thut ton ialloc gn inode cho mt file mi

    Khi mt file mi c xut hin, chng hn khi to file creat, phi cung cp mt inodecho file v thut ton iallocp ng i hi trn.Hot ng ca thut ton iallocc gii thch nh sau:

    - kim tra danh sch inode ri trn super block, xy ra mt trong hai trng hphoc danh sch rng hoc khng rng,

    - Nu danh sch khng rng th ly mt inode tip theo cho file, khi to ccgi tr ban u ca inode v gim s inode ri trn super trn super block.

    - Nu danh sch cc inode ri trn super block l rng: tm kim trn h thngfile nhng inode ri ti vo danh sch cc inode ri trn super block. Nudanh sch y hoc khng tm thy c na th gn mt inode cho file.Nu danh sch inode ri trn super block l rng v khng tm thy inode ri

    trn a th s c thng bo li.Trn danh sch cc inode ri, nhn lu gi mt inode c gi l inode nh, chnh linode cui cng c tm thy sau ny thun li cho tm kim.

    Thut ton ifree ti mt inode ri trn a vo danh sch cc inode ri trn superblock

    Thut ton namei tm ch s mt inode theo tn fileThut ton nameil mt thut ton ph dng, nhiu thut ton lm vic vi file phi s

    dng namei. T tn mt ng dn file/th mc, thut ton nameicho inode tng ng.

    Thut ton cp pht dliu trn aKhi nhn mun cp pht mt khi d liu, n s cp pht khi ri tip theo c ghi

    nhn trong super block. Khi mt khi d liu c cp cho mt file th n chc cppht li khi n trthnh ri. Nu khng cn khi rng no trn h thng file m li c nhucu cung cp khi th nhn s thng bo li.

    3.1.4. H trnhiu h thng FileCc phin bn u tin ca Linux ch h trmt h thng file duy nht l h thng fileminix. Sau , vi s m rng nhn, cng ng Linux thm vo n rt nhiu kiu hthng file khc nhau v Linux tr thnh mt hiu hnh h tr rt nhiu h thng file.Di y l mt s h thng file thng dng trong cc hiu hnh khc nhau c Linux

    h tr. H thng file ADFS: ADFS vit tt ca Acorn Disc Filing System l h thng file

    chun trn hiu hnh RiscOS. Vi s h trny, Linux c th truy cp vo cc phnvng a nh dng theo h thng file ADFS.

    H thng file AFFS: AFFS (The Amiga Fast File System) l mt h thng file ph binca hiu hnh AmigaOS phin bn 1.3 chy trn cc my Amiga.

    46

  • 8/8/2019 Unix - Nguyn Tr Thnh

    48/212

    H thng file CODA: CODA l mt h thng file mng cho php ngi dng c th ktgn cc h thng file t xa v truy cp chng nh cc h thng file cc b (local).

    H thng file DEVPTS: H thng file cho Unix98 PTYs.

    H thng file EFS: y l mt dng h thng file s dng cho CDROM.

    H thng file EXT2: H thng file EXT2 (The second extended filesystem) l h thngc dng ch yu trn cc phin bn ca hiu hnh Linux. Chng ta s trli ngincu h thng file ny trong cc phn sau.

    H thng file HFS: y l h thng file chy trn cc my Apple Macintosh.

    H thng file HPFS: HPFS l h thng file c s dng trong hiu hnh OS/2.Linux h trh thng file ny mc chc (read only).

    H thng file ISOFS: y l h thng file c s dng cho cc a CD. H thngthng dng nht cho cc a CD hin nay l ISO 9660. Vi s h trny, h thngLinux c th truy cp d liu trn cc a CD.

    H thng file MINIX: MINIX l h thng file u tin m Linux h tr. H thng fileny c s dng trong hiu hnh Minix v mt s h thng Linux c.

    H thng file MSDOS: Vi s h tr ny, h thng Linux c th truy cp c ccphn vng ca hiu hnh MSDOS. Linux cng c th s dng kiu MSDOS truycp cc phn vng ca Window 95/98 tuy nhin khi , cc u im ca hiu hnhWindow s khng cn gi tr v d nh tn file ch ti a 13 k t (k c m rng).

    H thng file NFS: NFS (Network File System) l mt h thng file trn mng h trvic truy cp d liu t xa ging nh h thng file CODA. Vi NFS, cc my chyLinux c th chia s cc phn vng a trn mng s dng nh l cc phn vng ccb ca chnh my mnh.

    H thng file NTFS: Vi s h trny, h thng Linux c th truy cp vo cc phnvng ca hiu hnh Microsoft Window NT.

    H thng file PROC: y l mt h thng file c bit c Linux h tr. H thng filePROC khng chim mt phn vng no ca h thng v cng khng qun l cc dliu lu tr trn a. PROC hin th ni dung ca chnh nhn h thng. Cc file trong hthng file PROC lu tr cc thng tin v trng thi hin hnh ca nhn. Thng tin vmi mt tin trnh ang thc hin trong h thng c lu trong mt th mc mang tnng vi ch s process ID ca tin trnh . Ngi dng c th s dng h thng filePROC ly cc thng tin v nhn cng nh sa i mt s gi tr ca nhn thng quasa i ni dung ca cc file trong h thng file ny. Tuy nhin, vic sa i trc tip

    nh trn tng i nguy him, d gy vh thng. H thng file QNX4: y l h thng file c s dng trong hiu hnh QNX 4.

    H thng file ROMFS: y l cc h thng file chc (read only) c s dng chyu cho vic khi to a o (ramdisk) trong qu trnh khi ng a ci t.

    H thng file SMB: SMB (Server Mesage Block) l mt giao thc ca Windows dng chia s file gia cc h iu hnh Windows 95/98, Windows NT v OS/2 LanManager. Vi s h trSMB, hiu hnh Linux c th chia s cng nh truy cp cc

    47

  • 8/8/2019 Unix - Nguyn Tr Thnh

    49/212

    file nm trn cc phn vng ca mt my chy cc hiu hnh k trn. Ni tm li,SMB cng l mt dng h trh thng file mng gip h thng c th chia s vi cch thng s dng chung giao thc SMB.

    H thng file UMSDOS: H thng file UMSDOS (Unix-like MSDOS) l h thng filec mrng t h thng file MSDOS theo nh hng Unix. H thng file ny c mt

    su im so vi MSDOS nh l h trtn file di, h trvic phn quyn, h trcclin kt (link), h trcc file c bit (device, pipe ...) v... H thng file ny c thc s dng lm phn vng gc ca h thng Linux.

    H thng file VFAT: VFAT chnh l h thng file m rng ca h thng FAT. Hthng file ny c s dng trong cc hiu hnh Windows 95/98.

    Nh vy, ngoi kh nng h trnhiu loi thit b, Linux cn c kh nng h trnhiu kiuh thng file. Bng cch h trnhiu kiu h thng file, Linux c th truy cp v x l ccfile ca nhiu hiu hnh khc nhau. Mc d c kh nng truy cp nhiu h thng filekhc nhau, h thng file ca Linux vn phi m bo cung cp cho ngi dng mt giaodin nht qun i vi cc file, bo v cc file trn cc h thng khc nhau, ti u cc thao

    tc truy cp vo thit b... thc hin c iu ny, Linux s dng mt h thng file cbit gi l h thng file o VFS (Virtual File System).

    H thng file o VFS c thit k cung cp mt giao din thng nht v cc file clu tr trn cc thit b. Hnh 3.3 m t mi quan h gia VFS vi cc h thng file thc vcc thit b lu tr.

    Programatic file system interface

    System call interface

    Virtual File System

    Buffer cache

    Ext2 inix sdos Vfat

    Device driver

    Physical hardware

    Inode cache

    Directorycache

    Hnh 3.3. H thng file o VFS

    48

  • 8/8/2019 Unix - Nguyn Tr Thnh

    50/212

    VFS c trch nhim cung cp cho chng trnh ngi dng mt giao din nht qun v hthng file thng qua cc lnh gi h thng (system call). Mi khi c mt yu cu truy cpfile, VFS s da vo cc h thng file thc tm kim file yu cu trn cc