Professional Documents
Culture Documents
Tc gi: Kostromin V. A.
Dch v cng tc: Phan Vnh Thnh
Phin bn: 0.9.4
Ngy 13 thng 9 nm 2006
Mc lc
1 HH Linux: lch s v cc bn phn phi
1.1 Th no l HH ni chung v Linux ni ring
1.1.1 Cc h iu hnh dng UNIX . . . . . .
1.1.2 Mt cht v lch s . . . . . . . . . . . .
1.1.3 c im chnh ca HH Linux . . . .
1.2 Bn phn phi Linux . . . . . . . . . . . . . . .
1.3 Yu cu i vi my tnh . . . . . . . . . . . . .
1.4 Ly Linux u? . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
3
6
8
11
12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
14
16
18
18
18
20
22
23
23
25
26
27
28
28
30
31
34
34
34
36
36
39
39
40
iv
MC LC
3 Khi ng Linux ln u
3.1 Khi ng HH Linux . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 ng nhp vo h thng . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Console, terminal o v shell . . . . . . . . . . . . . . . . . . . . . .
3.4 Son tho dng lnh. Lch s lnh . . . . . . . . . . . . . . . . . . .
3.5 Ngng lm vic vi Linux . . . . . . . . . . . . . . . . . . . . . . . .
3.6 Tr gip khi dng Linux . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Cc ngun thng tin tr gip . . . . . . . . . . . . . . . . . .
3.6.2 Cc trang tr gip man . . . . . . . . . . . . . . . . . . . . . .
3.6.3 Cu lnh info . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.4 Cu lnh help . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.5 Ti liu i km vi bn phn phi v chng trnh ng dng
3.6.6 Cu lnh xman . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.7 Cu lnh helptool . . . . . . . . . . . . . . . . . . . . . . . .
3.6.8 Sch v Internet . . . . . . . . . . . . . . . . . . . . . . . . . .
43
43
44
47
49
51
53
53
54
55
56
56
57
57
57
60
60
63
65
70
70
71
72
72
73
79
80
80
80
81
82
82
83
83
86
87
88
89
91
92
94
95
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
MC LC
5 Bash
100
5.1 H v l g? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.2 Cc k t c bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.3 Thc thi cc cu lnh . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3.1 Thao tc ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3.2 Thao tc & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.3.3 Thao tc && v || . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4 u vo/u ra tiu chun . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4.1 Dng d liu vo ra . . . . . . . . . . . . . . . . . . . . . . . 103
5.4.2 Lnh echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.4.3 Lnh cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.5 Chuyn hng u vo/u ra, ng ng v b lc . . . . . . . . . . 105
5.5.1 S dng >, < v . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.5.2 S dng | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.5.3 B lc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.6 Tham bin v cc bin s. Mi trng ca h v . . . . . . . . . . . . 108
5.6.1 Cc dng tham bin khc nhau . . . . . . . . . . . . . . . . . 108
5.6.2 Du nhc ca h v . . . . . . . . . . . . . . . . . . . . . . . . 110
5.6.3 Bin mi trng PATH . . . . . . . . . . . . . . . . . . . . . . . 111
5.6.4 Bin mi trng IFS . . . . . . . . . . . . . . . . . . . . . . . 112
5.6.5 Th mc hin thi v th mc c nhn . . . . . . . . . . . . 112
5.6.6 Cu lnh export . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.7 Khai trin biu thc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.7.1 Khai trin du ngoc . . . . . . . . . . . . . . . . . . . . . . . 113
5.7.2 Thay th du ng (Tilde Expansion) . . . . . . . . . . . . . . 114
5.7.3 Php th cc tham bin v bin s . . . . . . . . . . . . . . . 114
5.7.4 Php th cc cu lnh . . . . . . . . . . . . . . . . . . . . . . . 114
5.7.5 Php th s hc (Arithmetic Expansion) . . . . . . . . . . . . 115
5.7.6 Phn chia t (word splitting) . . . . . . . . . . . . . . . . . . 115
5.7.7 Khai trin cc mu tn tp tin v th mc (Pathname Expansion) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.7.8 Xa cc k t c bit . . . . . . . . . . . . . . . . . . . . . . . 116
5.8 Shell - mt ngn ng lp trnh . . . . . . . . . . . . . . . . . . . . . . 116
5.8.1 Ton t if v test (hoc [ ]) . . . . . . . . . . . . . . . . . . 117
5.8.2 Ton t test v iu kin ca biu thc . . . . . . . . . . . . 117
5.8.3 Ton t case . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.8.4 Ton t select . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.8.5 Ton t for . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.8.6 Ton t while v until . . . . . . . . . . . . . . . . . . . . . 122
5.8.7 Cc hm s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.8.8 Tham s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.8.9 Bin ni b (local) . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.9 Script ca h v v lnh source . . . . . . . . . . . . . . . . . . . . . 124
5.10 Cu lnh sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
vi
6 S dng Midnight Commander
6.1 Ci t chng trnh Midnight Commander . .
6.2 V ngoi ca mn hnh Midnight Commander
6.3 Tr gip . . . . . . . . . . . . . . . . . . . . . . .
6.4 S dng chut . . . . . . . . . . . . . . . . . . .
6.5 iu khin cc bng . . . . . . . . . . . . . . . .
6.5.1 Dng danh sch tp tin . . . . . . . . . .
6.5.2 Nhng ch hin th khc . . . . . . .
6.5.3 Cc t hp phm iu khin bng . . . .
MC LC
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
126
126
127
129
130
131
131
134
136
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
127
128
131
134
135
135
136
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
46
50
52
54
55
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
Cu trc th mc ca Linux . . . . . . . . . . .
Nhng tp tin thit b chnh . . . . . . . . . . .
Nhng ty chn chnh ca lnh cp . . . . . . .
Tiu ch tm kim ca cu lnh find. . . . . . .
Nhng ty chn chnh ca tar . . . . . . . . .
Nhng ty chn chnh ca chng trnh gzip
Nhng ty chn chnh ca chng trnh bzip2
Nhng ty chn chnh ca cu lnh mount . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
66
71
81
85
89
92
93
98
5.1
5.2
5.3
5.4
Cc cu lnh b lc . . . . . . .
Thay th cc tham bin c bit
K t xc nh dng du nhc .
Cc k t to mu . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
108
109
111
116
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Li m u
y l bn dch cun Linux cho ngi dng (sri sch t hc) ca Kostromin
Victor Alexeevich cng thm mt vi kinh nghim s dng Linux ca ngi dch.
Bn gc c vit trn ting Nga. Theo yu cu ca Kostromin A. V., xin c
a ra cc lin kt ti bn gc sau y:
http://rus-linux.net/book1.php?name=book1/oglavl
http://linux-ve.chat.ru/
Cm n
Trc tin cn cm n Kostromin V. A. vit mt cun sch v Linux cho
ngi dng mi tuyt vi, hai bc Nguyn i Qu v Nguyn ng Hong
Tun gip trong vic s dng LATEX. Bc Nguyn i Qu c v sa
cho phin bn 0.9. Xin hy gi th nhc ngi dch ti teppi82@gmail.com nu
nh ngi dch c qun ai .
Bn quyn
Cun T hc s dng Linux ny s dng bn quyn Creative Commons Public
License 2.5 (http://creativecommons.org/licenses/by/2.5/).
Tc gi Kostromin V. A. cng nh ngi dch v cng tc khng chu trch
nhim v hu qu do vic s dng cun sch ny gy ra. Mi ngh sa i,
thng bo li chnh t, li kin thc ca bn dch cng nh ngh gip dch
xin gi cho Phan Vnh Thnh theo a ch teppi82@gmail.com.
Chng 1
HH Linux: lch s v cc bn phn phi
Just for fun Linus Torvalds.
Ngi dch: Lch s lun l im khi u khi nghin cu mt ngnh khoa hc no .
Khng c ngoi l i vi Ton hc, Vt l, mn chuyn ngnh ca ti Ho hc v tt nhin
c HH Linux. Trong chng u tin ca cun sch T hc s dng Linux ny chng ta
s tr li ngn gn cho cu hi Linux l g?. ng thi ni i dng v nhng im c bit
ca Linux, yu cu ca Linux i vi phn cng, khi nim bn phn phi Linux, v cch c
c nhng bn phn phi ny. Hn th na bn c s hiu t nhiu v OpenSource, GNU
v FSF.
1.1
1.1.1
Ngi dch: Ngi m khng ngi ngn ng k nhn hiu thng mi bt k th g, k c Yoga m bt
ngun t n .
1.1.2
Mt cht v lch s
Trong th ny Linus cho bit anh ang pht trin mt h iu hnh t do cho
cc my tnh i 386 (486) v yu cu nhng ai quan tm cho bit nhng thnh
phn no ca h thng cho ngi dng cn phi c u tin. Nhng ngi dng
trong nhm tin tc ny lm vic di h iu hnh Minux do gio s Andy
2
protocol
Ngi dch: Rt th v l sau khi Linus Torvalds pht trin HH ca mnh th gia anh v gio s Andy
Tanenbaum n ra mt cuc tranh ci. Nu bn c quan tm th c th tm c nhng th m hai ngi ny
gi cho nhau trong nhm tin tc ni trn, hoc tm c cun Linux: Just for fun, mt cun sch ni v i t
ca Linus Torvalds n thi im anh lm cho Transmeta v vic pht trin HH Linux.
4
Ngi dch: Tht ra lc u nhn Linux c phn phi theo bn quyn m FSF khng khng nhn
l t do v nghim cm phn phi thng mi. Bn quyn ny c th tm thy trong nhng phin bn u
tin ca nhn trn ftp.kernel.org, v d ftp://ftp.kernel.org/pub/linux/kernel/Historic/old-versions/RELNOTES0.01. Bn quyn c i sang GPL t phin bn 0.12, hy xem RELNOTES-0.12 theo a ch trn.
1.1.3
c im chnh ca HH Linux
hoc mt ngi dng chy vi tin trnh ging nhau, hoc nhiu ngi dng chy cng mt chng trnh
1.2
10
Ngi dch: iu ny ch ng vi cc phin bn nhn trc 2.6. T 2.6 tr i Linus v cc nh pht trin
khc th nghim dng bn s.
1.3 Yu cu i vi my tnh
11
1.3
Yu cu i vi my tnh
12
1.4
Ly Linux u?12
1.4 Ly Linux u?
13
Chng 2
Ci t HH Linux trn cng my tnh
vi Windows
Software is like sex, its good when its free Linus Torvalds.
Thng thng trn cc a ca bn phn phi Linux c hng dn ngn gn cch ci
t Linux. Ngoi ra, trn Internet bn c th tm thy rt nhiu cun sch n v vn ny.
V tt c cc bn phn phi ln (Debian, Slackware, Fedora, Mandrake, ...) u c cun
hng dn ci t rt chi tit, cho mi tnh hung s dng. Hy ch i v hy vng trong
tng lai khng xa s c bn dch Ting Vit ca nhng cun sch ny. Chnh v vy trong
cun sch ny, tc gi s khng a ra cc bc c th ca vic ci t, m xin bn c
hy tm cc cun hng dn tng ng. Thay vo l nhng g bn cn bit v chun b
trc khi ci t, ng thi, tc gi s i c th v chi tit vo nhng g c bit khi ci t
Linux trn my tnh c mt trong cc h iu hnh (HH) Windows cng nh vic khi
ng nhiu h iu hnh.
2.1
Chun b ci t
2.1 Chun b ci t
15
nh sn xut;
s hiu phin bn.
Controller a cng: loi (IDE hay SCSI) v dung lng ca a (nu
nh bn c dng a IDE, th cn kim tra xem BIOS c h tr vic truy
cp ch LBA hay khng):
16
nh sn xut;
s mu m (hay chipset s dng)
dung lng b nh;
Mn hnh
nh sn xut
s mu m;
cc gi tr gii hn (min, max) ca tn s lm mi theo chiu dc v
theo chiu ngang (nhng gi tr ny bn c ch c th tm thy trong
ti liu i km vi mn hnh, Windows khng hin th nhng gi tr
ny, v chng rt quan trng trong khi cu hnh giao din ha).
Nu nh bn c mun kt ni mng (m UNIX ni chung l HH dnh
cho mng), th hy ghi li nhng d liu sau:
nh sn xut v s mu m cc mng;
a ch IP ca mnh;
tn ca my tnh trong mng;
mt n mng con (subnet mask);
a ch IP ca gateway;
a ch IP ca cc my ch tn min (DNS server);
a ch IP ca my ch WINS(Windows Internet Name Service);
tn min ca cng ty bn c.
Loi v nh sn xut cc m thanh v game controller (nu nh c)
2.2
17
18
2.3
2.3.1
2.3.2
19
lnh v h thng trnh n (thc n). Chng trnh sfdisk c vi kh nng cao
hn, v d, cho php thao tc trn cc phn vng c ca a.
DOS s dng trng begin v end ca bng phn vng v Interrupt 13 ca
BIOS (Int 13h) truy cp ti a, v th khng th s dng a c dung lng
ln hn 8,4 Gbyte, ngay c vi cc BIOS mi (v vn ny s ni n sau),
cn phn vng th khng th ln hn 2,1 Gbyte (nhng y l do hn ch ca h
thng tp tin FAT16).
Linux th ch s dng trng start v length ca bng phn vng a v h
tr cc phn vng cha n 232 sector, tc l dung lng c th t 2 Tbyte
V trong bng chia a ch c 4 dng cho cc phn vng, s phn vng chnh
trn a ngay t u d hn ch: khng th ln hn 4. Khi m 4 phn vng tr
thnh t, th ngi ta sng ch ra phn vng lgc. Mt trong s cc phn vng
chnh tr thnh m rng (loi phn vng - 5 hay F hay 85 trong h c s mi
su). V trong phn vng m rng ngi ta to ra cc phn vng lgc. Phn
vng m rng khng c s dng trc tip m ch dng ghi cc phn vng
lgc. Sector u tin ca phn vng m rng ghi nh bng phn vng vi bn
u vo: mt dng cho phn vng lgc, mt cho phn vng m rng khc, cn
hai ci cn li khng c s dng. Mi phn vng m rng c mt bng chia
ca mnh, trong bng ny, cng ging nh trong phn vng m rng chnh, ch
s dng c hai dng a ra mt phn vng lgc v mt phn vng m rng.
Nh vy, thu c mt chui cc mt xch t bng phn vng, mt xch u tin
m t ba phn vng chnh, v mi mt xch tip theo mt phn vng lgc v
v tr ca bng tip theo.
Chng trnh sfdisk trn Linux cho thy ton b chui ny:
[root]# sfdisk -l -x /dev/hda
Disk /dev/hda: 784 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device
/dev/hda1
/dev/hda2
/dev/hda3
/dev/hda4
Boot
*
Start
0+
190
0
0
End
189
783
#cyls
190594
0
0
#blocks
1526143+
4771305
0
0
Id
6
5
0
0
System
FAT16
Extended
Empty
Empty
/dev/hda5
190+
381
190
190
380
783
189
189
191403
0
0
1534176
3237097+
0
0
6
5
0
0
FAT16
Extended
Empty
Empty
/dev/hda6
381+
381
381
381
783
380
380
380
4030
0
0
3237066
0
0
0
7
0
0
0
HPFS/NTFS
Empty
Empty
Empty
S phn vng lgc theo nguyn tc khng hn ch, v mi phn vng lgc
c th cha bng phn vng v cc phn vng lgc ca mnh. Tuy nhin trn
thc th vn c nhng hn ch. V d, Linux khng th lm vic vi hn 15 phn
vng trn cc a SCSI v hn 63 phn vng trn a IDE.
Phn vng m rng trn mt a vt l, hay trong mt phn vng m rng
cha n (c th gi l m) ch c th lm mt: khng mt chng trnh phn
20
2.3.3
Dch chuyn
0x000
0x1BE
0x1FE
21
22
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINNT="Windows NT Workstation 4"
C:\="Microsoft Windows"
C:\BOOTSECT.LNX="Linux"
2.3.4
Vn vi cc a ln
23
2.4
2.4.1
24
2.4.2
25
26
Ngoi ra, cn nh rng, LILO trong thi gian khi ng cn nhng tp tin
sau:
/boot/boot.b;
/boot/map (to ra bi lnh /sbin/lilo);
tt c phin bn nhn khi ng (nu bn c chn phin bn nhn khi
khi ng);
sector khi ng ca cc h iu hnh khc m bn c mun khi ng
qua LILO;
tp tin cha cc thng bo a ra khi khi ng (nu c xc nh).
2.4.3
27
Thi gian gn y trong thnh phn bn phn phi Linux thng c chng
trnh khi ng GRUB.
Trong thnh phn OS/2 ca cng ty IBM c chng trnh khi ng Boot
Manager. Trong rt nhiu hng dn ngi ta khuyn dng chng trnh
ny ti chc khi ng nhiu HH.
Trong cc ngun thng tin khc nhau cn nhc n chng trnh System
Commander;
Thm mt trnh khi ng khc c trong thnh phn gi PartitionMagic
ca cng ty Power Quest. Chng ta s ni v chng trnh ny trong phn
nh tip theo.
2.4.4
Cc phng n khi ng
Trong nhng phn tip theo tc gi s cho bit cch ci t Linux, s dng
tt c bn phng n khi ng: qua trnh khi ng NT Loader, trnh khi ng
GRUB, trnh khi ng LILO v trnh khi ng loadlin.exe. Tuy nhin trc
khi ci t trnh khi ng cn chun b cc phn vng trn a, hay t nht l
ngh cch t chc chng.
28
2.5
2.5.1
H iu hnh
Windows 95
Windows 98
Windows NT
Windows 2000
Linux Red Hat
tion vi KDE)
Tuy nhin xin hy nh rng, khng nhng phi tnh kch thc cc tp tin ca
bn thn h iu hnh, m cn phi tnh c kch thc ca cc chng trnh bn
c d tnh chy. V cn phi dnh mt phn d tr khng nh cho cc chng
trnh s ci t sau ny (khng th trnh khi!). Hy tnh rng, 700 Mbyte dnh
cho Linux trong bng ni trn ch dnh cho cc chng trnh ci t cng vi
Linux theo mc nh, trong s c, v d, chng trnh son tho rt mnh
Lyx. i vi Windows cng tng t nh vy.
Theo kinh nghim ca tc gi th lm vic vi Windows 95/98, Windows
NT v Linux cc phn vng vi kch thc 800-1000 Mbyte l (tt nhin, nu
bn c khng ci t cc gi chng trnh ln, nh OpenOffice.Org), cn i vi
Windows 200 th cn phn vng ln hn.
By gi chng ta s xem xt vn chia cc phn vng cho Linux. y
khng th ch chia mt phn vng. Th nht, cn chia mt phn vng swap
ring bit cho Linux. Khi xc nh dung lng ca phn vng swap Linux cn
tnh n nhng yu t sau:
Trong Linux, RAM v khng gian swap hp li to thnh b nh o chung.
V d, nu bn c c 256 MByte RAM v 128 Mbyte khng gian swap, th
s c 384 Mbyte b nh o.
29
Xin cm n bc Tony L v mc ny
30
Tt nhin, nu nh bn c ch c Windows 95 vi FAT16, th c th Windows trn phn vng u tin. Nu nh trn my ci t Windows NT hay
c FAT32, th mt phn vng FAT16 cng khng tha. Th nht, k c trong
trng hp h thng c vn , bn c c th khi ng t a mm DOS (tm
thi khi cha lm quen vi Linux mt cch tng tn) v thy c rng a
cng lm vic bnh thng. Th hai, h thng tp tin FAT16 c h tr trn
mi HH, trong c Linux, v th phn vng ny c th phc v cho vic trao
i tp tin gia cc h thng. Nhng khng nn phn vng ny ln, v FAT16
s dng khng gian a rt khng hp l. Chnh v vy hy dnh cho phn vng
ny khong 256 hoc 512 Mbyte.
Nhng li khuyn ny a ra vi gi thit rng, bn c ch c mt a cng.
Nu nh bn c c 2, th vn s dng c nhng li khuyn ny, ch c iu
phn vng swap tt hn t trn a khc vi a dnh cho Linux. Ngi ta ni
rng nh vy tng tc lm vic trong Linux (cng d hiu v u c t phi
chy hn).
2.5.2
31
Tuy nhin, theo kin ca ngi dng th khng nn s dng chng trnh ny.
V th li khuyn ca tc gi vi bn c, nhng ngi dng Linux mi nu
nh mun phn chia li a m khng lm mt thng tin, th hy tm chng
trnh Partition Magic ca cng ty Power Quest (http://www.powerquest.com) v
s dng chng trnh ny.
Th nht, chng trnh ny cho php phn chia li a m khng lm mt
thng tin (tc l, tt c nhng ci t v cu hnh trc s c ghi li). Khi
ny, khng ch to c phn vng mi t ch trng trn a, m cn c th di
chuyn cc phn vng c theo mun.
Th hai, chng trnh ny (thm ch trong phin bn dnh cho DOS) cung
cp mt giao din ha d s dng c h tr chut, v mi thao tc cng nh
thay i u thy r rng. iu ny rt quan trng vi ngi dng mi.
Khi to phn vng cn khng cho ranh gii gia cc phn vng ct ln
nhau.
Tc gi cho rng, nhng thng tin a bn c lp k hoch v thc
hin vic phn chia a thnh cc phn vng. V th tip theo chng ta s xem
xt cc phng n ci t hai HH trn mt my tnh.
2.6
Trong phn ny, khi ni v Windows NT xin ngm hiu c Windows 2000 v NT,
v quan h ca chng i vi vic ci t Linux hon ton ging nhau. Chng
ta gi thit l Windows NT c ci vo phn vng /dev/hda2 (nu nh bn
c nh, /dev/hda1 s dnh cho phn vng FAT16). Nu HH Windows NT
c ci t, ngha l trnh khi ng OS Loader cng c ci t. V nh
th c th s dng chng trnh ny khi ng Linux. Tc gi hy vng rng
bn c sao lu nhng thng tin c gi tr ca mnh. Cc bc ci t c th
m t nh sau:
1. Nu nh bn c cha ci t Linux bao gi, th trc khi bt u cn
chun b a mm khi ng v phc hi Windows NT. to a mm khi
ng ch cn nh dng li a mm, ri sao chp ln cc tp tin ntldr,
ntdetect.com v boot.ini t th mc gc ca a khi ng NT. Chng
trnh to a phc hi Windows 2000/XP c th chy t trnh n h thng
(lnh Backup trong Start/Program/Accessories).
2. Dng chng trnh Partition Magic ly mt phn a trng v t to
ra phn vng vi dng ext2(3) (h thng tp tin Linux) v phn vng swap.
Cch tnh kch thc ca chng ni trn.
3. Ci t Linux theo ch dn ca bn phn phi. Trong khi ci t cn ch
n nhng im sau:
th nht, trong qu trnh ci t nht nh phi to ra cc a mm
khi ng Linux. Tc l cn tr li Yes, make a BOOT DISK (hay
tng t th, ty thuc vo bn phn phi) khi c hi c to a
mm khi ng hay khng. a mm ny s c dng n sau.
Ngoi ra, c th s dng a mm ny khi ng Linux. y cng
32
33
34
2.7
2.7.1
Ci t GRUB
2.7.2
Cu hnh GRUB
35
36
2.8
2.8.1
Ghi ch. Trnh khi ng LILO khng bt buc phi ci t vo bn ghi khi ng chnh ca a, LILO c
th nm bn ghi khi ng ca phn vng chnh c kch hot v cha th mc gc ca Linux hoc thm
ch trn phn vng lgc trong phn vng m rng. Trong trng hp MBR cn phi c kh nng np LILO,
v d khi MBR l trnh khi ng ca MS-DOS hay Windows. Tuy nhin tc gi cha nhn thy s cn thit
ca ng dng ny (nu chn LILO lm trnh khi ng chnh th hy s dng cho trn b), v th chng ta
s khng xem xt n.
37
read-only
other = /dev/hda1
table = /dev/hda
label = dos
Vi li gii thch cho v d: Dng boot cho bit thit b khi ng.
Dng compact bt ch nn tp tin map tp tin cha c tnh ca nhn
c khi ng; tnh nng (nn) ny tng tc ca khi ng u.
Cu lnh message dng a ra thng bo theo mun khi khi ng.
Bt u t dng image l cc phn nh ca tp tin cu hnh, mi phn
tng ng vi mt h iu hnh s khi ng theo la chn ca ngi dng.
Trong mi phn nh vy c mt dng label. Trn dng ny ghi tn cn
nhp vo du nhc LILO hay tn s hin th trong trnh n ca LILO
c th chn HH mun khi ng. Nu nh tn khng c nhp sau
khong thi gian ch trn dng delay (tnh theo phn mi giy cn nhn
vi 0,1 giy), th s khi ng HH theo mc nh. Trong v d ny, s khi
ng Linux theo mc nh, v phn cu hnh tng ng vi Linux nm u
tin trong tp tin. C th ch ra h iu hnh c khi ng theo mc nh
khi thm mt dng c dng default=dos, tc l s dng tn t trn
dng label.
Dng table=<device> cho bit tn thit b cha bng phn chia a. LILO
s khng a thng tin v phn chia a cho h iu hnh c khi ng
nu bin ny khng c a ra. (Mt s h iu hnh c cng c khc
xc nh l c khi ng t phn vng no.) ng qun rng, cn thc
hin cu lnh /sbin/lilo, sau khi thay i ch dn n bng phn chia
a, tc l thay i bin table. Nu t dng (gi l phn nh th tt hn)
other = /dev/hda1 trong tp tin /etc/lilo.conf, th trong th mc
gc ca a /dev/hda1 (a C: trong h thng thut ng Microsoft) cn c
trnh khi ng ph (khng phi l chnh). Trn mt my ca tc gi
nm trnh khi ng NT Loader (v Windows NT c ci t trc Linux),
v LILO khi ng thnh cng Windows NT. Ch cn t thi gian ch khi
ng trong tp tin boot.ini bng khng, khng thy trnh n khi ng
ca NT Loader. Tuy nhin, nu v mt l do no bn mun thy trnh
n ny th gi tr timeout trong tp tin boot.ini cn t khc khng (thi
gian ch c tnh theo giy). iu ny c th cn thit khi mun khi ng
c Windows 98 t trnh n ca NT Loader (trong trng hp ny s c 3
HH: Linux, Windows NT v Windows 98, trong trnh n ca LILO nu
chn dos th s hin ra trnh n ca NT Loader ri t chn mt trong
hai HH Windows khi ng).
Nu bn c mun khi ng Windows trc tip t LILO, th hy thm
phn nh sau vo /etc/lilo.conf:
other = /boot/bootsect.dos
label = win
trong bootsect.dos ly t th mc gc ca a cha NT Loader.
38
39
2.8.2
2.8.3
40
2.9
mt s bn phn phi cn c gi ci t cho chng trnh ny, thng thng ghi tp tin loadlin.exe vo th
mc ca ngi dng root
9
Ghi ch. zImage l nh dng nh phn c ca nhn, bzImage l nh dng mi hn (s phin bn nhn ln
hn 1.3.73) c kch thc ln ti 1 Mbyte, do , nhn khi gii nn c kch thc ln ti 2 Mbyte. Tip theo
chng ta s ch ni v cc tp tin zImage, mc d bn c c th thay th zImage thnh bzImage
41
42
Chng 3
Khi ng Linux ln u
Vn s khi u nan Trung Quc
Ngi dch: Sau khi ci t rt c th bn c s khng bit bc tip theo phi lm g.
Bt my tnh ln, i h thng khi ng xong v ... ngi nhn. Phi lm g c th tip tc
lm vic vi h thng Linux? Sau khi lm vic xong th tt my th no? C nhng chng
trnh no nn bit? Trong khi lm vic c vn ny sinh th tm cu tr li u? Trong
chng ny chng ta s tm thy cu tr li cho nhng cu hi trn.
3.1
Khi ng HH Linux
Ngi dch: Thng tin trong phn ny ca bn gc ting Nga hi c v trnh khi ng bn gc s dng
l LILO. Bn dch cp nht li v s dng trnh khi ng GRUB
2
Trong nhng bn phn phi Linux mi, v d SuSE Linux, c s dng mn hnh flash. Do c th bn
c s khng thy nhng thng bo ny. Trong trng hp , hy nhn phm tng ng chuyn v mn
hnh khi ng bnh thng. Phm ny thng l <Esc>.
44
Khi ng Linux ln u
3.2
ng nhp vo h thng
45
46
Khi ng Linux ln u
3.3
47
48
Khi ng Linux ln u
49
3.4
50
Phm
<>,
<Ctrl>+<F>
<>,
<Ctrl>+<B>
<Esc>+<F>
<Esc>+<B>
<Home>,
<Ctrl>+<A>
<End>,
<Ctrl>+<E>
<Del>,
<Ctrl>+<D>
<Backspase>
<Enter>,
<Ctrl>+<M>
<Ctrl>+<L>
<Ctrl>+<T>
<Esc>+<T>
<Ctrl>+<K>
<Ctrl>+<U>
<Esc>+<D>
<Esc>+<Del>
<Ctrl>+<W>
<Ctrl>+<Y>
<Esc>+<C>
<Esc>+<U>
<Esc>+<L>
<Shift>+
<PgUp>,
<Shift>+
<PgDown>
<Ctrl>+<C>
<Ctrl>+<D>
Khi ng Linux ln u
51
3.5
environment variable
52
Khi ng Linux ln u
Cng c th cu hnh nhng ngi dng khc thc hin c shutdown, v d qua sudo.
53
3.6
3.6.1
54
3.6.2
Khi ng Linux ln u
Ni dung
Cc tp tin header (thng nm trong /usr/include)
Chng trnh hoc cu lnh ca ngi dng
Cu lnh dng qun tr h thng
Gi h thng (system call, hm do nhn cung cp)
Gi th vin (library call, chng trnh con, hm trong th vin ca ng dng)
Thit b (tp tin c bit, thng nm trong /dev)
nh dng tp tin v quy c, v d /etc/passwd
Tr chi
Khc (bao gm cc gi macro v quy c, v d man(7), groff(7)
Nhn (kernel routines)
cc lnh Tcl/Tk
55
3.6.3
Cu lnh info
cron l chng trnh chy t ng cc cng vic theo thi gian nh.
56
Khi ng Linux ln u
3.6.4
Cu lnh help
3.6.5
57
3.6.6
Cu lnh xman
y l chng trnh cho php xem cc trang tr gip man khi lm vic giao
din ho (GUI). Vic tm kim v hin th cc trang tr gip c thc hin
bng cch nhn cc nt v trnh n. Cn li (theo thng tin hin th) xman cng
ging nh man.
3.6.7
Cu lnh helptool
3.6.8
Sch v Internet
Tt nhin, hc Linux d dng v n gin nht khi c mt cun sch tt. Trc
tin bn cn c ti liu hng dn i km vi bn phn phi ca mnh. Cc bn
phn phi ln nh Debian, SuSE, Fedora,. . . u c nhng ti liu ny (rt c
th c dch sang ting Vit). Rt tic ngi dch cha c cun sch ting
Vit no v Linux do khng th gii thiu vi bn c. Tt nhin nu bn c
kt ni Internet (by gi khng cn qu xa x) v mt cht ting Anh th c th
tm c cu tr li cho mi cu hi ca mnh. Ti xin a ra mt s a ch sau
lm bc khi u cho bn c trong bin thng tin v b bn ny.
58
Khi ng Linux ln u
4. http://vnoss.net/dokuwiki/doku.php?id=linux:tailieutiengviet
trn trang ny tng hp tt c nhng ti liu ting Vit v Linux, rt c
th bn s tm thy ti liu v ti mnh cn tm hiu trn trang ny.
5. http://kde-vi.org trang web ca nhm dch giao din KDE sang
ting Vit.
59
Chng 4
Lm quen vi h thng tp tin ext3fs1
By gi bn bit cch khi ng v dng h thng Linux, n lc lm quen vi mt
trong nhng thnh phn chnh v quan trng ca Linux l h thng tp tin. H thng tp
tin l cu trc nh nhn ca h iu hnh c th cung cp cho ngi dng v cc tin
trnh ti nguyn ca h thng dng b nh lu di trn cc a lu2 thng tin: a cng,
a t, CD, DVD, v.v. . .
Mi h thng tp tin, ging nh mt ci a n, c hai mt. Mt mt ca n lun quay v
pha ngi dng (hay ni chnh xc hn l quay v pha ng dng), chng ta tm gi n l
mt trc. T pha mt trc ny ngi dng thy h thng tp tin l mt cu trc lgc ca
cc th mc v tp tin. Mt cn li, m ngi dng khng thy, quay v pha chnh bn thn
a lu to thnh mt vng bn trong ca h thng tp tin i vi ngi dng, chng ta tm
gi l mt sau. Mt ny ca h thng tp tin c cu trc khng n gin cht no. V y
thc hin cc c ch ghi tp tin ln cc a lu khc nhau, thc hin vic truy cp (chn
thng tin cn thit) v nhiu thao tc khc.
Trong chng hin ti chng ta s xem xt mt quay v pha ngi dng ca h thng tp
tin. Mt cn li s dnh cho mt chng sch sau. Cn ni thm l chng ta s xem xt
mt h thng tp tin c th ext3fs, h thng tp tin c bn ca Linux n thi im hin nay.
Cn c nhng h thng tp tin khc nhng chng ta s cp n chng mun hn.
4.1
Tp tin v tn ca chng
61
62
-l
1
2
2
1
teppi82
teppi82
teppi82
teppi82
4.2 Th mc
63
4.2
Th mc
Nu nh cu trc tp tin khng cho php s dng g khc ngoi tn tp tin (tc
l tt c cc tp tin nm trn mt danh sch chung ging nh cc ht ct trn bi
bin) th thm ch c khi khng c gii hn v di ca tn, rt kh c th tm
n tp tin cn thit. Hy tng tng bn c mt danh sch khong vi nghn
tp tin! Xin ng nghi ng, mt h thng Linux hon chnh s c s lng tp tin
cn ln hn th. V th m cc tp tin c t chc vo cc th mc, cc th mc
c th nm trong cc th mc khc, v.v. . . Kt qu l chng ta thu c mt cu
trc th mc c phn bc bt u t mt th mc gc. Mi th mc (con) c th
cha cc tp tin ring l v cc th mc con ca n.
Cu trc phn bc ca th mc thng c minh ho bng cy th mc,
trn mi th mc l mt nt ca cy, cn tp tin l cc l. Trn MS
Windows hoc DOS cu trc th mc nh vy c trn mi a (tc l chng ta
c khng phi mt cy m mt rng th mc) v th mc gc ca mi cu
trc tp tin c nh du bng mt ch ci Latinh (v do c mt s hn
ch). Trn Linux v UNIX ni chung ch c mt cu trc th mc duy nht cho
tt c cc a lu, v th mc gc duy nht ca cu trc ny c k hiu bng
du gch cho /. C th a vo th mc gc ny mt s lng khng hn ch
cc th mc nm trn cc a lu khc nhau (thng ni l gn h thng tp
tin hoc gn a lu).
Tn ca th mc cng c t theo nhng quy nh nh i vi tn tp tin.
V ni chung ngoi cu trc bn trong ca mnh th th mc khng khc g so
vi nhng tp tin thng thng, v d tp tin vn bn (text file).
Tn y ca tp tin (hoc cn gi l ng dn6 n tp tin) l danh sch
tn ca cc th mc bao gm th mc cha tp tin v cc th mc m, bt u
t th mc gc / v kt thc l bn thn tn ca tp tin. Trong ng dn ny
tn ca cc th mc con cch nhau bi du gch cho / dng k hiu th mc
gc nh ni trn. V d /home/teppi82/projects/l4u/ext3fs.tex l
tn y ca tp tin ti ang nhp vo trn my ca mnh.
H v shell lu gi tr ca th mc hin thi, tc l th mc m ngi
dng ang lm vic trong . C mt cu lnh cho bit tn ca th mc hin
thi, l lnh pwd. Ghi ch: nu ni mt cch chnh xc, th th mc hin thi
lun i lin vi mi tin trnh chy (trong c h v shell), v th i khi
chy mt chng trnh no trong shell c th dn n vic thay i th mc
hin thi sau khi chng trnh hon thnh cng vic.
Ngoi th mc hin thi mi ngi dng cn c mt th mc nh (home
directory, phng n dch th mc c nhn c u tin hn, v chng ta s
dng thut ng ny trong cun sch l4u). l th mc trong ngi dng c
ton quyn7 : c th to v xa cc tp tin, thay i quyn truy cp n chng,
v.v. . . Trong cu trc th mc ca Linux nhng th mc c nhn ca ngi dng
thng nm trong th mc /home v thng c tn trng vi tn ng nhp ca
6
7
y l ng dn tuyt i
Ni chnh xc hn l: c ton quyn n khi no root cha thay i chng :).
64
KDE-vi
l4u
manvi
mc
mrtg
others
SuSE
syslinux
Xfce
vim
vnlinux
vnoss
65
-l
1
1
1
1
1
2
1
teppi82
teppi82
teppi82
teppi82
teppi82
teppi82
teppi82
users
users
users
users
users
users
users
81629
98135
783
20778
2013
4096
3267
2006-09-08
2006-09-08
2006-09-08
2006-09-09
2006-09-08
2006-09-08
2006-09-08
22:11
13:54
21:58
02:48
21:34
14:25
23:13
bash.tex
caidat.tex
ChangeLog
ext3fs.tex
gioithieu.tex
images
l4u.tex
4.3
66
Cng dng
Th mc ny gm ch yu cc chng trnh, phn ln trong s
chng cn cho h thng trong thi gian khi ng (hoc trong
ch mt ngi dng khi bo tr h thng). y c lu rt
nhiu nhng cu lnh thng dng ca Linux.
/boot
Gm cc tp tin c nh cn cho khi ng h thng, trong
c nhn (kernel). Tp tin trong th mc ny ch cn trong thi
gian khi ng8 .
/dev
Th mc cc tp tin c bit hoc cc tp tin thit b phn
cng. Chng ta s ni n nhng tp tin ny ngay sau trong
mt phn ring. Bn c c th xem qua man mknod (mknode(1)).
/etc
Th mc ny v cc th mc con ca n lu phn ln nhng
d liu cn cho qu trnh khi ng ban u ca h thng v
lu nhng tp tin cu hnh chnh. V d, trong /etc c tp tin
inittab xc nh cu hnh khi ng, v tp tin ngi dng
passwd. Mt phn cc tp tin cu hnh c th nm trong cc
th mc con ca /usr. Th mc /etc khng c lu cc tp
tin chng trnh (cn t chng trong /bin hoc /sbin. Di
y chng ta s xem xt cng dng ca mt vi(!) th mc con
ca th mc /etc.
/etc/rc.d
Th mc ny lu nhng tp tin s dng trong qu trnh khi
ng h thng. Chng ta s cp chi tit v nhng tp tin
ny v qu trnh khi ng ni ring trong mt vi chng sp
ti.
/etc/skel
Khi to ngi dng mi, th nhng tp tin trong th mc ny
s c sao chp vo th mc c nhn ca ngi dng .
/etc/sysconfig Th mc lu mt vi (khng phi tt c) tp tin cu hnh h
thng.
/etc/X11
Th mc dnh cho cc tp tin cu hnh ca h thng X11 (v
d, xorg.conf).
/home
Thng thng trong th mc ny l cc th mc c nhn ca
ngi dng (tr root).
/lost+found
/mnt
/tmp
/root
/sbin
/proc
Cng dng
Th mc ny lu cc th vin chia s ca cc hm m trnh
bin dch C v cc mun (cc driver thit b) cn. Thm ch
nu trn h thng khng c trnh bin dch C no, th cc th
vin chia s vn cn thit, v chng c nhiu chng trnh
s dng. Nhng th vin ny ch np vo b nh khi c nhu
cu thc hin hm no , nh vy cho php gim kch thc
m chng trnh nm trong b nh. Trong trng hp ngc
li th cng mt m lp li nhiu ln trong cc chng trnh
khc nhau.
Th mc ny s dng phc hi h thng tp tin bng lnh
fsck. Nu fsck tm ra tp tin m khng xc nh c th
mc m th n s a tp tin vo th mc /lost+found. V
th mc m b mt, nn tp tin s nhn c tn trng vi ch
s inode ca n.
y l im gn (mount) nhng h thng tp tin gn tm thi.
Nu trn my tnh c ng thi Linux v Windows (DOS) th
th mc ny thng dng gn cc h thng tp tin FAT.
Nu bn thng gn mt vi a lu ng nh a mm, CD,
DVD, a cng ngoi, flash,v.v. . . th c th to trong th mc
ny cc th mc con cho tng a lu.
Th mc dnh cho cc tp tin tm thi. bt k thi im
ny ngi dng root cng c th xa tp tin khi th mc ny
m khng lm nh hng ln n ngi dng khc. Tuy nhin
khng nn xa nhng tp tin trong th mc ny, tr khi khi
bn bit rng tp tin hoc nhm tp tin no ang gy nh
hng n cng vic ca h thng. H thng s t ng dn dp
th mc ny theo nh k, v th khng nn lu y nhng
tp tin m bn c th s cn n.
y l th mc c nhn ca ngi dng cao cp root. Hy ch
l th mc ny khng nm cng ch vi th mc c nhn
ca nhng ngi dng khc (trong /home).
V th mc /bin ch yu lu cc tp tin thc thi (chng
trnh v tin ch ca HH) s dng trong qu trnh khi ng
v do nh qun tr chy. Trong tiu chun FHS c ni rng
cn c trong th mc ny nhng tp tin thc thi s s dng
sau khi gn thnh cng h thng tp tin /usr. t nht trong
th mc ny phi c init, mkswap, swapon, swapoff,
halt, reboot, shutdown, fdisk, fsck.*, mkfs.*,
arp, ifconfig, route.
y l im gn h thng tp tin proc cung cp thng tin
v cc tin trnh ang chy, v nhn, v cc thit b tnh,
v.v. . . y l h thng tp tin o. Chi tit bn c th c trong
man 5 proc. Cc tp tin c bit ca th mc ny s dng
nhn v gi d liu n nhn.
67
68
/usr/bin
/usr/include
/usr/lib
/usr/local
Cng dng
Th mc ny rt ln v cu trc ca n nhn chung lp li cu
trc ca th mc gc. Trong cc th mc con ca /usr l tt
c cc ng dng chnh. Theo tiu chun FHS th nn dnh cho
th mc ny mt phn vng ring hoc t hon ton trn a
s dng chung trong mng. Phn vng hoc a thng gn
ch c v trn a (phn vng) l cc tp tin cu hnh cng
nh tp tin thc thi dng chung, cc tp tin ti liu, cc tin
ch h thng v c cc tp tin thm vo (tp tin dng include).
Cc chng trnh (tin ch v ng dng) thng c ngi
dng bnh thng s dng. /usr/bin/X11 l ni thng dng
lu cc chng trnh chy trn X Window. V y cng
thng l lin kt n /usr/X11R6/bin.
Th mc con ny lu m ngun ca cc th vin tiu chun
ca ngn ng C. Ngi dng cn c t nht l quyn c i vi
th mc ny. D trong trng hp no cng ng sa nhng
tp tin trong th mc ny, v chng c cc nh pht trin
h thng kim duyt k cng (khng l bn bit v h thng
tt hn cc nh pht trin).
Trong th mc ny l cc th vin object ca cc chng trnh
con, cc th vin ng (dynamic library), mt s chng trnh
khng th gi trc tip. Cc h thng phc tp (v d Debian
Linux) c th c cc th mc con ca mnh trong th mc
ny. /usr/lib/X11 ni thng dng t cc tp tin c lin
quan n X Window v cc tp tin cu hnh ca h thng X
Window. Trn Linux thng l lin kt mm n th mc
/usr/X11R6/lib/X11.
y thng t cc chng trnh v cc th mc con (ni b)
ch dnh cho my tnh ny, bao gm:
/usr/local/bin. y thng lu nhng chng trnh
ng dng.
/usr/local/doc cc ti liu i km vi chng trnh ng
dng.
/usr/local/lib th vin v tp tin ca cc chng trnh
v h thng ni b.
/usr/local/man cc trang tr gip man.
/usr/local/sbin cc chng trnh dnh cho nh qun
tr.
/usr/local/src m ngun ca cc chng trnh.
/usr/sbin
Cng dng
Th mc ny dng cho tt c cc tp tin d liu dng chung
v c quyn truy cp l ch c. Thng dng chia s gia
cc kin trc khc nhau ca HH, v d i386, Alpha, v PPC
c th dng chung mt th mc /usr/share nm trn mt
phn vng hoc a chia s trn mng. Cn ch l th mc
ny khng dng chia s gia cc HH khc nhau hoc gia
cc phin bn khc nhau ca cng mt HH. Tiu chun FHS
khuyn dng th mc con cho mi chng trnh. Nhng th
mc sau hoc lin kt mm sau phi c trong /usr/share:
man (cc trang tr gip man), misc (nhng gi liu ty theo
kin trc khc nhau). Chng ta xem xt mt vi th mc con
ca th mc ny:
/usr/share/dict cc danh sch t (word list) ca ting
Anh dng cho cc chng trnh kim tra chnh t nh
ispell.
/usr/share/man cc trang tr gip man. Mi phn ca
man nm trong mt th mc con ring trong th mc
ny.
/usr/share/misc ( ni trn).
/usr/src
/usr/tmp
/usr/X11R6
/var
/var/adm
/var/lock
/var/log
69
70
/var/spool
Cng dng
Cc tp tin bin i trong thi gian thc hin cc chng trnh
khc nhau. Chng lu thng tin v s tin trnh (PID) v ghi
thng tin hin ghi (utmp). Tp tin trong th mc ny thng
c dn sch trong thi gian khi ng Linux.
Tp tin c t vo hng t ca cc chng trnh khc nhau,
v d:
/var/spool/at cc cng vic m at chy.
/var/spool/cron tp tin ca h thng Verb+cron+.
/var/spool/lpd tp tin trong hng i in.
/var/spool/mail tp tin thng th ca ngi dng.
/var/spool/uucp tp tin ca h thng uucp.
/var/tmp
4.4
Cc tp tin tm thi.
Dng tp tin
Trong cc phn trc chng ta xem xt hai dng tp tin l tp tin thng
thng v cc th mc. Nhng trn Linux cn c mt vi dng tp tin na.
Chng ta s lm quen vi chng trong phn ny.
Nh ni, i vi h iu hnh th tp tin ch l mt chui cc byte lin tc.
Nh vy c th dng khi nim tp tin cho cc thit b v cc i tng khc.
iu ny n gin ho s t chc v trao i cc d liu, v c th thc hin ghi
d liu vo tp tin, chuyn d liu ln cc thit b v trao i d liu gia cc
tin trnh bng cch tng t nh nhau. Trong tt c cc trng hp ny s dng
cng mt phng php da trn tng chui cc byte. Do ngoi cc tp tin
thng thng v th mc, nhng thnh phn sau cng c Linux coi l tp tin:
cc tp tin thit b
cc ng (knh) c tn (named pipe)
cc socket (t vi ngha nh t chim)
cc lin kt mm (symlinks).
4.4.1
Cc tp tin thit b
71
4.4.2
Cc ng c tn (pipes)
72
cc chng trnh khc nhau (pipe dch t ting Anh sang l ng, ng ng).
ng l phng tin ht sc thun tin v s dng rng ri trao i thng
tin gia cc tin trnh. Mt tin trnh c th c tt c nhng g m mt tin
trnh khc t vo ng. Nu c hai tin trnh c sinh ra t cng mt tin trnh
m trao i thng tin (thng xy ra), th ng c th khng c tn. Trong trng
hp ngc li cn to ra mt ng c tn, v d bng chng trnh mkfifo. Khi
ny bn thn tp tin ng ch tham gia vo s khi u trao i d liu.
4.4.3
Cc socket
Socket l kt ni gia cc tin trnh, cho php chng giao tip m khng chu
nh hng ca cc tin trnh khc. Ni chung socket v s trao i qua socket
ng vai tr ht sc quan trng trn tt c cc h thng UNIX, trong c Linux:
socket l khi nim then cht ca TCP/IP v nh vy l da trn socket xy
dng ton b Internet. Tuy nhin t pha h thng tp tin socket thc t khng
khc cc ng c tn: ch l cc im cho php ni cc chng trnh vi nhau.
Sau khi to ra kt ni, th trao i c thc hin m khng cn n socket:
d liu do nhn chuyn trc tip t chng trnh ny n chng trnh khc.
Mc d nhng tin trnh khc c th thy cc tp tin socket, nhng nhng
tin trnh khng tham gia vo kt ni hin thi khng th thc hin bt k thao
tc c hay ghi no ln tp tin socket. Trong s nhng h thng s dng socket
cn k n X Window, h thng in v h thng syslog.
4.4.4
Lin kt mm
73
4.5
74
75
76
ch X l mt trong cc k t sau:
+ thm quyn
tc b quyn
77
78
Identificator, mi ngi dng c mt ID dng s nh vy. ID ca ngi dng l duy nht, khng trng lp.
V d ID ca ngi dng cao cp root l 0.
79
4.6
80
4.6.1
4.6.2
Cu lnh mkdir
4.6.3
Cu lnh cat
81
4.6.4
Cu lnh cp
ngha
Gi li thi gian sa i tp tin v c gi li nhng quyn truy cp
c th gi li. Nu khng a ra ty chn ny th quyn truy cp ca
tp tin s c thit lp theo quyn ca ngi dng chy lnh.
R hoc r Nu ngun l th mc th sao chp th mc cng vi tt c nhng
g (tp tin, th mc con) nm trong n, tc l gi li c cu trc
ca th mc bn u (recursive).
d
Nu a ra ty chn ny th cc lin kt mm s vn l cc lin kt,
nu khng th s sao chp tp tin (ni dung) m lin kt ny ch n.
f
Ghi chn tp tin khi sao chp m khng hi li hay cnh bo.
82
4.6.5
Cu lnh mv
4.6.6
Cu lnh rm v rmdir
C mt s cch ph hi tp tin xa trn h thng tp tin c ext3fs, nhng chng ta l nhng ngi
dng mi, do khng xem xt chng. Tt nhin bn c th tham kho ti liu HOWTO c trn http:
//www.tldp.org ny trong trng hp khn cp.
4.6.7
83
4.6.8
84
interval
85
tn tp tin trong ti liu IBM LPI tutorial bn dch ting Vit do nhm cng tc
ca vnoss.org (trong c ti) thc hin c trn http://sourceforge.net/
projects/vnoss.
Cn by gi sau khi lm quen vi mu tn tp tin, chng ta quay tr li
vi cu lnh find v ni chi tit hn v nhng kh nng c th ca tiu ch tm
kim. Mt vi v d n gin ca tiu ch tm kim c trong bng 4.4.
Nhng tiu ch tm kim n gin khc bn c th tm thy trong trang man
ca cu lnh find hoc trong ti liu LPI tutorial ni trn. Cn ni rng t
nhng tiu ch n gin c th to ra nhng tiu ch phc tp hn nh cc php
lgc and, or hoc php ph nh (k hiu l du chm than !). V d, nu bn
mun tm tt c nhng tp tin c phn m rng14 l .odt v .tex, th c th
dng tiu ch tm kim nh sau: (-name *.tex -or -name *.odt). C th
s dng kt hp nh vy mt s lng bt k cc tiu ch k c tiu ch phc tp.
Nu khng ch ra php lgc c th, th coi nh dng and, tc l c th dng mt
trong hai cch ghi: (-name *.tex -and -name *.odt) hoc (-name *.tex
-name *.odt). Nu ch dng mt php lgc and hoc !, th c th b i du
ngoc, cn php lgc or v cc tiu ch phc tp hn th cn du ngoc. Trc
du ngoc cn t mt du gch cho ngc (\), cn sau du ngoc cn t mt
khong trng. V d, nu bn c mun tm th mc theo tn ca n th c th
dng lnh:
[user]$ find /usr/share -name man1 -type d
hoc dng tiu ch phc tp:
[user]$ find /usr/share \( -name man1 -and -type d \)
Trong v d sau chng ta tm tp tin theo tiu ch nh sau: hoc tn tp tin
c phn m rng *.tex, hoc kch thc tp tin nh hn 200KB.
[user]$ find ~/projects \( \( -name *.tex \) -or \( -size -200 \) \)
14
trong du ngoc v chng ta bit rng trong Linux khng c khi nim phn m rng tp tin.
86
4.6.9
Cu lnh split
87
nhau: aa, ab, ac, ad, v.v. . . (khng c khong trng v cc du chm gia phn
u v nhng ch ci ny). Nu khng a ra phn u, th theo mc nh s
dng x, tc l s thu c cc tp tin xaa, xab, xac, xad v.v. . .
Ngoi cc tham s c th thm vo ty chn -b xc nh kch thc ca
cc tp tin to ra (tnh theo byte). Sau -b l mt s v sau l mt ch ci: k
(kch thc tnh theo KB) hoc m (tnh theo MB). Nu khng a ra ty chn ny
th theo mc nh kch thc ca tp tin thu c bng 1MB. gii quyt bi
ton a lc u th cn chy lnh:
[user]$ split -b 650m phim.mpg phim
Sau dng chng trnh ghi a sao chp hai tp tin thu c (phimaa, phimab)
ln hai a CD-R(W), ri a chng (c ngha l dng lnh cp) ln my th hai
vo mt th mc no . Cui cng phc hi tp tin ban u bng lnh:
[user]$ cat phim* > phim.mpg
Sau c th xa i cc tp tin phimaa, phimab.
4.6.10
88
4.7
Cc cu lnh lu tr v nn tp tin
89
4.7.1
90
91
th_mc
4.7.2
92
4.7.3
Trong thi gian gn y ngi dng Linux thng s dng thm mt chng
trnh nn na thay th cho gzip chng trnh bzip2. Chng trnh ny
nn mnh hn (c mc nn cao hn, to ra cc tp tin nh hn) v lm vic
nhanh hn. Cc bn phn phi Linux mi c ci t sn chng trnh ny.
Chng trnh bzip2 lm vic tng t nh gzip, tc l thay th mi tp tin
a vo dng lnh bng phin bn nn ca tp tin , nhng thm vo phn
cui l .bz2. Tp tin nn c thi gian sa i, quyn truy cp v c th c ch s
hu nh tp tin ban u. Do c kh nng phc hi nhng tnh cht ny ca
tp tin khi gii nn.
Trong mt s trng hp tp tin nn c th cn ln hn theo kch thc so
vi tp tin ban u. iu ny c th xy ra i vi nhng tp tin c kch thc
nh hn 100 byte, v c ch nn s dng phn u (head) c kch thc 50 byte.
Nhng tp tin gm mt chui ngu nhin (random) ca cc k t, trong c cc
tp tin nn, th kch thc ca tp tin tng ln khong 0,5%.
Cu lnh bunzip2 hoc bzip2 d gii nn tp tin ch ra. Nu tp tin ny
khng phi do bzip2 to ra th chng trnh s khng gii nn m a ra li
cnh bo. Khi gii nn bzip2 s on tn ca tp tin s to ra theo quy lut sau:
tn_tp_tin.bz2 thay th bng tn_tp_tin
tn_tp_tin.bz thay th bng tn_tp_tin
93
V d:
teppi82@ThinhQuyen:~> bzip2 2
teppi82@ThinhQuyen:~> mv 2.bz2 2.sj
teppi82@ThinhQuyen:~> bunzip2 2.sj
bunzip2: Cant guess original name for 2.sj -- using 2.sj.out
Cc tu chn ca bzip2 rt ging vi ty chn ca gzip nhng khng phi
tt c. Ti s a ra mt danh sch ngn nhng ty chn cn thit nht trong
bng 4.7.
Bng 4.7: Nhng ty chn chnh ca chng trnh bzip2
Ty chn
ngha
-d, --decompress
Bt buc gii nn tp tin. Ty chn ny cn thit v trn thc
t bzip2, bunzip2 v bzcat ch l mt chng trnh. Mi
chng trnh tu theo phn m rng tp tin m quyt nh
xem s lm g vi tp tin . Ty chn -d b i c ch ny v
bt buc chng trnh phi gii nn tp tin ch ra.
-z, --compress
Bt buc nn tp tin (xem trn).
-t, --test
Th (kim tra) tnh nguyn vn ca tp tin nn.
-f, --force
Ghi chn ln tp tin c. Theo mc nh bzip2 khng ghi
chn ln tp tin c trn a. Nu mun ghi chn th hy dng
ty chn ny.
-k, --keep
Gi gn (khng xa) tp tin ban u khi nn hoc gii nn.
-s, --small
Gim yu cu i vi dung lng b nh cn s dng bng
cch gim tc nn. Ch nn dng ty chn ny trn nhng
my tnh c c t b nh (8MB hoc t hn). C l chng ta
khng bao gi cn n ty chn ny hoc t nht l hy vng
nh vy.
-q, --quiet
B i nhng cnh bo t ngha.
-v, --verbose
a ra cc thng bo ph trong khi lm vic (ch c ngha
chun on).
L, -license, V, Hin th s phin bn v bn quyn ca chng trnh.
-version
Tham s ng sau hai du gch ngang (--) v mt khong trng c coi l
tn tp tin, d tham s c mt du gch ngang u. V d:
[user]$ bzip2 -- -tn_tp_tin
By gi n lc chng ta hc cch kt hp tar vi hai cu lnh gzip v
bzip2 lm vic nhanh v c hiu qu hn.
94
4.7.4
4.8
95
To v gn cc h thng tp tin
96
tin c cc vng thng sp cho thng hng, nhng iu l khng nht thit.
97
Hin nay Linux h tr cc h thng tp tin sau: minix, ext, ext2, ext3, xia,
msdos, umsdos, vfat, proc, nfs, iso9660, hpfs, sysv, smb, ncpfs18 . ch dng h
thng tp tin trong vng dng h thng tp tin v sau ty chn -t ca lnh
mount c th t gi tr auto. Trong trng hp cu lnh mount th t xc
nh dng ca h thng tp tin ang gn. Tuy nhin trong mt s trng hp c
th dn n li, nn tt hn ht l ch ra dng mt cch chnh xc. Cn c th lit
k mt s dng phn cch nhau bi du phy (,). Trong cu lnh mount cn c
th a ra danh sch cc dng h thng tp tin khng cn gn bng c (flag) no.
Kh nng ny c ch trong trng hp s dng cu lnh mount vi tham s -a
(cu lnh mount vi tham s -a s gn tt c cc h thng tp tin lit k trong
tp tin /etc/fstab). V d, cu lnh:
[root]# mount -a -t nosmb,ext
gn tt c cc h thng tp tin tr cc dng smb (Samba19 ) v ext
Khi gn h thng tp tin c trong /etc/fstab, th ch cn a ra mt tham
s: hoc tn ca thit b (phn vng) hoc im gn. Tt c cc tham s khc cu
lnh mount s ly t tp tin /etc/fstab.
Thng thng ch c ngi dng cao cp root mi c kh nng gn cc h
thng tp tin, nhng nu trong vng cc ty chn gn c ch ra ty chn user,
th tt c mi ngi dng s c kh nng gn (b gn) h thng tp tin . V d,
nu trong tp tin /etc/fstab c dng:
/dev/hdd
/media/dvd
auto
noauto,user,sync 0 0
98
99
Chng 5
Bash
Tt g hn tt nc sn
ca dao tc ng Vit Nam
Trong phn ny chng ta s cp n vn lm vic vi Linux ch text, hay
cn c gi l console hoc terminal. Nhng ngi dng Linux mi (newbie) thng ngh
s chng bao gi lm vic ch ny, v c giao din ha. Tuy nhin y l mt
kin sai lm, bi v rt nhiu cng vic c th thc hin nhanh v thun tin trong ch
ny hn l s dng giao din ha. V d sao th ch text ca HH Linux khng phi
l ch text mt tin trnh ca MS-DOS. V Linux l HH a tin trnh, nn ngay trong ch
text c kh nng lm vic trong vi ca s. V son tho mt tp tin vn bn khng
nht thit phi chy cc trnh son tho ln v chm chp (c bit trn cc my c cu
hnh phn cng thp) ca mi trng ha.
5.1
H v l g?
5.2 Cc k t c bit
101
5.2
Cc k t c bit
102
Bash
5.3
5.3.1
Thao tc ;
Mc d ngi dng thng ch nhp trn dng lnh tng cu lnh mt, nhng
cn c th a vo dng lnh ngay lp tc vi cu lnh, v chng s thc hin
ln lt t cu lnh ny n cu lnh khc. lm c iu ny cn s dng
k t c bit - ;. Nu dng k t ny phn chia cc cu lnh, th cu lnh
tip theo s c coi nh tham s ca lnh pha trc. Nh vy, nu nhp vo
dng lnh ci g ging nh sau:
teppi82@teppi:~$ command1 ; command2
th h v u tin s thc hin cu lnh command1, ch cho lnh hon
thnh, sau chy command2, ch lnh hon thnh, sau li a ra dng
nhp lnh v ch cc hnh ng tip theo ca ngi dng.
5.3.2
103
Thao tc &
5.3.3
Thao tc && v ||
5.4
5.4.1
104
Bash
knh thng bo li tiu chun (standard error hay stderr). Qua knh ny
chng trnh a ra thng tin v li.
5.4.2
Lnh echo
5.4.3
Lnh cat
ging lin kt ha hc
105
5.5
5.5.1
th mc hin thi
bn cn dng t hp phm <Ctrl>+<Alt>+<F2> chuyn ti ca s terminal ny v ng nhp trc
106
Bash
Tuy nhin, t chng (khng c mt lnh no, tc l khng c knh tiu chun
no cho lnh) cc k t chuyn hng ny khng th c s dng, nh th
khng th, v d, nhp vo dng lnh sau:
[user]$ file1 > file2
m thu c bn sao ca mt tp tin no . Nhng iu ny khng lm gim
gi tr ca c ch ny, bi v cc knh tiu chun c cho mi cu lnh. Khi ny,
c th chuyn hng khng ch u vo v u ra tiu chun, m cn cc knh
khc. lm c iu ny, cn t trc k hiu chuyn hng s ca knh
mun chuyn. u vo tiu chun stdin c s 0, u ra tiu chun stdout - s 1,
knh thng bo li stderr - s 2. Tc l lnh chuyn hng c dng y nh
sau (xin c nhc li, khong trng cnh > l khng nht thit):
command N > M
Trong , N v M - s ca knh tiu chun (0, 1, v 2) hoc tn tp tin. Trong
mt vi trng hp c s dng cc k hiu <, > v >> m khng ch ra s knh
hay tn tp tin, v vo ch cn thiu s t, theo mc nh, 1 nu dng >, tc l
u ra tiu chun, hoc 0 nu dng <, tc l u vo tiu chun. Nh th, khi
khng c s no ch ra, > s c bin dch l 1 >, cn < s c bin dch l
0 <. Ngoi vic chuyn hng cc knh tiu chun n gin nh vy, cn c kh
nng khng nhng chuyn hng d liu vo knh ny hay knh khc, m cn
sao chp ni dung ca cc knh tiu chun . K hiu & dng thc hin iu
ny, khi t n (&) trc s ca knh s chuyn d liu n:
command N > &M
Lnh ny c ngha l, u ra ca knh vi s N c gi n c u ra tiu
chun, v sao chp ti knh c s M. V d, sao chp thng bo li vo u ra
tiu chun, cn dng lnh 2>&1, cn 1>&2 sao chp stdout vo stderr. Kh nng
ny c bit c ch khi mun ghi u ra vo tp tin, v khi chng ta va c
th nhn thy thng bo trn mn hnh, va ghi chng vo tp tin. V d, trng
hp sau thng c ng dng trong cc script chy khi khi ng Linux:
teppi82@teppi:~$ cat hiho > /dev/null
cat: hiho: No such file or directory
teppi82@teppi:~$ cat hiho > /dev/null 2>&1
5.5.2
107
S dng |
5.5.3
B lc
108
Bash
5.6
Khi nim tham bin trong h v bash tng ng vi khi nim bin s trong cc
ngn ng lp trnh thng thng. Tn gi (hay ID) ca tham bin c th l mt
t bao gm cc k t bng ch ci, ch s, du gch di (ch k t u tin ca
t ny khng c l ch s), v c nhng k t sau: , , #, , - (gch ngang), $, , 0,
_ (gch di). Chng ta ni rng, tham bin c xc nh hay c t ra, nu
ngi dng gn cho n mt gi tr. Gi tr c th l mt dng trng rng. nhn
thy gi tr ca tham bin, ngi ta s dng k t $ trc tn ca n. Nh vy,
lnh:
maikhai@fpt:/sm$ echo parameter
hin th t parameter, cn lnh
maikhai@fpt:/sm$ echo $parameter
hin th gi tr ca tham bin parameter (tt nhin nu nh tham bin dc
xc nh).
5.6.1
Tham bin chia thnh ba dng: tham bin v tr, tham bin c bit (cc k t
c bit ni trn chnh l tn ca nhng tham bin ny) v cc bin s ca
h v. Tn (ID) ca tham bin v tr gm mt hay vi ch s (nhng khng c
109
110
Bash
5.6.2
Du nhc ca h v
Cm k t
\a
\d
\h
\H
\t
\T
\@
\u
\w
\W
\$
\nnn
\n
\s
\#
\\
\[
\]
\!
111
5.6.3
112
Bash
[user]$ PATH=$PATH:new_path
Khi tm kim, h v lc li cc th mc theo ng th t lit k trong
bin PATH. Mt ch nh, c th a vo danh sch ny th mc hin thi, khi
thm vo bin PATH mt du chm (.). Tuy nhin, y l iu khng khuyn lm
vi l do bo mt: ngi c c c th t vo th mc dng chung mt chng
trnh no , c cng tn vi mt trong s nhng cu lnh thng dng bi root,
nhng thc hin nhng chc nng khc hon ton (c bit nguy him nu th
mc hin thi ng u danh sch tm kim).
5.6.4
5.6.5
5.6.6
Cu lnh export
5.7
113
ngn ng, phn tch ch ng, v ng). Mt trong nhng bc ca s phn tch
ny l php m hay khai trin biu thc (expansion). Trong bash c by loi
khai trin biu thc:
Khai trin du ngoc (brace expansion);
Thay th du ng (tilde expansion);
Php th cc tham bin v bin s;
Php th cc cu lnh;
Php th s hc (thc hin t tri sang phi);
Php chia t (word splitting);
Khai trin cc mu tn tp tin v th mc (pathname expansion).
5.7.1
114
Bash
5.7.2
5.7.3
5.7.4
Php th cc cu lnh
115
5.7.5
5.7.6
Sau khi thc hin xong cc php th tham bin, th lnh, v th cc biu thc s
hc, h v li phn tch dng lnh mt ln na (nhng dng thu c sau cc
php th ni trn) v thc hin vic phn chia t (word splitting). Thao tc ny
nm ch, h v tm trong dng lnh tt c cc k t phn chia, xc nh bi
bin IFS (xem trn), v nh chia nh dng lnh thnh cc t ring r trong
cc ch tng ng. Nu gi tr ca IFS bng mt dng trng, th vic phn chia
t s khng xy ra. Nu trong dng lnh khng thc hin php th no trong cc
php th k trn, th phn chia t cng khng xy ra.
5.7.7
116
Bash
Bng 5.4: Cc k t to mu
K t Quy lut thay th
*
Tng ng vi bt k dng k t no, k c dng rng. V d, v*.txt
s c thay th bi vnoss.txt, vnlinux.txt v vntex.txt
(nu cc tp tin ny tn ti), v *.png s tng ng tt c cc tp tin c
phn m rng png (tp tin ha hai chiu).
?
Tng ng bt k mt k t n no. V d, mu
file?.txt s c thayth bi cc tn tp sau
file1.txt, file2.txt, file3.txt,
v
filea.txt
(nu chng tn ti), nhng file23.txt th khng.
[...] Tng ng bt k k t no trong s cc k t nm trong du ngoc
vung ny. Cp k t, phn cch nhau bi du tr (-), v d c-f, biu
th mt dy; bt k k t no, theo t in, nm gia hai k t ny, k c
hai k t to ra dy (c v f trong v d) cng tng ng vi mu. Nu
k t u tin trong ngoc vung l hay , th mu ( v tr ny) s tng
ng tt c cc k t, khng c ch ra trong ngo
Mu tn tp tin rt thng xuyn s dng trong dng lnh c cha ls. Hy
tng tng l bn mun xem thng tin ca mt th mc, trong c cha mt
s lng ln cc tp tin cc dng, v d, tp tin hnh nh, phim vi dng gif,
jpeg, avi, v.v. . . . thu c thng tin ch ca tp tin dng jpeg, c th dng
cu lnh
[user]$ ls *.jpg
Nu trong th mc c nhiu tp tin, m tn ca chng l cc s gm bn ch
s (th mc /proc l mt v d+), th lnh sau ch a ra danh sch cc tp tin
c s t 0500 n 0999:
[user]$ ls -l 0[5-9]??
5.7.8
Xa cc k t c bit
5.8
5.8.1
117
5.8.2
Biu thc iu kin, s dng trong ton t test, c xy dng trn c s kim
tra thuc tnh tp tin, so snh cc dng v cc so snh s hc thng thng. Biu
thc phc tp hn c to ra t cc thao tc n v kp sau (nhng vin gch
c s):
-a file
ng nu tp tin c tn file tn ti.
118
Bash
-b file
ng nu file tn ti, v l mt tp tin thit b khi (block device) c
bit.
-c file
ng nu file tn ti, v l mt tp tin thit b k t (charater device) c
bit.
-d file
ng nu file tn ti v l mt th mc.
-e file
ng nu tp tin c tn file tn ti.
-f file
ng nu tp tin c tn file tn ti v l mt tp tin thng thng.
-g file
ng nu tp tin c tn file tn ti v c t bit thay i nhm.
-h file hay -L file
ng nu tp tin c tn file tn ti v l lin kt mm (lin kt tng
trng).
-k file
ng nu tp tin c tn file tn ti v c t bit sticky.
-p file
ng nu tp tin c tn file tn ti v l tn ca mt ng (knh FIFO).
-p file
ng nu tp tin c tn file tn ti v l tn ca mt ng (knh FIFO).
-r file
ng nu tp tin c tn file tn ti v c quyn c.
-s file
ng nu tp tin c tn file tn ti v kch thc ln hn khng.
-t fd
ng nu b m t ca tp tin (fd) m v ch ln terminal.
-u file
ng nu tp tin c tn file tn ti v c t bit thay i ngi dng.
-w file
ng nu tp tin c tn file tn ti v c quyn ghi.
-x file
ng nu tp tin c tn file tn ti v c quyn thc thi.
119
-0 file
ng, nu tp tin c tn file v ch s hu ca n l ngi dng m ID
c hiu lc ch n.
-G file
ng, nu tp tin c tn file tn ti v thuc v nhm, xc nh bi ID
nhm c hiu lc.
-S file
ng, nu tp tin c tn file tn ti v l socket.
-N file
ng, nu tp tin c tn file tn ti v thay i t ln c c cui cng.
file1 -nt file2
ng, nu tp tin file1 c thi gian sa i mun hn file2.
file1 -ot file2
ng, nu tp tin file1 gi hn file1 (trng hp ngc li ca trng
hp trn).
file1 -ef file2
ng, nu tp tin file1 v file2 c cng mt s thit b v ch s m t
inode.
-o optname
ng, nu ty chn optname ca h v c kch hot. Chi tit xin xem
trn trang man bash.
-z string
ng, nu di ca chui string bng khng.
-n string
ng, nu di ca chui khc khng.
string1 == string2
ng, nu hai chui trng nhau. C th thay hai == bng mt =.
string1 !== string2
ng, nu hai chui khng trng nhau.
string1 < string2
ng, nu chui string1, theo t in, ng trc chui string2 (i vi
ngn ng hin thi).
string1 > string2
ng, nu chui string1, theo t in, ng sau chui string2 (i vi
ngn ng hin thi).
arg1 OP arg2
y OP l mt trong cc php so snh s hc: -eq (bng), -ne (khc,
khng bng), -lt (nh hn), -le (nh hn hoc bng), -gt (ln hn), -ge
120
Bash
(ln hn hoc bng). ch cc tham s arg1 v arg2 c th s dng cc s
nguyn (m hoc dng).
5.8.3
Ton t case
5.8.4
Ton t select
Ton t select cho php t chc hi thoi vi ngi dng. N c dng sau:
select name [ in word; ] do list; done
121
5) Solaris
6) QNX
7) Other
5.8.5
Ton t for
122
Bash
for a in 1 2 3 ; do
touch fu$a
done
C th g ba dng ny trn mt dng lnh, kt qu thu c tng t vi
script. Dng tng qut ca ton t for nh sau:
for name [ in word; ] do list ; done
u tin cng xy ra s khai trin t word theo quy lut khai trin biu thc
(xem trn). Sau bin name ln lt c gn cc gi tr thu c t s
khai trin ny, v thc hin danh sch lnh list trong mi ln nh vy. Nu
khng c in word, th danh sch lnh list c thc hin mt ln cho mi
tham bin v tr a ra. Trn Linux c chng trnh seq, tip nhn hai
s nguyn lm tham s, v a ra chui tt c cc s nm gia hai s ny (cng
thm c chng). Nh cu lnh ny c th s dng for ca bash lm vic nh
ton t for trong cc ngn ng lp trnh thng thng. lm c iu ny
ch cn vit vng lp for nh sau:
for a in $( seq 1 6 ) ; do
cat fu$a
done
Cu lnh (script) ny a ra mn hnh ni dung ca 10 tp tin (nu c): fu1,
..., fu10.
5.8.6
123
5.8.7
Cc hm s
5.8.8
Tham s
5.8.9
Bin ni b (local)
124
Bash
};
done;
echo $2
}
Cn ch n ty chn -n ca echo, n (ty chn) hy b vic to dng mi.
Mc d ty chn ny khng c nhiu ngha vi mc ch chng ta mun y,
nhng s rt c ch trong cc hm s vi mc ch khc. Hm s tnh giai tha
fact Mt v d khc:
fact()
{
if [ $1 = 0 ]; then
echo 1;
else
{
echo $(( $1 * $( fact $(( $1 -- 1 )) ) ))
};
fi
}
y l hm s giai tha, mt v d ca hm qui. Hy ch n s khai
trin s hc, v php th cc cu lnh.
5.9
5.10 Cu lnh sh
5.10
125
Cu lnh sh
Chng 6
S dng Midnight Commander
Mi th u c vit ra cc nh lp trnh Nga.
Trong chng ny chng ta s hc cch s dng chng trnh Midnight Commander,
mt trnh qun l tp tin mnh. Sau khi c xong chng ny bn c s c th s dng cc
t hp phm cng nh giao din ca Midnight Commander thc hin rt nhiu cng vic
c lin quan n h thng tp tin t nh b n nng nhc. u tin chng ta hy xem xt
cch ci t chng trnh ny. . .
6.1
trong bn gc tc gi Kostromin dng phin bn 4.5.30, theo kin ngi dch l kh c v khng cn gp
trong nhng bn phn phi Linux mi.
127
6.2
Ngoi ra ngi dch cun sch ny cng dch giao din ca Midnight Commander ra ting Vit. V th
nu mun bn c th s dng giao din ting m ca Midnight Commander.
3
panel
128
6.3 Tr gip
129
Ch mt trong hai bng l hin thi (hot ng). Bng hin thi c thanh
chiu sng tn th mc phn u v thanh chiu sng mt trong nhng dng
ca bng . Tng t, trong shell chy chng trnh Midnight Commander,
th mc hin thi l th mc c hin th trong bng hot ng. Hu ht cc
thao tc c thc hin trong th mc ny. Cc thao tc nh sao chp (<F5>)
hay di chuyn (<F6>) tp tin s dng th mc c hin th trong bng th hai
lm th mc ch n (s sao chp hay di chuyn n th mc ny).
Trong bng hot ng mt dng c chiu sng. Thanh chiu sng c th di
chuyn nh cc phm iu khin vic di chuyn. Chng trnh xem tp tin ni
tr, chng trnh xem li mch nc v chng trnh xem th mc s dng cng
mt m chng trnh iu khin vic di chuyn. V th vic di chuyn s dng
mt b cc t hp phm (nhng trong mi chng trnh con c cc t hp phm
ch p dng trong ni b m thi). Xin a ra mt bng ngn gn lit k cc t
hp phm dng chung iu khin vic di chuyn.
Bng 6.1: Cc t hp phm di chuyn dng chung
Phm
Di chuyn thc hin
<> hoc <Ctrl>+<P>
Di chuyn tr li (ln trn) mt dng
<> hoc <Ctrl>+<N>
Di chuyn v pha trc (xung di) mt dng
<Page Up> hoc <Alt>+<V>
Quay li mt trang
<Page Down> hoc <Ctrl>+<V> Tin v trc mt trang
<Home>
Quay v dng u
<End>
Chuyn n dng cui cng
6.3
Tr gip
130
6.4
S dng chut
131
6.5
iu khin cc bng
6.5.1
Dng bng trn hin th danh sch tp tin v th mc con c th thay i qua
cc cu lnh ca thc n m ra khi chn Bng tri (Left) v Bng phi (Right).
Nu bn c mun thay i dng hin th danh sch tp tin, th c th s dng
cu lnh Dng danh sch... (Listing mode...) ca bng (tri hoc phi) tng
ng. C 4 kh nng chn: y (Full), Thu gn (Brief), M rng (Long)
v Ngi dng t xc nh (User).
132
133
134
6.5.2
ra bng xem nhanh ni dung tp tin s dng chng trnh xem tp tin
c sn trong mc, v th nu dng phm <Tab> chuyn sang bng xem
nhanh, th ngi dng c th s dng mi cu lnh iu khin vic xem, v
d, nhng phm lit k trong bng 6.1 v bng 6.2.
135
Hnh 6.6: Ch cy th mc
136
6.5.3
137