Tài liệu tham khảo: Hệ điều hành Linux

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

pdf186 trang | Chia sẻ: franklove | Lượt xem: 2190 | Lượt tải: 1download
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")