Một cách chính xác, thuật ngữ "Linux" được sử dụng để chỉ Nhân Linux, nhưng tên này được sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điều hành giống Unix (còn được biết đến dưới tên GNU/Linux) được tạo ra bởi việc đóng gói nhân Linux cùng với các thư viện và công cụ GNU, cũng như là các bản phân phối Linux
186 trang |
Chia sẻ: franklove | Lượt xem: 2294 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Tài liệu tham khảo: Hệ điều hành Linux, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
Ban chØ ®¹o c«ng nghÖ th«ng tin cña c¬ quan ®¶ng
***
TµI liÖu tham kh¶o
HÖ ®iÒu hµnh Linux
Hµ néi, 2003
Simpo PDF Merge and Split Unregistered Version -
10
Ch−¬ng 1. Giíi thiÖu chung vÒ lÖnh trong linux
1.1. Giíi thiÖu vÒ UNIX vµ Linux
1.1.1. S¬ bé vÒ hÖ ®iÒu hµnh ®a ng−êi dïng
UNIX (vµ Linux) lµ hÖ ®iÒu hµnh ®a ng−êi dïng (multi-users). HÖ ®iÒu hµnh ®a
ng−êi dïng thuéc vµo lo¹i hÖ ®iÒu hµnh ®a ch−¬ng tr×nh ®Þnh h−íng "th©n thiÖn víi
ng−êi dïng". T¹i cïng mét thêi ®iÓm, cã nhiÒu ng−êi dïng cïng sö dông m¸y tÝnh vµ
®èi víi mçi ng−êi dïng nh− vËy ®Òu cã c¶m gi¸c nh− ®−îc sö dông m¸y tÝnh mét c¸ch
"®éc quyÒn" v× hä ®−îc trùc tiÕp liªn kÕt víi ch−¬ng tr×nh cña m×nh ®ang thùc hiÖn
trong m¸y tÝnh. §iÒu nµy t−¬ng øng víi mét chøc n¨ng cña hÖ ®iÒu hµnh lµ "hÖ ®iÒu
hµnh nh− mét m¸y tÝnh ¶o" theo gãc ®é cña ng−êi sö dông.
Nh− vËy, trong m¸y tÝnh ®ång thêi xuÊt hiÖn nhiÒu ch−¬ng tr×nh ng−êi dïng, c¸c
ch−¬ng tr×nh nµy chia nhau sö dông c¸c tµi nguyªn cña hÖ thèng, trong ®ã cã c¸c tµi
nguyªn quan träng nhÊt lµ CPU, bé nhí trong vµ hÖ thèng tËp tin (hÖ thèng File).
Mçi ng−êi dïng h−íng ®Õn tµi nguyªn chung qua tr¹m cuèi (terminal) cña m×nh
(c¸c tr¹m cuèi nµy ®−îc ®Æt tªn vµ ®−îc hÖ thèng qu¶n lý). Trong tr−êng hîp ®¬n
gi¶n, tr¹m cuèi chØ bao gåm hai thiÕt bÞ lµ mµn h×nh (®Ó hiÖn th«ng tin cho ng−êi
dïng) vµ bµn phÝm (®Ó ng−êi dïng ®−a yªu cÇu ®èi víi hÖ ®iÒu hµnh). Trong nhiÒu
tr−êng hîp kh¸c, cã thÓ sö dông mét m¸y tÝnh c¸ nh©n ®ãng vai trß cña mét tr¹m cuèi
vµ nh− vËy mçi ng−êi dïng võa ®−îc phÐp sö dông tµi nguyªn riªng võa ®−îc phÐp sö
dông tµi nguyªn chung.
§iÓn h×nh nhÊt trong c«ng viÖc ph©n chia tµi nguyªn cña hÖ thèng m¸y tÝnh trong
hÖ ®iÒu hµnh ®a ng−êi dïng lµ viÖc ph©n chia CPU theo mét chu kú thêi gian mµ mçi
ng−êi dïng ®−îc sö dông CPU trong mét kho¶ng thêi gian nhÊt ®Þnh (®−îc gäi lµ
l−îng tö thêi gian) vµ sau khi mçi ng−êi ®· ®−îc ph©n chia CPU th× l¹i chuyÓn ®Õn
l−ît ph©n chia tiÕp theo. Nh− vËy, ph©n chia thêi gian (Time shared system) lµ c¸ch
thøc cña hÖ ®a ng−êi dïng khi ®iÒu phèi CPU.
Lµ mét hÖ ®iÒu hµnh ®a ng−êi dïng, UNIX ®· kh¸ phæ biÕn trong c¸c lÜnh vùc
ho¹t ®éng CNTT, cã thÓ ®−îc sö dông tõ m¸y vi tÝnh cho tíi m¸y tÝnh mainframe. Nã
®Æc biÖt thÝch hîp ®èi víi c¸c hÖ Client-Server vµ m¹ng m¸y tÝnh diÖn réng.
1.1.2. XuÊt xø, sù ph¸t triÓn vµ mét sè ®Æc tr−ng cña hÖ ®iÒu hµnh
UNIX
N¨m 1965, ViÖn c«ng nghÖ Massachusetts (MIT: Massachusetts Institute of
Technology) vµ Phßng thÝ nghiÖm Bell cña h·ng AT&T thùc hiÖn dù ¸n x©y dùng mét
hÖ ®iÒu hµnh cã tªn gäi lµ Multics (MULTiplexed Information and Computing
Service) víi môc tiªu: t¹o lËp ®−îc mét hÖ ®iÒu hµnh phñ trªn vïng l·nh thæ réng
(ho¹t ®éng trªn tËp c¸c m¸y tÝnh ®−îc kÕt nèi), ®a ng−êi dïng, cã n¨ng lùc cao vÒ tÝnh
to¸n vµ l−u tr÷. Dù ¸n nãi trªn thµnh c«ng ë møc ®é hÕt søc khiªm tèn vµ ng−êi ta ®·
biÕt ®Õn mét sè khiÕm khuyÕt khã kh¾c phôc cña Multics.
N¨m1969, Ken Thompson, mét chuyªn viªn t¹i phßng thÝ nghiÖm Bell, ng−êi ®·
tham gia dù ¸n Multics, cïng Dennics Richie viÕt l¹i hÖ ®iÒu hµnh ®a-bµi to¸n trªn
m¸y PDP-7 víi tªn lµ UNICS (UNiplexed Information and Computing Service) tõ mét
c©u gäi ®ïa cña mét ®ång nghiÖp. Trong hÖ ®iÒu hµnh UNICS, mét sè khëi th¶o ®Çu
tiªn vÒ HÖ thèng tËp tin ®· ®−îc Ken Thompson vµ Dennis Ritchie thùc hiÖn. §Õn n¨m
1970 hÖ ®iÒu hµnh ®−îc viÕt trªn assembler cho m¸y PDP-11/20 vµ mang tªn lµ
UNIX.
Simpo PDF Merge and Split Unregistered Version -
11
N¨m 1973, Riche vµ Thompson viÕt l¹i nh©n cña hÖ ®iÒu hµnh UNIX trªn ng«n
ng÷ C, vµ hÖ ®iÒu hµnh ®· trë nªn dÔ dµng cµi ®Æt tíi c¸c lo¹i m¸y tÝnh kh¸c nhau; tÝnh
chÊt nh− thÕ ®−îc gäi lµ tÝnh kh¶ chuyÓn (portable) cña UNIX. Tr−íc ®ã, kho¶ng n¨m
1971, hÖ ®iÒu hµnh ®−îc thÓ hiÖn trªn ng«n ng÷ B (mµ dùa trªn ng«n ng÷ B, Ritche ®·
ph¸t triÓn thµnh ng«n ng÷ C).
H·ng AT&T phæ biÕn ch−¬ng tr×nh nguån UNIX tíi c¸c tr−êng ®¹i häc, c¸c c«ng
ty th−¬ng m¹i vµ chÝnh phñ víi gi¸ kh«ng ®¸ng kÓ.
N¨m 1982, hÖ thèng UNIX-3 lµ b¶n UNIX th−¬ng m¹i ®Çu tiªn cña AT&T.
N¨m 1983, AT&T giíi thiÖu HÖ thèng UNIX-4 phiªn b¶n thø nhÊt trong ®ã ®· cã
tr×nh so¹n th¶o vi, th− viÖn qu¶n lý mµn h×nh ®−îc ph¸t triÓn tõ §¹i häc Tæng hîp
California, Berkley.
Giai ®o¹n 1985-1987, UNIX-5 phiªn b¶n 2 vµ 3 t−¬ng øng ®−îc ®−a ra vµo c¸c
n¨m 1985 vµ 1987. Trong giai ®o¹n nµy, cã kho¶ng 100000 b¶n UNIX ®· ®−îc phæ
biÕn trªn thÕ giíi, cµi ®Æt tõ m¸y vi tÝnh ®Õn c¸c hÖ thèng lín.
§Çu thËp kû 1990. UNIX-5 phiªn b¶n 4 ®−îc ®−a ra nh− lµ mét chuÈn cña UNIX.
§©y lµ sù kÕt hîp cña c¸c b¶n sau:
AT&T UNIX-5 phiªn b¶n 3,
Berkley Software Distribution (BSD),
XENIX cña MicroSoft
SUN OS
Trong thêi gian gÇn ®©y (kho¶ng n¨m 1997) mét sè phiªn b¶n míi cña UNIX ®−îc
giíi thiÖu vµ phæ biÕn trªn Internet. Cã thÓ t×m thÊy c¸c néi dung liªn quan t¹i ®Þa chØ
website
C¸c nhãm nhµ cung cÊp kh¸c nhau vÒ UNIX ®ang ho¹t ®éng trong thêi gian hiÖn
nay ®−îc kÓ ®Õn nh− sau:
Unix International (viÕt t¾t lµ UI). UI lµ mét tæ chøc gåm c¸c nhµ cung cÊp
thùc hiÖn viÖc chuyÓn nh−îng hÖ thèng UNIX-5 vµ cung cÊp b¶n AT&T theo
c¸c nhu cÇu vµ th«ng b¸o ph¸t hµnh míi, ch¼ng h¹n nh− ®iÒu chØnh b¶n quyÒn.
Giao diÖn ®å häa ng−êi dïng lµ Open Look.
Open Software Foundation (OSF). OSF ®−îc hç trî bëi IBM, DEC, HP ...
theo h−íng ph¸t triÓn mét phiªn b¶n cña Unix nh»m tranh ®ua víi hÖ thèng
UNIX-5 phiªn b¶n 4. Phiªn b¶n nµy cã tªn lµ OSF/1 víi giao diÖn ®å häa ng−êi
dïng ®−îc gäi lµ MOTIF.
Free SoftWare Foundation: mét tæ chøc chñ tr−¬ng ph¸t hµnh mét dßng cña
UNIX m· nguån më, miÔn phÝ: ®ã lµ hÖ ®iÒu hµnh Linux.
B¶ng sau ®©y liÖt kª mét sè cµi ®Æt UNIX kh¸ phæ biÕn (th−êng thÊy cã ch÷ X ë
cuèi tªn gäi cña HÖ ®iÒu hµnh):
Tªn hÖ Nhµ cung cÊp NÒn ph¸t triÓn
AIX International Business Machines AT&T System V
A/UX Apple Computer AT&T System V
Dynix Sequent BSD (Berkeley SoftWare Distribution)
HP-UX Hewlett-Packard BSD
Simpo PDF Merge and Split Unregistered Version -
12
Irix Silicon Graphics AT&T System V
Linux Free SoftWare Foundation
NextStep Next BSD
OSF/1 Digital Equipment Corporation BSD
SCO UNIX Santa Cruz Operation AT&T System V
Solaris Sun Microsystems AT&T System V
SunOS Sun Microsystems BSD UNIX
Ultrix Digital Equipment Corporation BSD UNIX
Unicos Cray AT&T System V
UnixWare Novell AT&T System V
XENIX MicroSoft AT&T System III-MS
D−íi ®©y liÖt kª mét sè ®Æc tr−ng cña hÖ ®iÒu hµnh UNIX:
HÖ ®iÒu hµnh ®−îc viÕt trªn ng«n ng÷ bËc cao; bëi vËy, rÊt dÔ ®äc, dÔ hiÓu,
dÔ thay ®æi ®Ó cµi ®Æt trªn lo¹i m¸y míi (tÝnh dÔ mang chuyÓn, nh− ®· nãi),
Cã giao diÖn ng−êi dïng ®¬n gi¶n ®ñ n¨ng lùc cung cÊp c¸c dÞch vô mµ
ng−êi dïng mong muèn (so s¸nh víi c¸c hÖ ®iÒu hµnh cã tõ tr−íc ®ã th× giao
diÖn cña UNIX lµ mét tiÕn bé v−ît bËc),
Tháa m·n nguyªn t¾c x©y dùng c¸c ch−¬ng tr×nh phøc t¹p tõ nh÷ng ch−¬ng
tr×nh ®¬n gi¶n h¬n: tr−íc hÕt cã c¸c m«®un c¬ b¶n nhÊt cña nh©n sau ®ã ph¸t
triÓn ®Ó cã toµn bé hÖ ®iÒu hµnh,
Sö dông duy nhÊt mét hÖ thèng File cã cÊu tróc cho phÐp dÔ dµng b¶o qu¶n
vµ sö dông hiÖu qu¶,
Sö dông phæ biÕn mét d¹ng ®¬n gi¶n tr×nh bµy néi t¹i cña File nh− mét
dßng c¸c byte cho phÐp dÔ dµng khi viÕt c¸c ch−¬ng tr×nh øng dông truy nhËp,
thao t¸c víi c¸c d÷ liÖu trong File,
Cã kÕt nèi ®¬n gi¶n víi thiÕt bÞ ngo¹i vi: c¸c file thiÕt bÞ ®· ®−îc ®Æt s½n
trong HÖ thèng File t¹o ra mét kÕt nèi ®¬n gi¶n gi÷a ch−¬ng tr×nh ng−êi dïng
víi c¸c thiÕt bÞ ngo¹i vi,
Lµ hÖ ®iÒu hµnh ®a ng−êi dïng, ®a tiÕn tr×nh, trong ®ã mçi ng−êi dïng cã
thÓ thùc hiÖn c¸c tiÕn tr×nh cña m×nh mét c¸ch ®éc lËp.
Mäi thao t¸c vµo - ra cña hÖ ®iÒu hµnh ®−îc thùc hiÖn trªn hÖ thèng File:
mçi thiÕt bÞ vµo ra t−¬ng øng víi mét file. Ch−¬ng tr×nh ng−êi dïng lµm viÖc
víi file ®ã mµ kh«ng cÇn quan t©m cô thÓ tªn file ®ã ®−îc ®Æt cho thiÕt bÞ nµo
trong hÖ thèng.
Che khuÊt cÊu tróc m¸y ®èi víi ng−êi dïng, ®¶m b¶o tÝnh ®éc lËp t−¬ng ®èi
cña ch−¬ng tr×nh ®èi víi d÷ liÖu vµ phÇn cøng, t¹o ®iÒu kiÖn thuËn lîi h¬n cho
ng−êi lËp tr×nh khi viÕt c¸c ch−¬ng tr×nh ch¹y UNIX víi c¸c ®iÒu kiÖn phÇn
cøng hoµn toµn kh¸c biÖt nhau.
Simpo PDF Merge and Split Unregistered Version -
13
1.1.3. Giíi thiÖu s¬ bé vÒ Linux
Linus Tovalds (mét sinh viªn PhÇn lan) ®· ®−a ra phiªn b¶n ®Çu tiªn cña hÖ ®iÒu
hµnh Linux vµo th¸ng 8 n¨m 1991. Linus Tovalds ®· x©y dùng hÖ ®iÒu hµnh Linux
dùa trªn mét phiªn b¶n nhá cña UNIX cã tªn Minix (Minix do mét chuyªn gia hµng
®Çu vÒ hÖ ®iÒu hµnh lµ Gi¸o s− Andrew S. Tanenbaum x©y dùng) theo h−íng ho¹t
®éng trªn m¸y tÝnh c¸ nh©n. Tõ thêi ®iÓm ®ã, theo t− t−ëng GNU, hµng ngh×n chuyªn
gia trªn toµn thÕ giíi ®· tham gia vµo qu¸ tr×nh ph¸t triÓn Linux vµ v× vËy Linux ngµy
cµng ®¸p øng nhu cÇu cña ng−êi dïng. Cã thÓ kÓ ra mét sè ®Æc ®iÓm sau ®©y cña hÖ
®iÒu hµnh Linux hiÖn t¹i:
Linux t−¬ng thÝch víi nhiÒu hÖ ®iÒu hµnh nh− DOS, MicroSoft Windows ...:
Cã thÓ cµi Linux cïng víi c¸c hÖ ®iÒu hµnh kh¸c trªn cïng mét æ cøng:
Linux cã thÓ truy nhËp ®Õn c¸c file cña c¸c hÖ ®iÒu hµnh cïng mét æ ®Üa. Linux
cho phÐp ch¹y m« pháng c¸c ch−¬ng tr×nh thuéc c¸c hÖ ®iÒu hµnh kh¸c.
Do gi÷ ®−îc chuÈn cña UNIX nªn sù chuyÓn ®æi gi÷a Linux vµ c¸c hÖ
UNIX kh¸c lµ dÔ dµng.
Linux lµ mét hÖ ®iÒu hµnh UNIX tiªu biÓu: ®a ng−êi dïng, ®a ch−¬ng tr×nh
vµ ®a xö lý.
Linux cã giao diÖn ®å ho¹ (GUI) qua X-Window. Linux hç trî nhiÒu giao
thøc m¹ng. Linux cßn hç trî tÝnh thêi gian thùc.
Linux kh¸ m¹nh vµ ch¹y rÊt nhanh ngay c¶ khi nhiÒu qu¸ tr×nh hoÆc nhiÒu
cöa sæ.
Linux ®−îc cµi ®Æt trªn nhiÒu chñng lo¹i m¸y tÝnh kh¸c nhau: PC, mini vµ
viÖc cµi ®Æt kh¸ thuËn lîi song ch−a xuÊt hiÖn trªn m¸y tÝnh lín (mainframe).
Linux ngµy cµng ®−îc hç trî bëi c¸c phÇn mÒm øng dông: so¹n th¶o, qu¶n
lý m¹ng, qu¶n trÞ c¬ së d÷ liÖu, b¶ng tÝnh v.v.
Linux hç trî tèt cho tÝnh to¸n song song vµ m¸y tÝnh côm (PC-cluster) lµ
mét h−íng nghiªn cøu triÓn khai øng dông nhiÒu triÓn väng hiÖn nay.
Lµ mét hÖ ®iÒu hµnh víi m· nguån më, ®−îc ph¸t triÓn qua Free SoftWare
Foundation nªn Linux ph¸t triÓn nhanh vµ lµ mét hÖ ®iÒu hµnh ®−îc quan t©m
nhiÒu nhÊt trªn thÕ giíi hiÖn nay.
Linux lµ mét hÖ ®iÒu hµnh hç trî ®a ng«n ng÷ mét c¸ch toµn diÖn nhÊt. Do
Linux cho phÐp hç trî c¸c bé m· chuÈn tõ 16 bit trë lªn (trong ®ã cã c¸c bé m·
Unicode, ISO10646) cho nªn viÖc b¶n ®Þa hãa trªn Linux lµ triÖt ®Ó nhÊt trong
c¸c hÖ ®iÒu hµnh.
Tuy nhiªn còng cßn mét sè khã kh¨n lµm cho Linux ch−a thùc sù trë thµnh mét hÖ
®iÒu hµnh phæ dông, trong ®ã cã thÓ kÓ ®Õn mét sè khã kh¨n nh− sau:
Khã kh¨n khi cµi ®Æt Linux vµ kh¶ n¨ng t−¬ng thÝch cña Linux víi mét sè
lo¹i thiÕt bÞ phÇn cøng cßn thÊp do ch−a cã c¸c tr×nh ®iÒu khiÓn cho nhiÒu thiÕt
bÞ,
PhÇn mÒm øng dông ch¹y trªn nÒn Linux tuy ®· phong phó song so víi c¸c
hÖ ®iÒu hµnh kh¸c nh− MS Windows th× vÉn cßn cã kho¶ng c¸ch.
Víi sù hç trî cña nhiÒu c«ng ty Tin häc hµng ®Çu (IBM, SUN, HP ...) vµ sù tham
gia ph¸t triÓn cña hµng v¹n chuyªn gia trªn toµn thÕ giíi, c¸c khã kh¨n cña Linux ch¾c
ch¾n sÏ nhanh chãng ®−îc kh¾c phôc. ChÝnh v× lÏ ®ã ®· h×nh thµnh mét sè nhµ cung
Simpo PDF Merge and Split Unregistered Version -
14
cÊp Linux trªn thÕ giíi. B¶ng d−íi ®©y lµ tªn cña mét sè nhµ cung cÊp Linux cã tiÕng
nhÊt vµ ®Þa chØ website cña hä.
§¸ng chó ý nhÊt lµ Red Hat Linux vµ Red Flag Linux. Red Hat ®−îc coi lµ l©u ®êi
vµ tin cËy, cßn Red Flag lµ mét c«ng ty Linux cña Trung quèc, cã quan hÖ víi céng
®ång Linux ViÖt nam vµ chóng ta cã thÓ häc hái mét c¸ch trùc tiÕp kinh nghiÖm cho
qu¸ tr×nh ®−a Linux vµo ViÖt nam.
Tªn c«ng ty §Þa chØ website
Caldera OpenLinux www.caldera.com
Corel Linux www.corel.com
Debian GNU/Linux www.debian.com
Linux Mandrake www.mandrake.com
Red Hat Linux www.redhat.com
Red Flag Linux www.redflag-linux.com
Slackware Linux www.slackware.com
SuSE Linux www.suse.com
TurboLinux www.turbolinux.com
1.2. S¬ bé vÒ c¸c thµnh phÇn cña Linux
HÖ ®iÒu hµnh Linux ®−îc chia thµnh 4 thµnh phÇn nh− sau:
Nh©n (system kernel),
Shell,
HÖ thèng tËp tin (File system),
C¸c tiÖn Ých (utilities) hay lµ hÖ thèng lÖnh cña Linux.
TiÖn Ých chÝnh lµ lÖnh ®· cã s½n trong hÖ ®iÒu hµnh (d−íi ®©y tiÖn Ých ®−îc coi lµ
lÖnh th−êng trùc). Néi dung chÝnh yÕu cña cuèn s¸ch nµy giíi thiÖu chi tiÕt vÒ mét sè
lÖnh th«ng dông nhÊt cña Linux. HÖ thèng tËp tin sÏ ®−îc giíi thiÖu trong ch−¬ng 3.
Trong c¸c ch−¬ng sau cña cuèn s¸ch ®Ò cËp tíi nhiÒu néi dung liªn quan ®Õn nh©n vµ
shell, song ngay sau ®©y th× mét sè nÐt s¬ bé vÒ chóng sÏ ®−îc giíi thiÖu.
1.2.1. S¬ bé vÒ nh©n
Nh©n (cßn ®−îc gäi lµ hÖ lâi) cña Linux, lµ mét bé c¸c m«dun ch−¬ng tr×nh cã vai
trß ®iÒu khiÓn c¸c thµnh phÇn cña m¸y tÝnh, ph©n phèi c¸c tµi nguyªn cho ng−êi dïng
(c¸c tiÕn tr×nh ng−êi dïng). Nh©n chÝnh lµ cÇu nèi gi÷a ch−¬ng tr×nh øng dông víi
phÇn cøng. Ng−êi dïng sö dông bµn phÝm gâ néi dung yªu cÇu cña m×nh vµ yªu cÇu
®ã ®−îc nh©n göi tíi shell: Shell ph©n tÝch lÖnh vµ gäi c¸c ch−¬ng tr×nh t−¬ng øng víi
lÖnh ®Ó thùc hiÖn.
Mét trong nh÷ng chøc n¨ng quan träng nhÊt cña nh©n lµ gi¶i quyÕt bµi to¸n lËp
lÞch, tøc lµ hÖ thèng cÇn ph©n chia CPU cho nhiÒu tiÕn tr×nh hiÖn thêi cïng tån t¹i. §èi
víi Linux, sè l−îng tiÕn tr×nh cã thÓ lªn tíi con sè hµng ngh×n. Víi sè l−îng tiÕn tr×nh
®ång thêi nhiÒu nh− vËy, c¸c thuËt to¸n lËp lÞch cÇn ph¶i ®ñ hiÖu qu¶: Linux th−êng
lËp lÞch theo chÕ ®é Round Robin (RR) thùc hiÖn viÖc lu©n chuyÓn CPU theo l−îng tö
thêi gian.
Thµnh phÇn quan träng thø hai trong nh©n lµ hÖ thèng c¸c m«®un ch−¬ng tr×nh
(®−îc gäi lµ lêi gäi hÖ thèng) lµm viÖc víi hÖ thèng tËp tin. Linux cã hai c¸ch thøc
Simpo PDF Merge and Split Unregistered Version -
15
lµm viÖc víi c¸c tËp tin: lµm viÖc theo byte (kÝ tù) vµ lµm viÖc theo khèi. Mét ®Æc
®iÓm ®¸ng chó ý lµ viÖc tËp tin trong Linux cã thÓ ®−îc nhiÒu ng−êi cïng truy nhËp
tíi nªn c¸c lêi gäi hÖ thèng lµm viÖc víi tËp tin cÇn ®¶m b¶o viÖc tËp tin ®−îc truy
nhËp theo quyÒn vµ ®−îc chia xÎ cho ng−êi dïng.
1.2.2. S¬ bé vÒ shell
Mét sè néi dung chi tiÕt vÒ shell (cßn ®−îc gäi lµ hÖ vá) trong Linux ®−îc tr×nh
bµy trong ch−¬ng "LËp tr×nh trªn shell". Nh÷ng néi dung tr×nh bµy d−íi ®©y cho chóng
ta mét c¸ch nh×n s¬ bé vÒ shell vµ vai trß cña nã trong ho¹t ®éng chung cña hÖ ®iÒu
hµnh.
Ng−êi dïng mong muèn m¸y tÝnh thùc hiÖn mét c«ng viÖc nµo ®ã th× cÇn gâ lÖnh
t−¬ng øng thÓ hiÖn yªu cÇu cña m×nh ®Ó hÖ thèng ®¸p øng yªu cÇu ®ã. Shell lµ bé dÞch
lÖnh vµ ho¹t ®éng nh− mét kÕt nèi trung gian gi÷a nh©n víi ng−êi dïng: Shell nhËn
dßng lÖnh do ng−êi dïng ®−a vµo; vµ tõ dßng lÖnh nãi trªn nh©n t¸ch ra c¸c bé phËn
®Ó nhËn ®−îc mét hay mét sè lÖnh t−¬ng øng víi c¸c ®o¹n v¨n b¶n cã trong dßng
lÖnh. Mét lÖnh bao gåm tªn lÖnh vµ tham sè: tõ ®Çu tiªn lµ tªn lÖnh, c¸c tõ tiÕp theo
(nÕu cã) lµ c¸c tham sè. TiÕp theo, shell sö dông nh©n ®Ó khëi sinh mét tiÕn tr×nh míi
(khëi t¹o tiÕn tr×nh) vµ sau ®ã, shell chê ®îi tiÕn tr×nh con nµy tiÕn hµnh, hoµn thiÖn vµ
kÕt thóc. Khi shell s½n sµng tiÕp nhËn dßng lÖnh cña ng−êi dïng, mét dÊu nh¾c shell
(cßn gäi lµ dÊu nh¾c nhËp lÖnh) xuÊt hiÖn trªn mµn h×nh.
Linux cã hai lo¹i shell phæ biÕn lµ: C-shell (dÊu nh¾c %), Bourne-shell (dÊu nh¾c
$) vµ mét sè shell ph¸t triÓn tõ c¸c shell nãi trªn (ch¼ng h¹n, TCshell - tcsh víi dÊu
nh¾c ngÇm ®Þnh > ph¸t triÓn tõ C-shell vµ GNU Bourne - bash víi dÊu nh¾c bash #
ph¸t triÓn tõ Bourne-shell). DÊu mêi ph©n biÖt shell nãi ë trªn kh«ng ph¶i hoµn toµn râ
rµng do Linux cho phÐp ng−êi dïng thay ®æi l¹i dÊu nh¾c shell nhê viÖc thay gi¸ trÞ
c¸c biÕn m«i tr−êng PS1 vµ PS2. Trong cuèn s¸ch nµy, chóng ta sö dông kÝ hiÖu
"hµng rµo #" ®Ó biÓu thÞ dÊu nh¾c shell.
C-shell cã tªn gäi nh− vËy lµ do c¸ch viÕt lÖnh vµ ch−¬ng tr×nh lÖnh Linux tùa nh−
ng«n ng÷ C. Bourne-shell mang tªn t¸c gi¶ cña nã lµ Steven Bourne. Mét sè lÖnh trong
C-shell (ch¼ng h¹n lÖnh alias) kh«ng cßn cã trong Bourne-shell vµ v× vËy ®Ó nhËn biÕt
hÖ thèng ®ang lµm viÖc víi shell nµo, chóng ta gâ lÖnh:
# alias
NÕu mét danh s¸ch xuÊt hiÖn th× shell ®ang sö dông lµ C-shell; ng−îc l¹i, nÕu xuÊt
hiÖn th«ng b¸o "Command not found" th× shell ®ã lµ Bourne-shell.
LÖnh ®−îc chia thµnh 3 lo¹i lÖnh:
LÖnh th−êng trùc (cã s½n cña Linux). TuyÖt ®¹i ®a sè lÖnh ®−îc giíi thiÖu
trong cuèn s¸ch nµy lµ lÖnh th−êng trùc. Chóng bao gåm c¸c lÖnh ®−îc chøa
s½n trong shell vµ c¸c lÖnh th−êng trùc kh¸c.
TËp tin ch−¬ng tr×nh ng«n ng÷ m¸y: ch¼ng h¹n, ng−êi dïng viÕt tr×nh trªn
ng«n ng÷ C qua bé dÞch gcc (bao gåm c¶ tr×nh kÕt nèi link) ®Ó t¹o ra mét
ch−¬ng tr×nh trªn ng«n ng÷ m¸y.
TËp tin ch−¬ng tr×nh shell (Shell Scrip).
Khi kÕt thóc mét dßng lÖnh cÇn gâ phÝm ENTER ®Ó shell ph©n tÝch vµ thùc hiÖn
lÖnh.
Simpo PDF Merge and Split Unregistered Version -
16
1.3. Giíi thiÖu vÒ viÖc sö dông lÖnh trong Linux
Nh− ®· giíi thiÖu ë phÇn trªn, Linux lµ mét hÖ ®iÒu hµnh ®a ng−êi dïng, ®a
nhiÖm, ®−îc ph¸t triÓn bëi hµng ngh×n chuyªn gia Tin häc trªn toµn thÕ giíi nªn hÖ
thèng lÖnh còng ngµy cµng phong phó; ®Õn thêi ®iÓm hiÖn nay (n¨m 2000) Linux cã
kho¶ng h¬n mét ngh×n lÖnh.
Tuy nhiªn chØ cã kho¶ng vµi chôc lÖnh lµ th«ng dông nhÊt ®èi víi ng−êi dïng.
Cuèn s¸ch nµy còng h¹n chÕ giíi thiÖu kho¶ng vµi chôc lÖnh ®ã. Chóng ta ®õng e ng¹i
vÒ sè l−îng lÖnh ®−îc giíi thiÖu chØ chiÕm mét phÇn nhá trong tËp hîp lÖnh bëi v× ®©y
lµ nh÷ng lÖnh th«ng dông nhÊt vµ chóng cung cÊp mét ph¹m vi øng dông réng lín, ®ñ
tháa m·n yªu cÇu cña chóng ta.
Còng nh− ®· nãi ë trªn, ng−êi dïng lµm viÖc víi m¸y tÝnh th«ng qua viÖc sö dông
tr¹m cuèi: ng−êi dïng ®−a yªu cÇu cña m×nh b»ng c¸ch gâ "lÖnh" tõ bµn phÝm vµ giao
cho hÖ ®iÒu hµnh xö lý.
Khi cµi ®Æt Linux lªn m¸y tÝnh c¸ nh©n th× m¸y tÝnh c¸ nh©n võa ®ãng vai trß tr¹m
cuèi, võa ®ãng vai trß m¸y tÝnh xö lý.
D¹ng tæng qu¸t cña lÖnh Linux cã thÓ ®−îc viÕt nh− sau:
# [] ↵
trong ®ã:
Tªn lÖnh lµ mét d·y ký tù, kh«ng cã dÊu c¸ch, biÓu thÞ cho mét lÖnh cña
Linux hay mét ch−¬ng tr×nh. Ng−êi dïng cÇn hÖ ®iÒu hµnh ®¸p øng yªu cÇu g×
cña m×nh th× ph¶i chän ®óng tªn lÖnh. Tªn lÖnh lµ b¾t buéc ph¶i cã khi gâ lÖnh.
C¸c tham sè cã thÓ cã hoÆc kh«ng cã, ®−îc viÕt theo quy ®Þnh cña lÖnh mµ
chóng ta sö dông, nh»m cung cÊp th«ng tin vÒ c¸c ®èi t−îng mµ lÖnh t¸c ®éng
tíi. ý nghÜa cña c¸c dÊu [, , ] ®−îc gi¶i thÝch ë phÇn quy t¾c viÕt lÖnh.
C¸c tham sè ®−îc ph©n ra thµnh hai lo¹i: tham sè khãa vµ tham sè vÞ trÝ. Tham sè
vÞ trÝ th−êng lµ tªn tËp tin, th− môc vµ th−êng lµ c¸c ®èi t−îng chÞu sù t¸c ®éng cña
lÖnh. Khi gâ lÖnh, tham sè vÞ trÝ ®−îc thay b»ng nh÷ng ®èi t−îng mµ ng−êi dïng cÇn
h−íng t¸c ®éng tíi. Tham sè khãa chÝnh lµ nh÷ng tham sè ®iÒu khiÓn ho¹t ®éng cña
lÖnh theo c¸c tr−êng hîp riªng. Trong Linux, tham sè khãa th−êng b¾t ®Çu bëi dÊu trõ
"-" hoÆc hai dÊu trõ liªn tiÕp "--". Khi gâ lÖnh, còng gièng nh− tªn lÖnh, tham sè khãa
ph¶i ®−îc viÕt chÝnh x¸c nh− tr×nh bµy trong m« t¶ lÖnh. Mét lÖnh cã thÓ cã mét sè
hoÆc rÊt nhiÒu tham sè khãa. Phô thuéc vµo yªu cÇu cô thÓ cña m×nh, ng−êi dïng cã
thÓ chän mét hoÆc mét sè c¸c tham sè khãa khi gâ lÖnh.
Trong c¸c m« t¶ lÖnh, phæ biÕn xuÊt hiÖn c¸c tïy chän lÖnh mµ ®−îc viÕt t¾t lµ
tïy-chän. C¸c tïy chän lÖnh (hÇu hÕt lµ c¸c tham sè khãa) cho phÐp ®iÒu chØnh ho¹t
®éng cña lÖnh trong Linux, lµm cho lÖnh cã tÝnh phæ dông cao. C¸c tuú chän lÖnh cho
phÐp lÖnh cã thÓ ®¸p øng ý muèn cña ng−êi dïng ®èi víi hÇu hÕt (tuy kh«ng ph¶i lóc
nµo còng vËy) c¸c t×nh huèng ®Æt ra cho thao t¸c øng víi lÖnh.
Ký hiÖu "↵" biÓu thÞ viÖc gâ phÝm hÕt dßng . §Ó kÕt thóc mét yªu
cÇu, ng−êi dïng nhÊt thiÕt ph¶i gâ phÝm "↵".
VÝ dô, khi ng−êi dïng gâ lÖnh xem th«ng tin vÒ c¸c tËp tin:
# ls -l g*↵
trong lÖnh nµy:
Simpo PDF Merge and Split Unregistered Version -
17
ls lµ tªn lÖnh thùc hiÖn viÖc ®−a danh s¸ch c¸c tªn tËp tin/ th− môc con
trong mét th− môc,
-l lµ tham sè khãa, cho biÕt yªu cÇu xem ®Çy ®ñ th«ng tin vÒ c¸c ®èi t−îng
hiÖn ra. Chó ý, trong tham sè khãa ch÷ c¸i (ch÷ "l")