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

Tài liệu Bài giảng Hệ điều hành Unix: Hệ điều hành Unix Bài 1: Tìm hiểu Linux I) Vài dòng về lịch sử Unix : Giữa năm 1960, AT & T Bell Laboratories và một số trung tâm khác tham gia vào một cố gắng nhằm tạo ra một hệ điều hành mới được đặt tên là Multics (Multiplexed Information and Computing Service). Đến năm 1969, chương trình Multics bị bãi bỏ vì đĩ là một dự án quá nhiều tham vọng và do đĩ khơng khả thi. Thậm chí nhiều yêu cầu đối với Multics thời đĩ đến nay vẫn chưa cĩ được trên các Unix mới nhất. Nhưng Ken Thompson, Dennis Richie và một số đồng nghiệp của Bell Labs đã khơng bỏ cuộc. Thay vì xây dựng một hệ điều hành làm nhiều việc một lúc như Multics, họ quyết định phát triển một hệ điều hành đơn giản chỉ làm tốt một cơng việc là chạy chương trình (run program). Hệ điều hành sẽ cĩ rất nhiều các cơng cụ (tool) nhỏ, đơn giản, gọn nhẹ (compact) và chỉ làm tốt một cơng việc. Bằng cách kết hợp nhiều cơng cụ lại ới nhau, họ sẽ cĩ một chương trình thực hiện một cơng việc phức tạp. Đĩ cũng...

pdf70 trang | Chia sẻ: hunglv | Lượt xem: 1293 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Hệ điều hành Unix, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Heä ñieàu haønh Unix Baøi 1: Tìm hieåu Linux I) Vaøi doøng veà lòch söû Unix : Giữa năm 1960, AT & T Bell Laboratories và một số trung tâm khác tham gia vào một cố gắng nhằm tạo ra một hệ điều hành mới được đặt tên là Multics (Multiplexed Information and Computing Service). Đến năm 1969, chương trình Multics bị bãi bỏ vì đó là một dự án quá nhiều tham vọng và do đó không khả thi. Thậm chí nhiều yêu cầu đối với Multics thời đó đến nay vẫn chưa có được trên các Unix mới nhất. Nhưng Ken Thompson, Dennis Richie và một số đồng nghiệp của Bell Labs đã không bỏ cuộc. Thay vì xây dựng một hệ điều hành làm nhiều việc một lúc như Multics, họ quyết định phát triển một hệ điều hành đơn giản chỉ làm tốt một công việc là chạy chương trình (run program). Hệ điều hành sẽ có rất nhiều các công cụ (tool) nhỏ, đơn giản, gọn nhẹ (compact) và chỉ làm tốt một công việc. Bằng cách kết hợp nhiều công cụ lại ới nhau, họ sẽ có một chương trình thực hiện một công việc phức tạp. Đó cũng là cách thức người lập trình viết ra chương trình. Peter Neumann đặt tên Unix cho hệ điều hành “đơn giản” này. Vào năm 1973, sử dụng ngôn ngữ C của Richie. Thompson đã viết lại toàn bộ hệ điều hành Unix và đây là một thay đổi quan trọng của Unix, vì nhờ đó Unix từ chỗ là một hệ điều hành cho một máy PDP-xx trở thành hệ điều hành của các máy khác với một cố gắng tối thiểu để chuyển đổi. Khoảng 1977 bản quyền của UNIX được giải phóng và hệ điều hành UNIX trở thành một thương phẩm. Hai dòng UNIX: System V của AT&T, Novell và Berkeley Software Distribution (BSD) của Đại học Berkeley. • System V:Các phiên bản UNIX cuối cùng do AT&T xuất bản là System III và một vài phát hành (releases) của System V. Hai bản phát hành gần đây của System V là Release 3.2 (SVR 3.2) và Release 4.2 (SVR 4.2). Phiên bản SVR 4.2 là phổ biến nhất cho từ máy PC cho tới máy tính lớn. • BSD: Từ 1970 Computer Science Research Group của University of California tại Berkelry (UCB) xuất bản nhiều phiên bản UNIX, được biết đến dưới tên Berkeley Software Distribution, hay BSD. Cải biến của PDP-11 được gọi là 1BSD và 2BSD. Trợ giúp cho các máy tính của Digital Equipment Corporation VAX được đưa vào trong 3BSD. Phát triển của VAX được tiếp tục với 4.0BSD, 4.1BSD, 4.2BSD và 4.3BSD. Trước 1992, UNIX là tên thuộc sở hữu của AT&T. từ 1992, khi AT&T bán bộ phận Unix cho Novell, tên Unix thuộc sở hữu của X/Open foundation. Tất cả các hệ điều hành thỏa mãn một số yêu cầu đều có thể gọi là Unix. Ngoài ra, Institute of Electrical and Electronic Engineers (IEEE) đã thiết lập chuẩn “An Industry-Recognized Operating System Interface Standard based on the UNIX Operating System”. Kết quả cho ra đời POSIX.1 (cho giao diện C) và POSIX.2 (cho hệ thống lệnh trên Unix). Kết lại, vấn đề chuẩn hóa UNIX vẫn còn rất xa kết quả cuốn cùng. Nhưng đây là quá trình cần thiết có lợi cho sự phát triển của ngành tin học nói chung và sự sống còn của hệ điều hành UNIX nói riêng. Các phiên bản của Unix Trang 1 II) Lòch söû phaùt trieån cuûa Linux vaø caùc phaân phoái ngaøy nay : Linux là một hệ điều hành dạng UNIX (Unix-like Operating System) chạy trên máy PC với bộ điều khiển trung tâm (CPU) Intel 80386 trở lên, hay các bộ vi xử lý trung tâm tương thích AMD, Cyrix. Linux ngày nay còn có thể chạy trên các máy Macintosh hoặc SUN Space. Linux thỏa mãn chuẩn POSIX.1. Linux được viết lại toàn bộ từ con số không, tức là không sử dụng một dòng lệnh nào của Unix để tránh vấn đề bản quyền của Unix. Tuy nhiên, hoạt động của Linux hoàn toàn dựa trên nguyên tắc của hệ điều hành Unix. Vì vậy, nếu một người nắm được Linux thì sẽ nắm được UNIX. Nên chú ý rằng giữa các Unix sự khác nhau cũng không kém gì giữa Unix và Linux. Linux là hệ điều hành phân phát miễn phí, phát triển trên mạng Internet, tựa Unix và được sử dụng trên máy tính cá nhân (PCs). Linux đã phát triển nhanh chóng và trở nên phổ biến trong thời gian ngắn . Nó nhanh chóng được nhiều người sử dụng như vậy là nhờ người dùng không phải trả tiền bản quyền., mọi người có thể dễ dàng download từ Internet hay mua tại các hiệu bán CD. Linux là hiệu điều hành có hiệu năng cao, trong cả các máy tính có cấu hình cao hay thấp. Hiệu điều hành này hỗ trợ các máy tính sử dụng 32 cũng như 64 bit và rất nhiều phần mềm khác nhau. Năm 1991, Linus Torvalds, sinh viên của Đại học Tổng hợp Helsinki Phần Lan bắt đầu xem xét Minix, một phiên bản của Unix làm ra với mục đích nghiên cứu cách tạo ra một hệ điều hành Unix chạy trên máy PC với bộ vi xử lý Intel 80386. Ngày 25/8/1991, Linus cho ra version 0.01 và thông báo trên comp.os.minix của Internet về dự định của mình về Linux. 1/1992, Linus cho ra version 0.02 với shell và C compiler. Linus không cần Minix nữa để recompile hệ điều hành của mình. Linus đặt tên hệ điều hành của mình là Linux. 1994, phiên bản chính thức 1.0 được phát hành. Quá trình phát triển của Linux được tăng tốc bởi sự giúp đỡ của chương trình GNU (GNU’s Not Unix), đó là chương trình phát triển các Unix có khả năng chạy trên nhiều platform. Đến hôm nay, cuối 2001, phiên bản mới nhất của Linux kernel là 2.4.2-2, có khả năng điều khiển các máy đa bộ vi xử lý và rất nhiều các tính năng khác. Trang 2 III) Caùc ñaëc tính cô baûn cuûa Linux : Linux hỗ trợ các tính năng cơ bản thường thấy trong các hệ điều hành Unix và nhiều tính năng khác mà không hệ điều hành nào có được. Linux cung cấp môi trường phát triển một cách đầy đủ bao gồm các thư viện chuẩn, các công cụ lập trình, trình biên dịch, debug …như bạn mong đợi ở các hệ điều hành Unix khác. Hệ thống Linux trội hơn các hệ thống khác trên nhiều mặt, mà người dùng quan tâm như sự phát triển, tốc độ, dễ sử dụng và đặc biệt là sự phát triển và hỗ trợ mạng. Một số đặc điểm của Linux chúng ta cần quan tâm : ™ Đa tiến tình. Đa tiến trình là đặc tính cho phép người dùng thực hiện nhiều tiến trình đồng thời. Ví dụ bạn vừa in, vừa soạn văn bản, vừa nghe nhạc… cùng một lúc. Máy tính sử dụng chỉ một CPU nhưng xử lý đồng thời nhiều tiến trình cùng lúc. Thực chất là tại một thời điểm CPU chỉ xử lý được một mệnh lệnh, việc thực hiện cùng lúc nhiều công việc là giả tạo bằng cách làm cách việc xen kẻ và chuyển đổi trong thời gian nhanh. Do đó người dùng cứ ngỡ là thực hiện đồng thời ™ Tốc độ cao Hệ điều hành Linux được biết đến như một hệ điều hành có tốc độ xử lý cao, bởi vì nó thao tác rất hiệu quả đến tài nguyên như : bộ nhớ, đĩa… ™ Bộ nhớ ảo Khi hệ thống sử dụng quá nhiều chương trình lớn dẫn đến không đủ bộ nhớ chính (RAM) để hoạt động. Trong trường hợp đó, Linux dùng bộ nhớ từ đĩa là partition swap. Hệ thống sẽ đưa các chương trình hoặc dữ liệu nào chưa có yêu cầu xuất vùng swap này, khi có nhu cầu thì hệ thống chuỵển lên lại bộ nhớ chính. ™ Sử dụng chung thư viện Hệ thống Linux có rất nhiều thư viện dùng chung cho nhiều ứng dụng. Điều này sẽ giúp hệ thống tiết kiệm được tài nguyên cũng như thời gian xử lý. ™ Sử dụng các chương trình xử lý văn bản Chương trình xử lý văn bản là một trong nhưng chương trình rất cần thiêt đối với người sử dụng. Linux cung cấp nhiều chương trình cho phép người dùng thao tác với văn bản như vi, emacs, nroff ™ Sử dụng giao diện cửa sổ Giao diện cửa sổ dùng Hệ thống X Window, có giao diện như hệ điều hành Window. Với hệ thống này người dùng rất thuận tiện khi làm việc trên hệ thống. X window System hay còn gọi tắt là X được phát triển tại viện Massachusetts Institute of Technology. Nó được phát triển để tạo ra môi trường làm việc không phụ thuộc phần cứng. X chạy dưới dạng client –server. Hệ thống X window hoạt động qua hai bộ phận : Phần server còn gọi là X server Phần client được gọi là X window manager hay desktop environment. X server sử dụng trong hầu hết các bản phân phối của Linux là Xfree86. Client sử dụng thường là KDE (K Desktop Environment0 và GNOME (GNU Network Object Model Environment) ™ Dich vụ Samba sử dụng tài nguỵên đĩa, máy in với Window. Tên Samba xuất phát từ giao thức Server Message Block (SMB) mà Window sử dụng để chia sẻ file và máy in. Samba là chương trình sử dụng protocol SMB chạy trên Linux. Sử dụng Samba bạn có thể chia sẻ tập tin và máy in với các máy Window Trang 3 ™ Network Information Service (NIS) Dịch vụ NIS cho phép chia sẻ các file password và group trên mạng. NIS là một hệ thống cơ sở dữ liệu dạng client-server, chứa các thông tin của người dùng và dùng để chứng thực người dùng. NIS xuất phát từ hãng Sun Microsystems với tên là Yellow Pages. ™ Lập lịch hoạt động cho các chương trình, ứng dụng. Chương trình lập lịch trong Linux xác định các ứng dụng, script thực thi theo một sự sắp xếp của người dùng. Chương trình này được gọi là cron. ™ Các tiện ích sao lưu dữ liệu Linux cung cấp các tiện ích như tar, cpio và dd để sao lưu và backup dữ liệu. RedHat Linux còn cung cấp tiện ích Backup and Restore System Unix (BRU) cho phép tự động backup dữ liệu theo lịch. ™ Hỗ trợ nhiều ngôn ngữ lập trình. Linux cung cấp một môi trường lập trình Unix đầy đủ bao gồm các thư viện chuẩn, các công cụ lập trình, trình biên dịch, chương trình debug chương trình mà bạn có thể tìm thấy trong các hệ điều hành Unix khác. Ngôn ngữ chú yếu sử dụng trong các hệ điều hành Unix là C và C++. Linux dùng trình biên dịch cho C và C++ là gcc, chương trình biên dịch này rất mạnh, hỗ trợ nhiều tính năng. Ngoài C, Linux cũng cung cấp các trình biên dịch, thông dịch cho các ngôn ngữ khác như Pascal, FORTRAN, Java… IV) Nhöõng öu ñieåm cuûa Linux : Trong soá nhöõng heä ñieàu haønh thoâng duïng ngaøy nay, Linux laø heä ñieàu haønh mieãn phí ñöôïc söû duïng roäng raõi nhaát. Vôùi caùc PC IBM, Linux cung caáp moät heä thoáng ñaày ñuû vôùi nhöõng chöùc naêng multitasking vaø multiuser laäp saün, taän duïng ñöôïc söùc maïnh xöû lyù cuûa maùy 386 vaø cao hôn. Linux coù saün boä giao thöùc TCP/IP giuùp baïn deã daøng keát noái Internet. Linux cuõng coù Xfree86 cung caáp cho baïn moät giao dieän ñoà hoïa GUI ñaày ñuû. Nhöõng phaàn naøy baïn khoâng caàn phaûi maát tieàn mua chæ caàn taûi xuoáng töø Internet. 1) Khaû naêng thích öùng cuûa caùc heä môû : Khaû naêng thích öùng cuûa moät heä ñieàu haønh giuùp baïn chuyeån noù töø moät neàn naøy sang moät neàn khaùc maø vaãn hoaït ñoäng toát. Tröôùc kia UNIX chæ hoaït ñoäng treân moät neàn duy nhaát, ñoù laø maùy ñieän toaùn mini DEC PDP-7. Hieän nay, UNIX chaïy ñöôïc treân baát kyø neàn naøo, töø maùy tính xaùch tay cho ñeán nhöõng maùy tính lôùm daïng mainframe. Nhôø tính thích öùng naøy, caùc maùy ñieän toaùn chaïy UNIX treân nhieàu neàn khaùc nhau coù theå lieân laïc vôùi nhau moät caùch chính xaùc vaø höõu hieäu vôùi nhöõng loaïi neàn khaùc. 2) Öùng duïng : Hieän nay, Linux coù haøng ngaøn öùng duïng, bao goàm caùc chöông trình baûng bieåu, cô sôû döõ lieäu, xöû lyù vaên baûn... Ngoaøi ra, Linux cuõng coù haøng loaït troø chôigiaûi trí treân neàn vaên baûn hoaëc ñoà hoïa. 3) Lôïi ích cho giôùi chuyeân nghieäp ñieän toaùn : Ñeán vôùi Linux, giôùi ñieän toaùn seõ coù haøng loaït coâng cuï phaùt trieån chöông trình, bao goàm caùc boä bieân dòch cho nhieàu ngoâng ngöõ laäp trình haøng ñaàu hieän nay, chaúng haïn nhö C, C++, ... Trang 4 V) Caùc baát tieän cuûa Linux : Coù leõ ñieàu trôû ngaïi nhaát cuûa Linux laø khoâng coù moät coâng ty naøo chòu traùch nhieäm phaùt trieån heä ñieàu haønh Linux naøy. Neáu coù ñieàu gì truïc traëc, baïn khoâng theå goïi mieãn phí cho moät boä phaän hoã trôï kyõ thuaät naøo caû. 1) Thieáu trôï giuùp kyõ thuaät : Thieáu nguoàn trôï giuùp kyõ thuaät khoâng chæ ñoái vôùi Linux maø caû vôùi nhöõng öùng duïng Linux. Maëc duø, hieän coù vaøi chöông trình mang tính thöông maïi daønh cho Linux, song ña phaàn laïi laø chöông trình mieãn phí do moät nhoùm nhoû bieân soaïn roài ñöa leân maïng cho caû theá giôùi xaøi chung. 2) Caùc vaán ñeà veà phaàn cöùng : Moät ñieàu baát tieän nöõa laø thöïc söï Linux khoâng deã caøi ñaët vaø raát nhieàu khi khoâng töông thích vôùi moät vaøi phaàn cöùng naøo ñoù. Caùc nhaø phaùt trieån Linux laø nhöõhg ngöôøi soáng raõi raùc treân haønh tinh naøy. Do ñoù, khoâng theå coù moät chöông trình ñöôïc ñaûm baûo chaát löôïng nhö thoâng leä. Caùc nhaø phaùt trieån caûm thaáy chöông trình cuûa mình duøng ñöôïc laø tung ra cho moïi ngöôøi cuøng xaøi chöù khoâng coù moät thôøi gian thöû nghieäm chöông trình. Hôn nöõa, caùc phaàn cöùng maø Linux hoã trôï tuøy thuoäc vaøo loaïi maùy moùc maø caùc nhaø phaùt trieån söû duïng khi soaïn thaûo ñoaïn maõ. Chính vì theá maø Linux khoâng theå chaïy treân taát caû moïi neàn phaàn cöùng cuûa PC hieän nay. VI) Kieán truùc cuûa heä ñieàu haønh Linux : TIEÄN ÍCH ỨNG DỤNG SHELL KERNEL PHAÀN CÖÙNG NGƯỜI DÙNG 1) Kernel : Là trung tâm điều khiển của hệ điều hành Linux, chứa các mã nguồn điều khiển hoạt động của toàn bộ hệ thống. Hạt nhân được phát triển không ngừng, thường có 2 phiên bản mới nhất, một bản dạng phát triển mới nhất và một bản ổn định mới nhất. Kernel được thiết kế theo dạng modul do vậy kích thước thật sự của Kernel rất nhỏ. Chúng chỉ load những bộ phận cần thiết lên bộ nhớ, các bộ phận khác sẽ load lên nếu có yêu cầu sử dụng. Nhờ vậy so với các hệ điều hành khác Linux không sử dụng lãng phí bộ nhớ nhờ không load mọi thứ lên mà không cần quan tâm nó có sử dụng không. Trang 5 Kernel được xem là trái tim của hệ điều hành Linux, ban đầu phát triển cho các CPU Intel 80386. Điểm mạnh của loại CPU này là khả năng quản lý bộ nhớ. Kernel của Linux có thể truy xuất tới toàn bộ tính năng phần cứng của máy. Yêu cầu của các chương trình cần rất nhiều bộ nhớ, trong khi hệ thống có ít bộ nhớ, hệ điều hành sử dụng không gian đĩa hoán đổi (swap space) để lưu trữ các dữ liệu xử lý của chương trình. Swap space cho phép ghi các trang của bộ nhớ xuất các vị trí dành sẵn trong đĩa và xem nó như phần mở rộng của vùng nhớ chính. Bên cạnh sử dụng swap space, Linux còn hỗ trợ các đặc tính sau : • Bảo vệ vùng nhớ giữa các tiến trình, điều này không cho phép một tiến trình làm tắt toàn bộ hệ thống. • Chỉ load các chương trình khi có yêu cầu 2) Shell : Shell cung cấp tập lệnh cho người dùng thao tác với kernel để thực hiện công việc. Shell đọc các lệnh từ người dùng và xử lý. Ngoài ra shell còn cung cấp một số đặc tính khác như : chuyển hướng xuất nhập, ngôn ngữ lệnh để tạo các tập tin lệnh tương tự file bat trong DOS. Có nhiều loại shell được dùng trong Linux. Điểm quan trọng để phân biệt các shell với nhau là bộ lệnh của mỗi shell. Ví dụ C shell thì sử dụng các lệnh tương tự ngôn ngữ C, Bourne Shell thì dùng ngôn ngữ lệnh khác. Shell sử dụng chính trong Linux là GNU Bourne Again Shell (bash). Shell này là shell phát triển từ Bourne Shell, là shell sử dụng chính trong các hệ thống Unix, với nhiều tính năng mới như : điều khiển các tiến trình, các lệnh history, tên file dài … 3) Caùc tieän ích : Các tiện ích thường thân thiện với người dùng thường xuyên. Nó dùng cho nhiều thứ như thao tác tập tin, đĩa, nén, sao lưu tập tin … Tiện ích trong Linux có thể là các lệnh thao tác hay các chương trình giao diện đồ họa. Hầu hết các tiện ích dùng trong Linux là sản phẩm của chương trình GNU. Linux có sẵn rất nhiều tiện ích như trình biên dịch, trình gỡ lỗi, soạn văn bản … Tiện ích có thể được sử dụng bởi người dùng hoặc hệ thống. Một số tiện ích được xem là chuẩn trong hệ thống Linux như passwd, ls, ps, vi … 4) Chöông trình öùng duïng : Khác với các tiện ích, các ứng dụng như chương trình word, hệ quản trị cơ sở dữ liệu ... là các chương trình có độ phức tạp lớn và được các nhà sản xuất viết ra. Trang 6 Baøi 2: Caøi ñaët I) Yeâu caàu phaàn cöùng : Linux không đòi hỏi máy có cấu hình mạnh. Tuy nhiên nếu phần cứng có cấu hình thấp quá thì có thể không chạy được Xwindow hay các ứng dụng có sẵn. Cấu hình tối thiểu nên dùng: • CPU : Pentium MMX trở lên. • RAM : 32 MB • Đĩa cứng : >2G • 2M cho card màn hình đồ họa II) Ñóa cöùng vaø phaân vuøng ñóa trong Linux : Đĩa cứng được phân ra nhiều vùng khác nhau gọi là partition. Mỗi partition sử dụng một hệ thống tập tin và lưu trữ dữ liệu. Mỗi đĩa bạn chỉ chia được tối đa 4 partion chính (primary). Giới hạn như vậy là do Master Boot Record của đĩa chỉ ghi tối đa 4 chỉ mục tới 4 partition. Để tạo nhiều partition để lưu trữ dữ liệu ( hơn 4) người ta dùng partition mở rộng (extended partition). Thực ra partition mở rộng cũng là primary partition nhưng cho phép tạo các partition con được gọi là logic partition trong nó. Quản lý ổ đĩa và partition trong Linux Như chúng ta đã biết qua chương 2, Linux sử dụng cơ chế truy xuất ổ đĩa thông qua tập tin. Mỗi ổ đĩa được gán với một tập tin trong thư mục /dev/. Ký hiệu ổ đĩa fd cho ổ mềm, hd cho ổ cứng, sd dành cho ổ SCSI. Ký tự a, b, c … gắn thêm vào để xác định các ổ đĩa khác nhau cùng loại. Ví dụ : ổ cứng thứ nhất hda, ổ cứng thứ 2 hdb …xác định các partition trong ổ đĩa người ta dùng các số đi kèm. Theo qui định partition chính và mở rộng được gán số từ 1 – 4. Các partition logic được gán các giá trị từ 5 trở đi. Ví dụ : hda1 – FAT hda2 – Linux Native hda5 hda6 hda3 – Extended partition Primary Partition Như hình vẽ trên là các partition của ổ cứng thứ nhất hda: có 2 partition chính ký hiệu là hda1 và hda2, một partititon mở rộng là hda3. Trong partition mở rộng hda3 có 2 partition logic có ký hiệu là hda6 và hda5. Trong Linux bắt buộc phải có tối thiểu 2 partition. • Partition chính chứa thư mục gốc (/) và hạt nhân ( gọi là Linux Native partition) • Partition swap làm không gian tráo đổi dữ liệu khi vùng nhớ chính đầy.(Swap Partition). Kích thước của phần swap sử dụng tùy thuộc hệ thống mình sử dụng nhiều hay ít ứng dụng. Thông thường thì kích thước vùng swap bằng kích thước bộ nhớ chính. Trang 7 III) Khôûi ñoäng chöông trình caøi ñaët : 1) CD-ROM : Nếu máy bạn có CD-ROM, bạn hãy reset máy tính, chỉnh lại BIOS thứ tự boot CD- ROM đầu tiên và bỏ đĩa cài đặt vào ổ CD. 2) Boot töø ñóa khôûi ñoäng Windows : BIOS của máy bạn không hổ trợ boot được từ CD, bạn có thể sử dụng boot từ đĩa khởi động DOS. Bạn bỏ CD cài đặt vào ở CD-ROM. Giả sử ổ CD của bạn là ổ E:. Bước kế bạn thực hiện. E: E:\>Cd Dosutils E:\>Autoboot 3) Boot töø ñóa khôûi ñoäng Linux : CD cài đặt Linux có chứa file image của đĩa mềm cài đặt trong thư mục E:>\images\bootnet.img. Để bung file image này ra đĩa mềm chúng ta dùng chương trình rawrite có trong CD trong thưmục dosultils. Các sử dụng như sau: E:\dosutils\rawrite Enter disk image soure file name : ..\bootnet.img Enter the target disk device : A Please insert formatted diskette into device A: and press – ENTER -- : enter E:>\ Bạn có thể dùng chương trình nc trênDos/Window để bung file image này ra đĩa mềm. IV) Caùc böôùc caøi ñaët heä ñieàu haønh Linux : 1) Chọn chế độ cài : Khi chương trình cài đặt khởi động sẽ hiển thị màn hình : Trang 8 Chúng ta có thể chọn các chế độ cài : • text. Chương trình cài đặt dưới dạng text. • [Enter] chế độ đồ họa. • expert sử dụng lệnh, dùng cho người rành thao tác cài đặt. • nofb : Sử dụng khi chương trình cài đồ họa không hoạt động tốt. • linux dd cài từ đĩa cứng Hướng dẫn dưới đây sử dụng chế độ cài dạng đồ họa. 2) Chọn phương thức cài đặt : Nguồn cài đặt từ : • CD-Rom Có thể boot từ CD-ROM hoặc khởi động bằng đĩa mêm boot. • Đĩa cứng Cần sử dụng đĩa boot. • NFS image Sử dụng đĩa khởi động mạng. Kết nối tới NFS sever. • FTP Sử dụng đĩa khởi động mạng. Cài trực tiếp qua kết nối FTP. • HTTP Sử dụng đĩa khởi động mạng. Cài trực tiếp qua kết nối HTTP. 3) Chọn ngôn ngữ hiển thị trong quá trình cài đặt : Chọn ngôn ngữ rồi chọn Next Trang 9 4) Cấu hình bàn phím : Chọn loại keyboard của mình. Nếu không có thì chọn loại Generic phù hợp. Chọn Next 5) Chọn cấu hình chuột (mouse) : Chọn loại chuột phù hợp với chuột của của mình. Khi chọn lưu ý cổng gắn chuột là serial hay PS/2. Nếu không có loại nào thích hợp thì chọn loại Generic. Chọn Next 6) Lời chào mừng (Welcome to Linux) : Đây là lời giới thiệu về hệ điều hành, nơi bạn đăng ký sản phẩm Office… Chọn Next. Trang 10 7) Lựa chọn cài đặt : Lựa chọn cài đặt hay upgrade hệ thống. Các loại cài đặt : • Cài đặt máy trạm • Cài máy chủ • Cài cho máy laptop • Tùy chọn. 8) Chia đĩa cài đặt : Bạn có 3 lựa chọn : • Tự động cài không cần chia lại partition .Trong trường hợp này bạn phải chắc chắn đĩa mình đang chia partition phù hợp cho việc cài đặt. • Chia partition bằng Disk Druid. Đây là cách chia partition dưới dạng đồ họa dễ dùng. Bạn nên chọn cách này để chia lại partition cho đĩa. Trang 11 • Dùng fdisk để chia partition. Bằng cách này bạn phải dùng lệnh để thực hiện. Nếu bạn thường xuyên sử dụng hoặc nắm vững các lệnh của fdisk thì có thể sử dụng. 9) Chia đĩa bằng Disk Druid : Disk Druid hiển thị các partition của đĩa bằng dưới chế độ đồ họa ở phía trên. Bạn có thể chọn từng partition để thao tác. Phía dưới là chi tiết các partition gồm kích thước, loại hệ thống file, thư mục được mount vào … Các nút trong Disk Druid. • New : Tạo partition mới. • Edit : Thay đổi lại các tham số một partition được chọn. • Delete : Xóa partition được chọn. • Reset : Phục hồi lại trạng thái đĩa như trước khi thao thác. • Make RAID : Sử dụng với RAID (Redundant Array of Independent Disks) Các trường mô tả trong các partition • Device : Tên đĩa của partition • Start : sector bắt đầu của partition trong đĩa. • End : sector kết thúc của partition trong đĩa. • Size :Kích thước của partition (Tính theo MB). • Type : Hệ thống tập tin cho partition • Mount point : Chỉ thư mục mount trên partition này. 10) Cài đặt chương trình Boot Loader : Boot Loader là chương trình cho phép bạn chọn các hệ điều hành để khởi động qua menu. Khi chúng ta chọn, thì chúng xác định các tập tin cần thiết để khởi động hệ điều hành và giao quyền điều khiển lại cho Hệ điều hành. Boot Loader có thể được cài vào Master Boot record hoặc vào sector đầu tiên của partition. Trang 12 Linux cho phép bạn sử dụng chương trình Boot Loader là GRUB hoặc LILO. GRUB là chương trình mới có thể dùng để khởi động các hệ điều hành khác như Win9x. • Bạn chọn cài Boot Loader vào Master Boot Record khi chưa có chương trình Boot Loader nào ( Ví dụ như của Window) được cài, hoặc bạn chắc chắn chương boot loader của bạn có thể khởi động được các hệ điều hành khác trong máy của mình. Khi cài lên MBR thì các chương trình Boot Loader khác sẽ bị thay thế. • Chọn cài Boot loader vào sector đầu của partition cài đặt khi bạn đã có chương trình Boot Loader tại MBR và không muốn thay thế nó. Trong trường hợp này chương trình boot loader kia nắm quyền điều khiển trước và trỏ đến chương trình boot loader này khi có yêu cầu khởi động hệ điều hành này. • Bạn không cài chương trình Boot loader, khi đó bạn phải sử dụng đĩa mềm boot để khởi động. 11) Cấu hình mạng : Bạn có thể chọn cấu hình TCP/IP động qua dịch vụ DHCP hoặc cấu hình cụ thể. Active on boot : Card mạng được hoạt động khi hệ điều hành khởi động. Trang 13 Host name : Nếu bạn có tên dns đầy đủ thì khai báo tên đầy đủ. Trong trường hợp bạn không tham gia vào mạng thì cũng dùng tên máy. Nếu không có tên nào được điền vào thì giá trị mặc nhiên sử dụng là localhost Các trường không có giá trị thì các trường đó không được sử dụng trong hệ thống. 12) Cấu hình fire-wall : 13) Ngôn ngữ hỗ trợ trong Linux : Bạn có thể cài đặt và sử dụng nhiều ngôn ngữ trong Linux. Bạn chọn ngôn ngữ mặc nhiên và các ngôn ngữ khác để sử dụng. Chọn Next để tiếp tục. Trang 14 14) Cấu hình khu vực địa lý của hệ thống : Các vị trí chia theo châu lục. Ở Việt Nam có thể dùng Asia/Saigon 15) Cấu hình tài khoản người dùng : • Đặt password cho root. Linux bắt buộc chiều dài tối thiểu của password là 6 ký tự. Bạn nên đặt password gồm có ký tự, số và các ký tự đặc biệt để đảm bảo an toàn. Lưu ý password phân biệt chữ hoa và thường. Bạn phải đánh vào 2 lần, khi dòng chữ bên dưói xuất hiện “ Root password accepted” thì được. • Nếu bạn muốn tạo thêm các tài khoản ngừơi dùng khác thì có thể tạo thêm. Không tạo cũng được. Trang 15 16) Cấu hình chứng thực : Nếu bạn không sử dụng password mạng có thể bỏ qua cấu hình này nhưng vẫn sử chế độ chọn mặc nhiên (chọn Enable MD5 passwords và Enable shadow passwords) • Enable MD5 passwords : cho phép password sử dụng tới 256 ký tự thay vì chỉ tới 8 ký tự • Enable shadow passwords : cung cấp cơ chế lưu trữ password an toàn. Password được lưu trữ trong file /etc/shadow và chỉ có root mới được đọc. • Enable NIS : cho phép một nhóm máy trong một NIS domain sử dụng chung file passwd và group. Chọn các tham số sau : o NIS domain : Xác định NIS domain mà máy này tham gia o Use broadcast to find NIS server : Cho phép sử dụng thông điệp quảng bá để tìm NIS server. o NIS Server : Xác định NIS server. • Enable LDAP : Hệ thống của bạn sử dụng LDAP cho một vài hoặc tất cả các phép chứng thực. o LDAP Server : Xác định LDAP server (dùng địa chỉ IP) o LDAP Base DN cho phép tìm kiếm thông tin người dùng dựa trên DN(Distinguished Name) o Use TLS (Transport Layer Security) lookups : tùy chọn này cho phép LDAP gởi tên người dùng và password mã hóa tới LDAP server trước khi chứng thực. • Enable Kerberos Kerberos là hệ thống cung cấp các dịch vụ chứng thực trên mạng. Các lựa chọn : o Realm cho phép bạn truy xuất tới mạng sử dụng Kerberos. o KDC cho phép bạn truy xuất tới Key Distribution Center (KDC). o Admin Server cho phép bạn truy xuất tới server chạy kadmin • Enable SMB Authentication Cài PAM để dùng một Samba server chứng thực cho các client Trang 16 o SMB Server : Xác định samba server mà các máy trạm kết nối tới để chứng thực. o SMB Workgroup : Xác định workgroup mà samba server được cấu hình tham gia. 17) Chọn các chương trình và package cài đặt : Bạn chọn các chương trình cần cài đặt. Chọn everything là cài tất cả các chương trình. Nếu bạn nắm rõ các package cần thiết cho các chương trình mình mong muốn thì chọn Select individual packages 18) Cấu hình card màn hình : Nếu bạn muốn sử dụng Xwindow thì bạn phải cài card màn hình. Card màn hình của bạn không có trong danh sách thì chọn Unlisted Card và chọn các thông số của card màn hình để sử dụng dạng tương thích. Trang 17 19) Chuẩn bị và cài đặt các package : 20) Cấu hình X window : ¾ Chọn loại màn hình Chọn độ phân giải màn hình và chương trình Xwindow desktop mặc nhiên Trang 18 21) Kết thúc cài đặt : Khi chương trình cài đặt kết thúc, hệ thống tự động reset lại. Thay đổi lại các cấu hình trong quá trình cài đặt bạn dùng lệnh setup trong dấu nhắc của user root. Bạn chọn các mục mình cần thay đổi và chọn Run Tool V) Söû duïng heä thoáng : 1) Ñaêng nhaäp : Linux là hệ điều hành đa người dùng, tại một thời điểm nhiều người có thể cùng sử dụng hệ thống để làm việc. Mỗi người dùng có một tài khoản người dùng trong hệ thống để quản lý và phân biệt các người dùng với nhau. Để sử dụng hệ thống, trước hết bạn phải đăng nhập vào. Khi bạn kết nối tới máy thì màn hình hiển thị dòng login : Bạn phải gõ username của bạn và ấn enter. Nếu username của bạn tồn tại thì tiếp theo máy chủ yêu cầu bạn nhập vào password password: Và bạn hãy gõ password của mình vào. Trang 19 Hệ thống sẽ kiểm tra tính hợp lệ của username và password bạn gõ vào, nếu sai thì sẽ hiện thông báo lỗi login incorrect, nếu là hợp lệ thì xuất hiện dấu nhắc lệnh. Có 2 dạng dấu nhắc lệnh : dạng $ dùng cho người dùng thường và dạng # dùng cho người dùng quản trị (root). Lệnh đổi password Giả sử bây giờ bạn đã đăng nhập vào hệ thống, bạn muốn đổi password của tài khoản của mình đang dùng login,bạn dùng lệnh passwd $passwd [Enter] New password : [Enter] Re-enter password : [Enter] $ • Thoát ra khỏi hệ thống (logout) Bạn dùng lệnh exit. • Dấu nhắc lệnh Khi login vào hệ thống, chúng ta thấy dấu nhắc lệnh xuất hiện có dạng tên-đăng-nhập@tên-máy/thư-mục-hiện-hành dấu-nhắc-lệnh dấu-nhắc-lệnh : $ đối với người dùng thường # đối với người quản trị Tại dấu nhắc lệnh chúng ta có thể sử dụng lệnh để thao tác với hệ thống. • Cách sử dụng một lệnh: tên-lệnh [lựa-chọn] [tham-số] Lựa chọn cho lệnh thường dùng dạng – Nếu có nhiều lựa chọn thì ta dùng dấu khoảng trắng để làm dấu ngăn cách. Ví dụ : ls –a –l /etc Linux cho phép chúng ta kết hợp nhiều lựa chọn chỉ dùng một dấu - . Như ví dụ trên ta có thể dùng lệnh ls –al /etc thay cho ls –a –l /etc • Chuyển sang user khác Khi login vào chúng ta có thể chuyển qua người dùng khác mà không phải logout ra. Trong trường hợp này bạn dùng lệnh su. Cách sử dụng : $su [tên-user] : chuyển sang user mới Nếu tên-user không có thì mặc định là chuyển qua root Thông thường khi chúng ta chuyển sang user khác thì biến môi trường của hệ thống vẫn giữ nguyên theo user cũ. để sử dụng môi trường của user mới chúng ta dùng thêm tham số - trong lệnh su. #su – [user] 2) Moät soá leänh cô baûn : Tên lệnh Ý nghĩa date hiển thị ngày giờ hệ thống who cho biết các người dùng đang đăng nhập vào hệ thống tty xác định tập tin tty mà mình đang login vào. cal Lịch finger Hiển thị các thông tin của các người dùng như họ tên, địa chỉ … chfn Thay đổi thông tin của người dùng head xem nội dung tập tin từ đầu tập tin tail xem nội dung từ cuối tập tin w xem những người dùng đang logon vào hệ thống và các chương trình Trang 20 họ đang thực hiện hostname xem, đổi tên máy 3) Söû duïng taøi lieäu giuùp ñôõ man: Trong DOS để biết cú pháp hay ý nghĩa của một lệnh chúng ta hay dùng giúp đỡ của lệnh bằng cách đánh tham số /? vào phía sau lệnh, còn Window có bộ Help cho phép bạn tìm kiếm các thông tin liên quan đến một vấn đề nào đó. Linux thì cung cấp cho bạn một hệ thống thư viện giúp đỡ cho phép bạn tìm các thông tin theo từ khóa bạn nhập vào. Dù không có giao diện bằng Window, nhưng các tài liệu giúp đỡ này rất có ích đối với người sử dụng đặc biệt khi sử dụng các lệnh. Các bạn sẽ biết các lệnh trong Linux sử dụng rất nhiều tùy chọn mà chúng ta không thể nhớ hết được. Man sẽ giúp chúng ta. Chúng ta sử dụng man theo cú pháp $man từ-khóa [Enter] từ-khóa là từ mà chúng ta cần tìm kiếm thông tin về nó. Ví dụ :Tìm kiếm các thông tin về lệnh ls $man ls LS(1) FSF LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuSUX nor --sort. -a, --all do not hide entries starting with . -A, --almost-all do not list implied . and .. -b, --escape print octal escapes for nongraphic characters --block-size=SIZE : Bạn dùng phép điều khiển lên, xuống để xem trang man. Nếu muốn xem từng trang dùng phím space. Thoát khỏi man : q Man phân dữ liệu mình lưu trữ thành những đoạn (session) khác nhau với các chủ đề khác nhau là Trang 21 Session Tên chủ đề Ý nghĩa 1 user command các lệnh thông thường của hệ điều hành 2 system call các hàm thư viện kernel của hệ thống 3 subroutines các hàm thư viện lập trình 4 devices các hàm truy xuất file và xử lý thiết bị 5 File format các hàm định dạng file 6 games các hàm liên quan đến trò chơi 7 Miscell các hàm khác 8 sys. admin các hàm quản trị hệ thống Xác định cụ thể thông tin của một chủ đề nào chúng ta dùng man như sau $man session từ-khóa Ví dụ : man 3 printf :Xem các thông tin về hàm prinf dùng trong lập trình Nếu chúng ta không xác định session thì session mặc nhiên là 1 VI) Khôûi ñoäng vaø ñoùng taét heä thoáng : Khi moät maùy PC baét ñaàu khôûi ñoäng, boä vi xöû lyù seõ tìm ñeán cuoái vuøng boä nhôù heä thoáng cuûa BIOS vaø thöïc hieän caùc chæ thò ôû ñoù. BIOS seõ kieåm tra heä thoáng, tìm vaø kieåm tra caùc thieát bò, vaø tìm kieám ñóa chöùa trình khôûi ñoäng. Thoâng thöôøng, BIOS seõ kieåm tra oå ñóa meàm, hoaëc CDROM xem coù theå khôûi ñoäng töø chuùng ñöôïc khoâng, roài ñeán ñóa cöùng. Thöù töï cuûa vieäc kieåm tra caùc oå ñóa phuï thuoäc vaøo caùc caøi ñaët trong BIOS. Khi kieåm tra oå ñóa cöùng, BIOS seõ tìm ñeán MBR vaø naïp vaøo vuøng nhôù hoaït ñoäng chuyeån quyeàn ñieàu khieån cho noù. MBR chöùa caùc chæ daãn cho bieát caùch naïp trình quaûn lyù khôûi ñoäng GRUB/LILO cho Linux hay NTLDR cho Windows NT/2000. MBR sau khi naïp trình quaûn lyù khôûi ñoäng, seõ chuyeån quyeàn ñieàu khieån cho trình quaûn lyù khôûi ñoäng. Trình quaûn lyù khôûi ñoäng seõ cho hieän treân maøn hình moät danh saùch caùc tuøy choïn ñeå ngöôøi duøng xöû lyù xem neân khôûi ñoäng heä ñieàu haønh naøo. Caùc chæ daãn cho vieäc naïp heä ñieàu haønh thích hôïp ñöôïc ghi roõ trong caùc taäp tin caáu hình töông öùng vôùi caùc trình quaûn lyù khôûi ñoäng. ¾ LILO löu caáu hình trong taäp tin /etc/lilo.conf ¾ GRUB löu trong taäp tin /boot/grub/grub.conf ¾ NTLDR löu trong c:\boot.ini 1) Tìm hieåu veà LILO, trình naïp Linux : LILO laø moät boot manager naèm troïn goùi chung vôùi caùc baûn phaùt haønh Red Hat, vaø laø boot manager maëc ñònh cho Red Hat 7.1 trôû veà tröôùc. Thieát laäp caáu hình LILO. LILO ñoïc thoâng tin chöùa trong taäp tin caáu hình /etc/lilo.conf ñeå bieát xem heä thoáng maùy baïn coù nhöõng heä ñieàu haønh naøo, vaø caùc thoâng tin khôûi ñoäng naèm ôû ñaâu. LILO ñöôïc laäp caáu hình ñeå khôûi ñoäng moät ñoaïn thoâng tin trong taäp tin /etc/lilo.conf cho töøng heä ñieàu haønh. Sau ñaây laø ví duï veà taäp tin /etc/lilo.conf Boot=/dev/hda Trang 22 Map=/boot/map Install=/boot/boot.b Prompt Timeout=50 Message=/boot/message Lba32 Default=linux Image=/boot/vmlinuz-2.4.0-0.43.6 Label=linux Initrd=/boot/initrd-2.4.0-0.43.6.img Read-only Root=/dev/hda5 Other=/dev/hda1 Label=dos ¾ Ñoaïn thöù nhaát: o Cho bieát LILO caàn xem xeùt vaøo MBR (boot=/dev/hda1) o Kieåm tra taäp tin map o Noù coøn cho bieát LILO coù theå caøi ñaët moät taäp tin ñaëc bieät (/boot/boot.b) nhö laø moät sector khôûi ñoäng môùi o Thôøi gian chôø tröôùc khi naïp heä ñieàu haønh maëc ñònh (default=xxx) ñöôïc khai baùo thoâng qua doøng timeout=50 (5 giaây) – thôøi gian tính baèng 1/10 cuûa giaây. o Naïp thoâng tin trong quaù trình khôûi ñoäng töø taäp tin /boot/message o Doøng LBA32 cho bieát caáu hình cuûa ñóa cöùng: cho bieát ñóa cöùng cuûa baïn hoã trôï LBA32, thoâng thöôøng doøng naøy coù giaù trò linear (baïn khoâng neân ñoåi laïi doøng naøy neáu baïn khoâng hieåu roõ oå ñóa cöùng cuûa baïn, baïn coù theå tìm hieåu ñóa cöùng cuûa baïn coù hoã trôï LBA32 hay khoâng baèng caùch xem trong BIOS) ¾ Ñoaïn thöù hai: o Cung caáp thoâng tin khôûi ñoäng cho heä ñieàu haønh linux o Doøng image baùo cho LILO bieát vò trí cuûa kernel Linux o Doøng label hieän dieän ôû caû 2 ñoaïn cho bieát teân cuûa heä ñieàu haønh naøo seõ xuaát hieän taïi trình ñôn khôûi ñoäng cuûa LILO. o Doøng root xaùc ñònh vò trí root file system cuûa Linux ¾ Ñoaïn thöù ba: o Doøng other cho bieát partition cuûa moät heä ñieàu haønh nöõa ñang ôû hda1 cuûa oå ñóa cöùng. 2) Tìm hieåu GRUB, trình naïp Linux : a) Ñònh nghóa GNU GRUB cuõng chæ laø moät trình quaûn lyù khôûi ñoäng töông töï LILO. b) Taäp tin caáu hình GRUB. Trang 23 Nhö treân, ta thaáy thoâng thöôøng seõ coù 3 ñoaïn cô baûn: ¾ Ñoaïn thöù nhaát: moâ taû caùc chæ thò toång quaùt nhö : o Heä ñieàu haønh maëc ñònh (default) o Thôøi gian chôø ñôïi ngöôøi duøng nhaäp döõ lieäu tröôùc khi thöïc hieän leänh maëc ñònh (timeout=10), tính baèng giaây. o Ta cuõng coù theå choïn maøu ñeå hieån thò trình ñôn (color green/black light-gray/blue) ¾ Ñoaïn thöù hai cho bieát caùc thoâng soá ñeå khôûi ñoäng heä Linux: o Tieâu ñeà treân trình ñôn laø Red Hat Linux (title) o Heä ñieàu haønh naøy seõ khôûi ñoäng töø partition ñaàu tieân cuûa oå ñóa thöù nhaát – root (hda0,0:oå ñóa thöù nhaát, partition thöù nhaát). Vaø caàn phaûi mount partition naøy tröôùc. o Taäp tin vmlinuz ñang ñöôïc chöùa trong thö muïc root vaø filesystem root ñang naèm treân partition thöù naêm cuûa ñóa cöùng thöù nhaát (/dev/hdc5) o Doøng leänh boot nhaéc phaûi naïp ngay heä ñieàu haønh ñaõ ñöôïc khai baùo ôû treân. ¾ Ñoaïn thöù ba cho bieát caùc thoâng soá veà heä ñieàu haønh thöù hai ñang ñöôïc caøi ñaët trong heä thoáng. o Tieâu ñeà laø Windows o Heä ñieàu haønh ñang chieám partition thöù nhaát cuûa oå ñóa thöù hai (hda1,0). Coù ñieàu vôùi leänh rootnoverify, GRUB khoâng caàn chuù yù kieåm tra xem partition naøy coù ñöôïc mount hay khoâng. o Caáu leänh chainloader + 1 ñaõ söû duïng +1 laøm teân taäp tin caàn khôûi ñoäng nhö moät maéc xích trong tieán trình: +1 coù nghóa laø sector thöù nhaát cuûa partition ñang xeùt Baïn coù theå duøng leänh man grub.conf ñeå tìm hieåu theâm veà taäp tin caáu hình naøy. 3) Quaù trình khôûi ñoäng : Sau khi ta baät maùy, maùy seõ naïp boot loader(lilo or grub), boot loader naïp file boot image ñeå khôûi taïo heä ñieàu haønh, sau ñoù heä ñieàu haønh kieåm tra caùc thieát bò phaàn cöùng, heä ñieàu haønh baét ñaàu kieåm tra partition, mount caùc file system caàn thieát cho heä thoáng, tieáp theo noù ñoïc taäp tin /etc/inittab ñeå choïn default runlevel, khôûi taïo caùc deamon, cuoái cuøng yeâu caàu ngöôøi duøng logon vaøo tröôùc khi söû duïng heä thoáng, sau khi log on baèng username vaø password, heä thoáng seõ chaïy chöông trình shell (hoaëc chaïy X Windows) ñeå giao tieáp vôùi ngöôøi duøng. 4) Runlevels : Caùc möùc laøm vieäc cuûa heä ñieàu haønh ñöôïc löu trong taäp tin /etc/inittab Unix noùi chung coù baûy möùc hoaït ñoäng khaùc nhau töø 1 tôùi 6: 1. Level 0: laø möùc shutdown heä thoáng 2. Level 1: chæ giaønh cho moät ngöôøi duøng thöôøng duøng ñeå söûa loãi heä thoáng taäp tin. 3. Level 2: vaø Level 3 giaønh cho nhieàu ngöôøi söû duïng. Trang 24 4. Level 5: laø möùc giao tieáp vôùi ngöôøi duøng baèng cheá ñoä ñoà hoaï(X Window) 5. Level 6: laø möùc cho pheùp reboot laïi heä thoáng. Töông öùng vôùi caùc möùc treân trong thö muïc /etc/rc.d coù caùc thö muïc rc0.d – rc6.d. chöùa caùc taäp tin khôûi trong töøng möùc. Baøi 3: Heä thoáng taäp tin I) Caáu truùc heä thoáng taäp tin : Moãi heä ñieàu haønh coù toå chöùc caùch löu tröõ döõ lieäu rieâng. ÔÛ möùc vaät lyù ñóa ñöôïc ñònh daïng töø caùc thaønh phaàn sector, track, cylinder. Ôû möùc logic, moãi heä thoáng söû duïng caáu truùc rieâng, coù theå duøng chæ muïc hay phaân caáp ñeå coù theå xaùc ñònh ñöôïc döõ lieäu töø möùc logic tôùi möùc vaät lyù. Caùch toå chöùc nhö vaäy goïi laø heä thoáng taäp tin (file system). Window söû duïng heä thoáng taäp tin FAT16, FAT32, WinNT söû duïng NTFS ñeå taêng cöôøng baûo maät heä thoáng taäp tin. Linux söû duïng heä thoáng taäp tin laø ext2 (Second Extend File System). Heä thoáng taäp tin ext2. Heä thoáng file ñöôïc toå chöùc theo caùc khoái ( block- trong Linux laø 1024 bytes) lieân tieáp nhau vaø moãi file coù 3 phaàn chính • i-node • data block • directory I-node laø tröôøng löu tröõ caùc thoâng tin ñeå xaùc ñònh file treân ñóa. Moãi file hoaëc thö muïc xaùc ñònh bôûi moät i-node. Moãi i-node ñuôïc gaùn moät con soá ñeå phaân bieät vôùi nhau goïi laø i-node number. i- node loaï i chuû quyeàn noái keát UID GID Thôøi gian Kích thöôùc Ñòa chæ khoái döõ lieäu ñaàu Noäi dung cuûa moät i-node : I-node chöùa haàu heát caùc thoâng tin veà file tröø teân vaø noäi dung bao goàm : • Loaïi file (taäp tin, thö muïc … ) • Owner (ngöôøi sôû höõu) • Group (nhoùm sôû höõu) • Quyeàn truy xuaát ( read, write, excute) • Kích thöôùc • Ngaøy giôø thay ñoåi laàn cuoái • Ngaøy giôø truy caäp cuoái cuøng • Ngaøy giôø thay ñoåi i-node Trang 25 Data block Döõ lieäu löu tröõ vaøo ñóa trong caùc data block. Moãi block thöôøng chöùa 1024 kyù töï. Ngay khi file chæ coù 1 kyù töï thì cuõng phaûi duøng caáp phaùt 1 block ñeå löu noù. Khoâng coù kyù töï keát thuùc file. Thö muïc Thö muïc chöùa moät hoaëc nhieàu file, noù chæ chöùa hai thuoäc tính cuûa file laø I-node number vaø teân file. I-node number xaùc ñònh I-node cho file. 1689 myfile Inode 1689 Data Blocks Trong hình veõ thö muïc chöùa teân file “myfile” vaø inode number cuûa file naøy laø 1689. I-node naøy xaùc ñònh ñeán döõ lieäu thaät treân ñóa qua data block. Caùc loaïi file. File trong linux duøng cho vieäc löu tröõ döõ lieäu, noù bao goàm caû thö muïc vaø caùc thieát bò löu tröõ. Moät taäp tin döõ lieäu, hay moät thö muïc ñeàu ñöôïc xem laø file. Khaùi nieäm file coøn môû roäng duøng cho caùc thieát bò nhö maùy in, ñóa cöùng … ngay caû boä nhôù chính cuõng ñöôïc coi nhö laø file. Caùc file trong linux ñöôïc chia ra laøm 3 loai chính • File chöùa döõ lieäu bình thöôùng • Thö muïc • File thieát bò Ngoaøi ra Linux coøn duøng link vaø pipe nhö laø caùc file ñaëc bieät. File döõ lieäu: Ñaây laø file theo ñònh nghóa truyeàn thoáng, noù laø döõ lieäu löu tröõ treân caùc thieát bò löu tröõ nhö ñóa cöùng, CD-ROM … Baïn coù theå ñöa baát cöù döõ lieäu naøo vaøo file naøy nhö ñoaïn source chöông trình, file vaên baûn hay file thöïc thi daïng maõ maùy, caùc leänh cuûa Linux cuõng nhö taát caû caùc file ñöôïc taïo ra bôûi ngöôøi duøng. Thö muïc: Thö muïc khoâng chöùa döõ lieäu, maø chæ chöùa caùc thoâng tin cuûa nhöõng file vaø thö muïc con trong noù. Thö muïc chöùa hai tröôøng cuûa moät file laø teân file vaø i-node number. File thieát bò :Heä thoáng Unix vaø Linux xem caùc thieát bò nhö laø caùc file. Ra vaøo döõ lieäu treân caùc file naøy chính laø ra vaøo döõ lieäu cho thieát bò. Ví duï khi chuùng ta muoán cheùp döõ lieäu ra oå ñóa A: thì seõ cheùp vaøo taäp tin /dev/fd0 hoaëc khi chuùng ta thöïc hieän vieäc in thì döõ lieäu vaøo maùy in ñöôïc ñöa vaøo file töông öùng cho maùy in. Link (Lieân keát) Lieân keát laø moät taäp tin söû duïng nuùt ñònh danh cuûa moät taäp tin coù saün, noù ñöôïc xem nhö laø shortcut tôùi taäp tin thaät söï. Coù 2 kieåu link: soft link (lieân keát meàm) vaø hard link ( lieân keát cöùng). Soft Link taïo ra moät nuùt ñònh danh môùi cho moät taäp tin môùi nhö troû tôùi nuùt ñònh danh cuûa taäp tin goác. Vì chuùng troû tôùi taäp tin goác neân khi chuùng ta thao taùc treân link naøy cuõng nhö thao taùc treân taäp tin goác. Ñieàu löu yù raèng khi chuùng ta xoùa taäp tin goác thì link vaãn coøn, nhöng khoâng lieân keát tôùi döõ lieäu ñöôïc. Trang 26 Hard Link thì taïo ra moät taäp tin môùi nhöng coù cuøng nuùt ñònh danh vôùi taäp tin goác. Do ñoù neáu caùc taäp tin lieân keát bò xoùa thì caùc taäp tin lieân keát khaùc vaãn coøn. taäp tin thöïc söï bò xoùa khi taát caû caùc lieân keát bò xoùa. II) Caáu truùc caây thö muïc : / in b usr local share etc var log ool sp Heä thoáng taäp tin Linux coù caáu truùc nhö hình veõ. Trong Linux khoâng coù khaùi nieäm oå ñóa nhö trong Windows, taát caû caùc taäp tin thö muïc baét ñaàu töø thö muïc goác (/). Ñöôøng daãn ñeán thö muïc, taäp tin söû duïng daáu /. Ví duï : /usr/local, /bin ... Linux söû duïng daáu . chæ thö muïc hieän haønh vaø daáu .. chæ thö muïc cha cuûa thö muïc hieän haønh. Nhö chuùng ta ñöôïc bieát heä thoáng cuûa chuùng ta coù theå coù nhieàu oå ñóa, moãi oå ñóa coù theå chia ra nhieàu partion khaùc nhau. Heä thoáng taäp tin Linux coù caáu truùc nhö hình veõ. Trong Linux khoâng coù khaùi nieäm oå ñóa nhö trong Windows, taát caû caùc taäp tin thö muïc baét ñaàu töø thö muïc goác (/). Ñöôøng daãn ñeán thö muïc, taäp tin söû duïng daáu /. Ví duï : /usr/local, /bin ... Linux söû duïng daáu . chæ thö muïc hieän haønh vaø daáu .. chæ thö muïc cha cuûa thö muïc hieän haønh. Nhö chuùng ta ñöôïc bieát heä thoáng cuûa chuùng ta coù theå coù nhieàu oå ñóa, moãi oå ñóa coù theå chia ra nhieàu partion khaùc nhau. Taát caû döõ lieäu treân caùc partition ñeàu ñöôïc gaùn leân caây thö muïc, coøn goïi laø mount. Moãi partition gaén treân moät thö muïc. Döõ lieäu trong thö muïc seõ ñöôïc löu tröõ taïi partition maø cuûa noù. Trang 27 / / /home /usr/local /usr home etc usr local bin Ổ đĩa vật lý Cấu trúc logic hệ thống tập tin Nhö hình veõ treân thö muïc goác ñöôïc mount vaøo partition thöù nhaát, /usr ñöôïc mount vaøo partition thöù 2 ... Nhöõng döõ lieäu ghi vaøo thö muïc /home seõ ghi vaøo partition thöù 3. Töông töï, döõ lieäu cuûa thö muïc /usr/local ghi vaøo partition 4, döõ lieäu cuûa thö muïc /usr khoâng phaûi thö muïc con /usr/local thì ghi vaøo partion 2. Linux söû duïng caùc taäp tin chæ ñeán caùc partition treân oå ñóa vaät lyù. Nhöõng taäp tin naøy laø caùc taäp tin thieát bò vaø naèm trong thö muïc /dev. Teân caùc taäp tin naøy coù daïng ñaàu tieân laø kyù töï xaùc ñònh loaïi oå ñóa ñóa meàm laø fd, ñóa cöùng laø hd, ñóa scsi laø sd … tieáp theo laø soá thöù töï oå ñóa : oå ñóa thöù nhaát duøng kyù hieäu a, thöù 2 laø b … vaø sau cuøng laø soá partition. Ví duï taäp tin chæ ñeán caùc thieát bò : - oå meàm thöù nhaát : /dev/fd0 - partition thöù nhaát cuûa oå ñóa cöùng ñaàu tieân : /dev/hda1 - partition thöù 3 cuûa ñóa cöùng thöù 2 : /dev/hdb3. Moät soá thö muïc quan troïng cuûa Linux Thö muïc Chöùc naêng /bin /boot /dev /etc /etc/rc.d/i nit.d /home /lib /lost +found /mnt Chöùa caùc chöông trình thöïc thi, file heä thoáng Chöùa caùc file image kernel heä ñieàu haønh vaø caùc file khaùc söû duïng khi heä thoáng khôûi ñoäng Chöùa caùc file thieát bò. Chöùa caùc file caáu hình cuûa toaøn boä heä thoáng bao goàm caùc file caáu hình cuûa caùc öùng duïng. Chöùa caùc sript khôûi ñoäng cuûa caùc öùng duïng vaø heä thoáng. Chöùa caùc thö muïc caù nhaân cuûa caùc ngöôøi duøng trong heä thoáng Chöùa caùc thö vieän ñoäng hoaëc tónh caàn thieát vieäc thöïc thi caùc chöông trình treân heä thoáng Löu laïi caùc döõ lieäu khoâng gaén vôùi taäp tin naøo khi khôûi ñoäng heä thoáng hay khi kieåm tra ñóa baèng fsck Thö muïc chöùa caùc thö muïc duøng ñeå keát gaén taïm thôøi ñeán caùc thieát bò. Coù 2 thö muïc con laø floppy vaø cdrom duøng ñeå keát vôùi oå meàm vaø CD- ROM Trang 28 /sbin /temp /usr /var Chöùa caùc chöông trình daønh cho ngöôøi quaûn trò Chöùa caùc file taïm söû duïng trong quaù trình thöïc hieän chöông trình Thö muïc naøy chöùa raát nhieàu thö muïc con gioáng nhö thö muïc goác laø sbin, bin, etc … Thö muïc /usr/local thöôøng duøng ñeå caøi ñaët chöông trình nhö thö muïc Program Files trong Window Chöùa caùc file coù kích thöôùc thay ñoåi thaát thöôøng, coù luùc raát lôùn, coù luùc raát nhoû. Caùc file thöôøng duøng trong thö muïc naøy laø caùc file haøng ñôïi cuûa caùc dòch vuï nhö mail , maùy in … III) Taïo moät filesystem : IV) Caùc leänh thao taùc treân treân heä thoáng taäp tin vaø ñóa : 1) Mount vaø umount filesystem 2) Mount filesystem töï ñoäng vôùi file /etc/fstab 3) Gaén keát CD-ROM vaø ñóa meàm. a) Mount b) Umount 4) Quaûn lyù vuøng troáng ñóa. a) Kieåm tra filesystem (fsck) b) Hieån thò caùc thoáng keâ veà filesystem 5) Hieåu veà nhöõng lieân keát a) Symbolic link b) Hard link c) Leänh ln V) Caùc thao taùc treân taäp tin vaø thö muïc : 1) Thö muïc : a) Ñöôøng daãn töông ñoái vaø tuyeät ñoái Ñöôøng daãn trong Linux söû duïng laø daáu / thay cho daáu \ ñöôïc söû duïng trong Window. Ñeå xaùc ñònh moät taäp tin hay thö muïc chuùng ta coù duøng hoaëc ñöôøng daãn tuyeät ñoái hay töông ñoái. Ñöôøng daãn tuyeät ñoái laø ñöôøng daãn ñaày ñuû tính töø thö muïc goác (/) cuûa caây thö muïc. Ví duï : /home/hv hay /usr/local/vd.txt Trong moät soá tröôøng hôïp söû duïng caùc taäp tin vaø thö muïc laø con cuûa thö muïc mình ñang laøm vieäc, luùc ñoù chuùng ta söû duïng ñöôøng daãn töông ñoái. Ñöôøng daãn töông ñoái ñöôïc tính töø thö muïc hieän haønh. Ví duï chuùng ta ñang ôû thö muïc /home/hv khi goõ leänh cat test.txt laø chuùng ta xem taäp tin test.txt trong thö muïc /home/hv. Trang 29 Linux duøng kyù hieäu . chæ tôùi thö muïc hieän haønh vaø kyù hieäu .. chæ thö muïc cha cuûa thö muïc hieän haønh. Ví duï thö muïc hieän haønh laø /usr/bin, ñöôøng daãn ../local töông ñöông /usr/local Chöông trình thöïc thi trong Linux. Chöông trình thöïc thi trong Linux coù 2 daïng chính laø taäp tin leänh vaø taäp tin binary. Taäp tin leänh laø taäp tin chöùa caùc leänh cuûa shell töông töï file bat trong DOS. Coøn taäp tin binary chöùa maõ maùy töông töï file .exe hoaëc .com trong Window. Trong Linux teân taäp tin khoâng coù khaùi nieäm môû roäng. Ngöôøi ta thöôøng söû duïng phaàn môû roäng ñeå noùi leân tính chaát, yù nghóa cuûa taäp tin chöù khoâng ñeå xaùc ñònh chöông trình thöïc thi taäp tin. Ví duï . .txt chæ file daïng text, .conf chæ file caáu hình … Taäp tin muoán thöïc thi ñöôïc thì phaûi ñöïôc gaùn quyeàn excute maø chuùng ta seõ tìm hieåu sau. Khi thöïc thi chöông trình phaûi xaùc ñònh ñöôøng daãn chính xaùc hoaëc söû duïng ñöôøng daãn trong bieán moâi tröøông PATH. Do vaäy, muoán thöïc thi file trong thö muïc hieän haønh phaûi duøng ./teân-file b) Pwd: Xem ñöôøng daãn thö muïc hieän haønh Ví duï : [natan@netcom bin]$ pwd /usr/local/bin c) Cd: Thay ñoåi thö muïc Ví duï: $cd /etc d) Ls: lieät keâ noäi dung thö muïc ls [choïn löïa] [thö muïc] ls –x hieån thò treân nhieàu coät ls –l hieån thò chi tieát caùc thoâng tin cuûa file ls –a hieån thò taát caû caùc file keå caû file aån Ví duï : $ ls –l /etc -rw-r--r-- 1 root root 920 Jun 25 2001 im_palette-small.pal -rw-r--r-- 1 root root 224 Jun 25 2001 im_palette-tiny.pal -rw-r--r-- 1 root root 5464 Jun 25 2001 imrc -rw-r--r-- 1 root root 10326 Apr 12 08:42 info-dir lrwxrwxrwx 1 root root 11 Apr 12 07:52 init.d -> rc.d/init.d -rw-r--r-- 1 root root 658 Sep 9 2001 initlog.conf -rw-r--r-- 1 root root 1756 Sep 9 2001 inittab -rw-r--r-- 1 root root 638 Jul 19 2001 inputrc -rw------- 1 root root 60 Apr 15 02:17 ioctl.save drwxr-xr-x 2 root root 4096 Apr 12 07:53 iproute2 drwxr-xr-x 2 root root 4096 Apr 12 08:31 isdn -rw-r--r-- 1 root root 55 Sep 9 2001 issue -rw-r--r-- 1 root root 54 Sep 9 2001 issue.net Trang 30 YÙ nghóa caùc coät töø traùi sang phaûi ™ Coät ñaàu tieân: kyù töï ñaàu tieân : - chæ taäp tin bình thöôøng, d chæ thö muïc, l chæ link vaø phí sau coù daáu -> chæ tôùi thö muïc thaät. Caùc kyù töï coøn laïi chæ quyeàn truy xuaát ™ Coät thöù 2 chæ soá lieân keát ñeán file naøy. ™ Coät thöù 3, 4 : ngöôøi sôû höõu vaø nhoùm sôû höõu ™ Coät thöù 5 : kích thöôùc taäp tin, thö muïc ™ Coät thöù 6 chæ ngaøy giôø söûa chöõa cuoái cuøng ™ Coät thöù 7 teân taäp tin, thö muïc Baïn muoán xem thoâng tin 1 hay nhieàu taäp tin coù theå duøng $ls -l taäp-tin1 taäp-tin2 … e) Mkdir: taïo thö muïc Ví duï: $mkdir /home/web f) Rmdir: xoùa thö muïc Ví duï: $rmdir /home/web 2) Taäp tin : a) Cat: hieån thò noäi dung taäp tin, taïo taäp tin môùi cat duøng hieån thò noäi dung cuûa file daïng vaên baûn. Ñeå xem file chuùng ta choïn teân file laøm tham soá. $ cat myfile cat cho pheùp chuùng ta xem nhieàu file cuøng luùc : $cat file1 file2 … Cat cuõng ñöôïc duøng ñeå taïo vaø soaïn thaûo vaên baûn daïng text. Trong tröôøng hôïp naøy chuùng ta söû duïng daáu > ñi theo sau. $cat > teân-file [Enter] > Caùc-doøng-döõ-lieäu-cuûa-file > … [Ctrl-d :keát thuùc} leänh cat cuõng ñöôïc duøng ñeå taïo vaø soaïn thaûo noäi dung file text b) More: xem noäi dung file theo töøng trang maøn hình c) Cp: copy taäp tin Cuù phaùp: $cp file-nguoàn file-ñích d) Mv: Thay ñoåi teân file, chuyeån thö muïc cuûa file Cuù phaùp: $mv teân-file-cuõ teân-file-môùi e) Rm: xoùa taäp tin, thö muïc rm -r : xoùa thö muïc vaø taát caû caùc taäp tin vaø thö muïc con rm -l : xaùc nhaän laïi tröôùc khi xoùa Trang 31 VI) Löu tröõ vaø baûo maät : 1) Quyeàn haïn : Do Linux laø moät heä ñieàu haønh multitasking vaø multiuser, nhieàu ngöôøi coù theå cuøng söû duïng moät maùy Linux vaø moät ngöôøi coù theå cho chaïy nhieàu chöông trình khaùc nhau. Coù hai vaán ñeà lôùn ñöôïc ñaët ra: quyeàn sôû höõu caùc döõ lieäu treân ñóa vaø phaân chia taøi nguyeân heä thoáng nhö CPU, RAM giöõa caùc process. Chuùng ta seõ baøn veà sôû höõu caùc taäp tin vaø caùc quyeàn truy xuaát caùc taäp tin. Taát caû caùc taäp tin vaø thö muïc cuûa Linux ñeàu coù ngöôøi sôû höõu vaø quyeàn truy nhaäp. Baïn coù theå ñoåi caùc tính chaát naøy nhieàu hay ít quyeàn truy nhaäp hôn ñoái vôùi moät taäp tin hay thö muïc. Quyeàn cuûa taäp tin coøn coù pheùp xaùc ñònh taäp tin coù laø moät chöông trình (application) hay khoâng (khaùc vôùi MSDOS vaø MSWindows xaùc ñònh tính chaát naøy qua phaàn môû roäng cuûa teân taäp tin). Ví duï vôùi leänh ls –l chuùng ta coù theå thaáy -rw-r—r— 1 fido users 163 Dec 7 14 : 31 myfile Coät ñaàu chæ ra quyeàn truy caäp taäp tin. Trong ví duï treân, caùc kyù töï –rw-r—r— bieåu thò quyeàn truy caäp cuûa taäp tin myfile. Linux cho pheùp ngöôøi söû duïng xaùc ñònh caùc quyeàn ñoïc (read), vieát (write) vaø thöïc hieän (execute) cho töøng ñoái töôïng 3 daïng ñoái töôïng • sôû höõu (the owner) • nhoùm sôû höõu (the group owner) • nhöõng ngöôøi coøn laïi (“other users” hay everyone else). Quyeàn ñoïc cho pheùp baïn ñoïc noäi dung cuûa taäp tin. Ñoái vôùi thö muïc, quyeàn ñoïc cho pheùp baïn söû duïng leänh ls ñeå xem noäi dung cuûa thö muïc. Quyeàn vieát cho pheùp baïn thay ñoåi noäi dung hay xoaù taäp tin. Ñoái vôùi thö muïc, quyeàn vieát cho pheùp baïn taïo ra, xoùa hay thay ñoåi teân caùc taäp tin trong thö muïc khoâng phuï thuoäc vaøo quyeàn cuï theå cuûa taäp tin trong thö muïc. Nhö vaäy, quyeàn vieát cuûa thö muïc seõ voâ hieäu hoùa caùc quyeàn truy caäp cuûa taäp tin trong thö muïc vaø baïn ñoïc phaûi ñeå yù tính chaát naøy. Quyeàn thöïc thi cho pheùp baïn goïi chöông trình leân boä nhôù baèng caùch nhaäp töø baûn phím teân cuûa taäp tin. Ñoái vôùi thö muïc, baïn chæ coù theå vaøo thö muïc bôûi leänh cd neáu baïn coù quyeàn thöïc hieän vôùi thö muïc. Xem xeùt laïi ví duï treân: -rw-r—r— 1 fido users 163 Dec 7 14 : 31 myfile Kyù töï ñaàu tieân cuûa quyeàn laø kyù töï “-” aùm chæ raèng ñoù laø moät taäp tin bình thöôøng. Neáu myfile laø moät thö muïc, ta seõ thay vaøo ñoù kyù töï d. ngoaøi ra coøn coù c cho thieát bò ngoaïi vi daïng kyù töï (nhö baøn phím), b cho thieát bò ngoaïi vi daïng block (nhö oå ñóa cöùng). Chín kyù töï tieáp theo chia thaønh 3 nhoùm, cho pheùp xaùc ñònh quyeàn cuûa 3 nhoùm sôû höõu (owner), nhoùm (group) vaø coøn laïi (other). Moãi caëp ba naøy cho pheùp xaùc ñònh quyeàn ñoïc, vieát vaø thöïc hieän theo thöù töï keå treân. Quyeàn ñoïc vieát taét laø “r” ôû vò trí Trang 32 ñaàu quyeàn vieát vieát taét baèng “w” ôû vò trí thöù hai vaø vò trí thöù ba laø quyeàn thöïc hieän kyù hieäu baèng chöõ “x”. Neáu moät quyeàn khoâng ñöôïc cho thì taïi vò trí ñoù seõ coù kyù töï “-”. Kí töï r w x r w x r w x Loaïi file ^ owner group owner other users Trong tröôøng hôïp cuûa taäp tin myfile, sôû höõu coù quyeàn rw töùc laø ñoïc vaø vieát. myfile khoâng phaûi laø moät chöông trình. Nhoùm cuøng vôùi coøn laïi chæ coù quyeàn ñoïc taäp tin (read-only). Song song vôùi caùch kyù hieäu mieâu taû baèng kyù töï ôû treân, quyeàn thao taùc taäp tin coøn coù theå cho döôùi daïng 3 soá. Quyeàn haïn cho töøng loaïi ngöôøi duøng söû duïng moät soá coù 3 bit töông öùng cho 3 quyeàn read, write vaø excute. Theo ñoù neáu coù quyeàn thì bit ñoù laø 1, ngöôïc laïi laø 0. Giaù trò nhò phaân cuûa soá 3 bit naøy xaùc ñònh caùc quyeàn cho nhoùm ngöôøi ñoù. bit 2 bit 1 bit 0 read write excute Ví duï : • chæ coù quyeàn ñoïc : 100 coù giaù trò laø 4 • coù quyeàn ñoïc vaø thöïc thi : 101 coù giaù trò laø 5 Theo caùch tính soá nhò phaân, chuùng ta cuõng coù theå xaùc ñònh soá chæ quyeàn baèng caùch tính toång giaù trò cuûa caùc quyeàn. Theo quy ñònh treân chuùng ta coù giaù trò töông öùng vôùi quyeàn nhö sau : Quyeàn Giaù trò Read permission 4 Write permission 2 Execute permission 1 Ví duï neáu coù quyeàn read vaø excute thì soá cuûa quyeàn laø : 4+1 =5 “ read , write vaø excute : 4+2+1=7 Caùc soá coù theå nhaän taát caû caùc giaù trò töø 0 ñeán 7. Neáu chuùng ta xem kyõ chuùng ta seõ thaáy moïi soá töø 0 ñeán 7 ñeàu töông öùng vôùi moät toå hôïp duy nhaát caùc quyeàn truy nhaäp taäp tin. 0 or—-: Khoâng coù quyeàn 4 or r—: read-only 2 or –w-: write-only (race) 1 or —x: execute 6 or rw-: read vaø write 5 or r-x: read vaø execute 3 or –wr: write vaø execute 7 or rwx: read, write vaø execute Nhö vaäy quyeàn treân moät taäp tin, thö muïc laø goàm 3 con soá. Soá ñaàu tieân mieâu taû quyeàn cuûa sôû höõu, soá thöù hai cho nhoùm vaø soá thöù ba cho coøn laïi. Trang 33 Vì vaäy, moät taäp tin vôùi quyeàn 751 coù nghóa laø sôû höõu coù quyeàn read, write vaø execute baèng 4+2+1=7. Nhoùm coù quyeàn read vaø execute baèng 4+1=5, vaø coøn laïi coù quyeàn execute baèng 1. Chuù yù: ngöôøi söû duïng coù quyeàn ñoïc thì coù quyeàn copy taäp tin vaø taäp tin sao cheùp seõ thuoäc sôû höõu ngöôøi laøm copy nhö minh hoïa sau: [ndhung@netcom ndhung]$ ls -1 /etc/passwd -rw-r--r-- 1 root root 1113 Oct 13 12 : 30 /etc/passwd [ndhung@netcom ndhung]$ cp /etc/passwd ./ [ndhung@netcom ndhung]$ ls -1 passwd -rw-r--r-- 1 ndhung admin 1113 Oct 15 10 : 37 passwd Caùc quyeàn maëc ñònh khi taïo taäp tin. Khi moät taäp tin hay thö muïc ñöôïc taïo ra, permission maëc ñònh seõ ñöôïc xaùc ñònh bôûi caùc quyeàn tröø bôùt bôûi caùc quyeàn hieån thò baèng umask [ndhung@netcom ndhung]$ umask 002 [ndhung@netcom ndhung]$ echo tao mot file > tmp [ndhung@netcom ndhung]$ ls -1 total 5472 -rw-rw-r-- 1 ndhung ndhung 13 Oct 3 21 : 55 tmp [ndhung@netcom /etc]$ umask 022 [ndhung@netcom ndhung]$ echo tao mot file khac > tmp1 [ndhung@netcom ndhung]$ ls -1 -rw-rw-r-- 1 ndhung ndhung 13 Oct 3 21 : 55 tmp -rw-r--r-- 1 ndhung ndhung 18 Oct 3 21 : 59 tmp1 Trong ví duï treân, quyeàn maëc ñònh luùc ñaàu xaùc ñònh bôûi umask=002. Khi ñoù, taäp tin tmp taïo ra seõ coù quyeàn laø 664 vaø ñoù chính laø buø ñeán 6 cuûa umask. Quyeàn excute (giaù trò 1) caàn ñöôïc gaùn coá yù bôûi ngöôøi söû duïng hay caùc chöông trình bieân dòch. Sau ñoù ta ñoåi giaù trò cuûa umask thaønh 022 vaø taäp tin taïo ra coù quyeàn 644. Giaù trò maëc ñònh cuûa caùc quyeàn thöôøng ñöôïc gaùn moãi khi ngöôøi söû duïng login vaøo heä thoáng thoâng qua caùc taäp tin khôûi taïo bieán moâi tröôøng nhö .profile, .bashrc. Ñöùng treân quan ñieåm baûo maät heä thoáng, giaù trò 024 laø toát nhaát, noù cho ngöôøi cuøng nhoùm coù quyeàn ñoïc vaø khoâng cho quyeàn naøo vôùi nhöõng ngöôøi khaùc. 2) Leänh chmod, chown, chgrp : a) Chmod: Ñaây laø nhoùm leänh ñöôïc söû duïng raát phoå bieán, cho pheùp thay quyeàn truy caäp cuûa taäp tin hay thö muïc. Chæ coù chuû sôû höõu vaø superuser môùi coù quyeàn thöïc hieän caùc leänh naøy. Duøng leänh thay ñoåi quyeàn treân file. Cuù phaùp duøng leänh : chmod teân_file. Nhoùm-ngöôøi-duøng Thao taùc Quyeàn u – user + : theâm quyeàn r – read Trang 34 g – group - : xoùa quyeàn w – write o – others = : gaùn quyeàn baèng x – excute a – all Moät soá ví duï : gaùn quyeàn treân taäp tin myfile • Gaùn theâm quyeàn write cho group : $ chmod g+w myfile • Xoùa quyeàn read treân group vaø others : $ chmod go-w myfile • Caáp quyeàn x cho moïi ngöôøi $ chmod ugo+x myfile hoaëc $chmod a+x myfile hoaëc $ chmod +x myfile Ñaây laø caùch thay ñoåi töông ñoái vì keát quaû cuoái cuøng phuï thuoäc vaøo quyeàn ñaõ coù tröôùc ñoù maø leänh naøy khoâng lieân quan ñeán. Treân quan ñieåm baûo maät heä thoáng, caùch thay ñoåi tuyeät ñoái daãn ñeán ít sai soùt hôn. Thay ñoåi quyeàn truy caäp cuûa moät thö muïc cuõng ñöôïc thöïc hieän gioáng nhö ñoái vôùi moät taäp tin. Chuù yù laø neáu baïn khoâng coù quyeàn thöïc hieän (execute) ñoái vôùi moät thö muïc, baïn khoâng theå thay ñoåi thö muïc cd vaøo thö muïc ñoù. Moïi ngöôøi söû duïng coù quyeàn vieát vaøo thö muïc ñeàu coù quyeàn xoùa taäp tin trong thö muïc ñoù, khoâng phuï thuoäc vaøo quyeàn cuûa ngöôøi ñoù ñoái vôùi taäp tin. Vì vaäy, ña soá caùc thö muïc coù quyeàn drwxr-xr-x. Nhö vaäy chæ coù ngöôøi sôû höõu cuûa thö muïc môùi coù quyeàn taïo vaø xoùa taäp tin trong thö muïc. Ngoaøi ra, thö muïc coøn coù moät quyeàn ñaëc bieät, ñoù laø cho pheùp moïi ngöôøi ñeàu coù quyeàn taïo taäp tin trong thö muïc, moïi ngöôøi ñeàu coù quyeàn thay ñoåi noäi dung taäp tin trong thö muïc, nhöng chæ coù ngöôøi taïo ra môùi coù quyeàn xoùa taäp tin. Ñoù laø sticky bit cho thö muïc. Thö muïc /tmp thöôøng coù sticky bit baät leân drwxrwxrwt 7 root root 16384 Oct 21 15:33 tmp Ta thaáy chöõ t cuoái cuøng trong nhoùm caùc quyeàn, theå hieän cho sticky bit cuûa /tmp. Ñeå coù sticky bit, ta söû duïng leänh chmod 1????????? teân_thö_muïc. Ngoaøi caùch gaùn quyeàn treân, chuùng ta cuõng coù theå gaùn quyeàn tröïc tieáp thoâng qua 3 chöõ soá xaùc ñònh quyeàn nhö sau : $chmod giaù-trò-quyeàn teân-file Ví duï caáp quyeàn cho taäp tin myfile Quyeàn leänh -wrxr-xr-x $chmod 755 myfile -r-xr--r -- $chmod 522 myfile -rwxrwxrwx $chmod 777 myfile Phöông phaùp thay ñoåi tuyeät ñoái naøy coù moät soá öu ñieåm vì noù laø caùch ñònh quyeàn tuyeät ñoái, keát quaû cuoái cuøng khoâng phuï thuoäc vaøo quyeàn truy caäp Trang 35 tröôùc ñoù cuûa taäp tin. Ñoàng thôùi, deã noùi “thay quyeàn taäp tin thaønh 755” thì deã hôn laø “thay quyeàn taäp tin thaønh read-write-excute, read-excute, read-excute” b) Chown Leänh chown duøng ñeå thay ñoåi quyeàn sôû höõu treân taäp tin tin, thö muïc $chown [teân-user][:teân-nhoùm-sôû-höõu] teân-taäp-tin/thö-muïc $chown –R [teân-user][:teân-nhoùm-sôû-höõu] teân_thö_muïc Doøng leänh cuoái cuøng vôùi töø choïn –R (recursive) cho pheùp thay ñoåi ngöôøi sôû höõu cuûa thö muïc teân_thö_muïc vaø taát caû caùc thö muïc con cuûa noù. Ñieàu naøy cuõng ñuùng vôùi leänh chmod, chgrp. c) Chgrp Leänh chgrp duøng ñeå thay ñoåi nhoùm sôû höõu cuûa moät taäp tin, thö muïc chgrp nhoùm-sôû-höõu teân-taäp-tin/thö-muïc 3) Löu tröõ file : a) Tar b) Dd c) Gzip d) cpio Baøi 4: Nhöõng trình tieän ích I) Trình soaïn thaûo vi : vi laø chöông trình soaïn thaûo chuaån treân caùc heä maùy Unix. Noù laø chöông trình soaïn thaûo tröïc quan, hoaït ñoäng döôùi 2 cheá ñoä : cheá ñoä leänh (command mode) vaø cheá ñoä soaïn thaûo (input mode). Ñeå soaïn thaûo taäp tin môùi hoaëc xem hay söûa chöõa taäp tin cuõ baïn duøng leänh: vi teân-taäp-tin Khi chaïy vi seõ hieän leân maøn hình soaïn thaûo, nhöng löu yù raèng chuùng ta chöa soaïn thaûo ñöôïc. vi söû duïng hai cheá ñoä: ÔÛ cheá ñoä leänh chuùng ta söû duïng caùc phím ñeå xöû lyù treân vaên baûn nhö dòch chuyeån con troû, löu döõ lieäu, môû file môùi… coøn döôùi cheá ñoä soaïn thaûo chuùng ta söû duïng baøn phím ñeå soaïn noäi dung vaên baûn. • Chuyeån cheá ñoä laøm vieäc : Töø cheá ñoä soaïn thaûo Æ cheá ñoä leänh : duøng phím ESC (escape) Töø cheá ñoä leänh -> cheá ñoä soaïn thaûo: xem phaàn sau • Chuyeån sang cheá ñoä soaïn thaûo i tröôùc daáu con troû I tröôùc kyù töï ñaàu tieân treân doøng a sau daáu con troû A sau kyù töï ñaàu tieân treân doøng o döôùi doøng hieän taïi Trang 36 O treân doøng hieän taïi r thay theá 1 kyù töï hieän haønh R thay theá cho ñeán khi nhaán • Moät soá haøm leänh cuûa vi vi taäp tin --> baét ñaàu doøng 1 vi +n taäp tin --> baét ñaàu ôû doøng n vi +/pattern --> baét ñaàu ôû pattern vi -r taäp tin --> phuïc hoài taäp tin sau khi heä thoáng treo • Di chuyeån con troû h sang traùi moät khoaûng traéng e sang phaûi moät khoaûng traéng - nt - w sang phaûi 1 töø b sang traùi 1 töø k leân moät doøng j xuoáng moät doøng - nt - ) cuoái caâu ( ñaàu caâu } ñaàu ñoaïn vaên { cuoái ñoaïn vaên ^-w ñeán kyù töï ñaàu tieân cheøn vaøo ^-u cuoán leân 1/2 maøn hình ^-d keùo xuoáng 1/2 maøn hình ^-z keùo xuoáng 1 maøn hình ^-b keùo leân 1 maøn hình • Leänh xoaù dw 1 töø do ñeán ñaàu doøng d$ cuoái doøng 3dw 3 töø dd doøng hieän haønh 5dd 5 doøng X 1 kyù töï • Leänh thay theá cw thay theá 1 töø 3cw thay theá 3 töø cc doøng hieän haønh 5cc 5 doøng • Leänh tìm kieám */and töø keá tieáp cuûa and *?and töø keát thuùc laø and */nThe tìm doøng keá baét ñaàu baèng The Trang 37 n laëp laïi laàn doø tìm sau cuøng • Leänh tìm kieám vaø thay theá :s/text1/text2/g thay text1 bôûi text2 :1,$s/taäp tin/thö muïc thay taäp tin baèng thö muïc töø haøng 1 ñeán cuoái :g/one/s//1/g thay theá one baèng 1 • Thao taùc treân taäp tin :w : ghi vaøo taäp tin :x : löu vaø thoaùt khoûi cheá ñoä soaïn thaûo :wq “” : w filename: löu vaøo file môùi :q : thoaùt neáu khoâng coù thay ñoåi noäi dung taäp tin :q! : thoaùt khoâng löu neáu coù thay ñoåi taäp tin :r : Môû file ñoïc . II) Trình tieän ích mail : Thö ñieän töû (mail) laø moät tieän ích do UNIX cung caáp ñeå göûi vaø nhaän thoâng baùo. Coù hai leänh mail vaø mailx. 1) Mail : $mail Thö ñieän töû cung caáp caùc khaû naêng cô baûn ñeå göûi vaø nhaän thoâng baùo.Mail seõ hieån thò thoâng baùo theo thöù töï vaøo tröôùc ra sau.Sau khi hieån thò moãi thoâng baùo mail seõ hieän leân daáu ? ñeå chôø leänh cuûa ngöôøi söû duïng. Coù theå coù caùc leänh sau : - newline Hieån thò thoâng baùo keá, neáu khoâng coøn thì thoaùt khoûi mail. - + Gioáng nhö newline - p In thoâng baùo - s [taäp tin] Caát thoâng baùo vaøo taäp tin hoaëc mbox - w[taäp tin] Gioáng nhö s nhöng khoâng caát ñaàu thoâng baùo - d Xoùa thoâng baùo - q Thoaùt khoûi mail - x Thoaùt khoûi mail maø khoâng thay ñoåi thoâng baùo - ! leänh Thöïc hieän leänh Unix Gôûi thö : Ñöa vaøo leänh mail vôùi ñòa chæ cuûa ngöôøi söû duïng. Ví duï : $ mail dungø@fibi.hcm.vn.com ^-D Thoâng baùo seõ ñöôïc göûi cho ngöôøi söû duïng coù teân laø dung ôû coâng ty fibi vuøng hcm.vn.com. Coù theå cuøng moät luùc göûi moät thoâng baùo cho nhieàu ngöôøi : $ mail dung@fibi.hcm.vn.com trung@fibi,hanoi.vn.com Nhaän thö : Khi login vaøo heä thoáng neáu coù thö heä thoáng seõ thoâng baùo “ You have mail” khi ñoù coù theå ñaùnh $mail ñeå xöû lí mail. Trang 38 2) Mailx : $mailx Mailx bao goàm caùc leänh ñeå truyeàn vaø nhaän thö. Leänh coù daïng : Leänh [danh saùch thoâng baùo] [caùc ñoái soá] [danh saùch thoâng baùo] coù theå laø : n Thoâng baùo soá n $ Thoâng baùo cuoái cuøng * Taát caû thoâng baùo n-m Töø thoâng baùo n ñeán m :d Xoùa taát caû thoâng baùo :n Thoâng baùo môùi :r Thoâng baùo chæ ñoïc :u Thoâng baùo chöa ñoïc :o Thoâng baùo cuõ Leänh help Hieån thò cuù phaùp cuûa leänh ignore Boû qua ñaàu taäp tin print Hieån thò thoâng baùo Print In thoâng baùo top Hieån thò moät vaøi doøng ñaàu cuûa thoâng baùo repond Traû lôøi moät thoâng baùo copy Cheùp thoâng baùo leân taäp tin list Hieån thi danh saùch leänh save Caát thoâng baùo leân taäp tin quit Thoaùt khoûi mailx Thö ñieän töû cung caáp caùc khaû naêng cô baûn ñeå göûi vaø nhaän thoâng baùo.Mail seõ hieån thò thoâng baùo theo thöù töï vaøo tröôùc ra sau.Sau khi hieån thò moãi thoâng baùo mail seõ hieän leân daáu ? ñeå chôø leänh cuûa ngöôøi söû duïng. Coù theå coù caùc leänh sau : - newline Hieån thò thoâng baùo keá, neáu khoâng coøn thì thoaùt khoûi mail. - + Gioáng nhö newline - p In thoâng baùo - s [taäp tin] Caát thoâng baùo vaøo taäp tin hoaëc mbox - w[taäp tin] Gioáng nhö s nhöng khoâng caát ñaàu thoâng baùo - d Xoùa thoâng baùo - q Thoaùt khoûi mail - x Thoaùt khoûi mail maø khoâng thay ñoåi thoâng baùo - ! leänh Thöïc hieän leänh Unix Gôûi thö : Ñöa vaøo leänh mail vôùi ñòa chæ cuûa ngöôøi söû duïng. Ví duï : $ mail dungø@fibi.hcm.vn.com Trang 39 ^-D Thoâng baùo seõ ñöôïc göûi cho ngöôøi söû duïng coù teân laø dung ôû coâng ty fibi vuøng hcm.vn.com. Coù theå cuøng moät luùc göûi moät thoâng baùo cho nhieàu ngöôøi : $ mail dung@fibi.hcm.vn.com trung@fibi,hanoi.vn.com Nhaän thö : Khi login vaøo heä thoáng neáu coù thö heä thoáng seõ thoâng baùo “ You have mail” khi ñoù coù theå ñaùnh $mail ñeå xöû lí mail Baøi 5: User vaø login Trong moâi tröôøng nhieàu ngöôøi cuøng laøm vieäc treân heä thoáng, cuøng söû duïng, chia seû caùc taøi nguyeân nhö boä nhôù, ñóa cöùng, maùy in vaø caùc thieát bò khaùc. Chính saùch quaûn lyù ngöôøi duøng toát seõ laø chìa khoùa cho hoaït ñoäng hieäu quaû cuûa heä thoáng. I) Superuser : Caùc heä thoáng maùy chuû ñeàu coù account quaûn trò, ví nhö NT coù account administrator, Novell coù admin. Ñaây laø account coù quyeàn cao nhaát, duøng cho ngöôøi quaûn trò quaûn lyù, giaùm saùt heä thoáng. Trong quaù trình caøi ñaët Linux chuùng ta khôûi taïo ngöôøi söû duïng root cho heä thoáng. Ñaây laø superuser, töùc laø ngöôøi söû duïng ñaëc bieät coù quyeàn khoâng giôùi haïn. Söû duïng quyeàn root chuùng ta thaáy raát thoaûi maùi vì chuùng ta coù theå laøm ñöôïc thao taùc maø khoâng phaûi lo laéng gì ñeán xeùt quyeàn truy caäp naøy hay khaùc. Tuy nhieân, khi heä thoáng bò söï coá do moät loãi laàm naøo ñoù, chuùng ta môùi thaáy söï nguy hieåm khi laøm vieäc nhö root. Do vaäy chuùng ta chæ söû duïng account naøy vaøo caùc muïc ñích caáu hình, baûo trì heä thoáng chöù khoâng neân söû duïng vaøo muïc ñích haèng ngaøy. Baïn caàn taïo caùc taøi khoaûn (account) cho ngöôøi söû duïng thöôøng sôùm nhaát coù theå ñöôïc (ñaàu tieân laø cho baûn thaân baïn). Vôùi nhöõng server quan troïng vaø coù nhieàu dòch vuï khaùc nhau, thaäm chí baïn coù theå taïo ra caùc superuser thích hôïp cho töøng dòch vuï ñeå traùnh duøng root cho caùc coâng taùc naøy. Ví duï nhö superuser cho coâng taùc backup chæ caàn chöùc naêng ñoïc (read-only) maø khoâng caàn chöùc naêng ghi. Account root naøy coù quyeàn haïn raát lôùn neân noù laø muïc tieâu maø caùc keû xaáu muoán chieám ñoaït. Chuùng ta söû duïng noù phaûi caån thaän, khoâng söû duïng böøa baõi treân qua telnet hay keát noái töø xa maø khoâng coù coâng cuï keát noái an toaøn. Trong Linux, chuùng ta coù theå taïo caùc user coù teân khaùc coù quyeàn cuûa root, baèng caùch taïo user coù UserID baèng 0. Caàn phaân bieät baïn ñang login nhö root hay ngöôøi söû duïng thöôøng thoâng qua daáu nhaéc cuûa shell. login: natan Password: Last login: Wed Mar 13 19:00:42 2002 from 172.29.8.3 [natan@NetGroup natan]$ su - Password: [root@NetGroup /root]# Trang 40 Doøng thöù tö vôùi daáu $ cho thaáy ta ñang keát noái nhö moät ngöôøi söû duïng thöôøng (tnminh). Doøng cuoái cuøng vôùi daáu # cho thaáy baïn ñang thöïc hieän caùc leänh vôùi root. Leänh su user_name cho pheùp baïn thay ñoåi login döôùi moät user khaùc (user_name) maø khoâng phaûi logout roài login laïi. II) Nhöõng thoâng tin cuûa user Moïi ngöôøi muoán ñaêng nhaäp vaø söû duïng heä thoáng Linux ñeàu caàn coù 1 account. Vieäc taïo ra vaø quaûn lyù account ngöôøi duøng laø vaán ñeà quan troïng maø ngöôøi quaûn trò phaûi thöïc hieän. Tröø account root, caùc account khaùc do ngöôøi quaûn trò taïo ra. Moãi taøi khoaûn ngöôøi duøng phaûi coù moät teân söû duïng (username), moät maät khaåu (password) rieâng ñeå ngöôøi quaûn trò deã daøng quaûn lyù hoaït ñoäng cuûa ngöôøi duøng cuõng nhö taêng cöôøng tính an toaøn cho heä thoáng. Taäp tin /etc/passwd laø taäp tin chöùa caùc thoâng tin veà taøi khoaûn ngöôøi duøng cuûa heä thoáng. 1) Taäp tin /etc/passwd : Taäp tin /etc/passwd ñoùng vai troø soáng coøn ñoái vôùi moät heä thoáng Unix. Moïi ngöôøi ñeàu coù theå ñoïc ñöôïc taäp tin naøy nhöng chæ coù root môùi coù quyeàn thay ñoåi noù. Taäp tin /etc/passwd ñöôïc löu döôùi daïng text nhö ñaïi ña soá caùc taäp tin caáu hình cuûa Unix. [natan@NetGroup natan]$ more /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail: news:x:9:13:news:/var/spool/news: ftp:x:14:50:FTP User:/var/ftp: nobody:x:99:99:Nobody:/: nscd:x:28:28:NSCD Daemon:/:/bin/false mailnull:x:47:47::/var/spool/mqueue:/dev/null rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/bin/false xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false nthung:x:525:526:nguyen tien hung:/home/nthung:/bin/bash natan:x:526:527::/home/natan:/bin/bash … natan:x:526:527::/home/natan:/bin/bash Moãi user ñöôïc löu trong moät doøng goàm 7 coät: Coät 1 : teân ngöôøi söû duïng. Coät 2 : maõ lieân quan ñeán passwd cho Unix chuaån vaø “x” ñoái vôùi Linux. Linux löu maõ naøy trong moät taäp tin khaùc /etc/shadow maø chæ coù root môùi coù quyeàn ñoïc. Coät 3:4 : user ID:group ID. Coät 5 : teâân ñaày ñuû cuûa ngöôøi söû duïng. Moät soá phaàn meàm phaù password söû duïng döõ lieäu cuûa coät naøy ñeå thöû ñoaùn password. Trang 41 Coät 6 : thö muïc caù nhaân. Coät 7 : chöông trình seõ chaïy ñaàu tieân sau khi login (thöôøng laø shell) cho user. Taäp tin môû ñaàu bôûi superuser root. Chuù yù laø taát caû nhöõng user coù user ID = 0 ñeàu laø root. Tieáp theo laø caùc user heä thoáng. Ñaây laø caùc user khoâng coù thaät vaø khoâng theå login vaøo heä thoáng. Cuoái cuøng laø caùc user bình thöôøng. 2) Teân ngöôøi duøng vaø ñònh danh ngöôøi duøng (Username vaø User ID) : Teân ngöôøi duøng laø chuoãi kyù töï xaùc ñònh duy nhaát moät ngöôøi duøng. Ngöôøi duøng teân naøy khi ñaêng nhaäp cuõng nhö truy xuaát taøi nguyeân. Trong linux teân phaân bieät chöõ hoa, thöôøng. Thoâng thöôøng teân ngöôøi duøng thöôøng söû duïng chöõ thöôøng. Ñeå quaûn lyù ngöôøi duøng linux söû duïng khaùi nieäm ñònh danh ngöôøi duøng (user ID). Moãi ngöôøi duøng mang moät con soá ñònh danh cho mình. Linux söû duïng soá ñònh danh ñeå kieåm soaùt hoaït ñoäng cuûa ngöôøi duøng. Theo qui ñònh chung caùc ngöôøi duøng coù ñònh danh laø 0 laø ngöôøi duøng quaûn trò (root). Caùc soá ñònh danh töø 1- 99 söû duïng cho caùc taøi khoaûn heä thoáng, ñònh danh cuûa ngöôøi duøng bình thöôøng söû duïng giaù trò baét ñaàu töø 100. 3) Password : Moãi ngöôøi duøng phaûi coù moät maät khaåu rieâng ñeå söû duïng taøi khoaûn ngöôøi duøng cuûa mình. Moïi ngöôøi ñeàu coù quyeàn ñoåi maät khaåu cuûa chính mình. Ngöôøi quaûn trò thì coù theå ñoåi maät khaåu cuûa nhöõng ngöôøi khaùc. Unix truyeàn thoáng löu caùc thoâng tin lieân quan tôùi maät khaåu ñeå ñaêng nhaäp (login) ôû trong /etc/passwd. Tuy nhieân, do ñaây laø taäp tin phaûi ñoïc ñöôïc bôûi taát caû moïi ngöôøi do moät soá yeâu caàu cho hoaït ñoäng bình thöôøng cuûa heä thoáng (nhö chuyeån User ID thaønh teân khi hieån thò trong leänh ls chaúng haïn) vaø nhìn chung caùc user ñaët maät khaåu “yeáu”, do ñoù, haàu heát caùc phieân baûn Unix môùi ñeàu löu maät khaåu trong moät taäp tin khaùc /etc/shadow vaø chæ coù root ñöôïc quyeàn ñoïc taäp tin naøy. Chuù yù: Theo caùch xaây döïng maõ hoùa maät khaåu, chæ coù 2 caùch phaù maät khaåu laø veùt caïn (brute force) vaø ñoaùn. Phöông phaùp veùt caïn, theo tính toaùn chaët cheõ, laø khoâng theå thöïc hieän noåi vì ñoøi hoûi thôøi gian tính toaùn quaù lôùn, coøn ñoaùn thì chæ tìm ra nhöõng maät khaåu ngaén, hoaëc “yeáu”, ví duï nhö nhöõng töø tìm thaáy trong töø ñieån nhö god, darling … 4) Group ID: Ñònh danh cuûa nhoùm maø user naøy laø moät thaønh vieân cuûa nhoùm. 5) Comment: Doøng chuù thích veà user naøy. 6) Home Directory : Khi ngöôøi duøng login vaøo heä thoáng ñöôïc ñaët laøm vieäc taïi thö muïc caù nhaân cuûa mình. Thöôøng thì moãi ngöôøi coù moät thö muïc caù nhaân rieâng, ngöôøi duøng coù toaøn quyeàn treân noù, noù duøng chöùa döõ lieäu caù nhaân vaø caùc thoâng tin heä thoáng cho hoaït ñoäng cuûa ngöôøi duøng nhö bieán moâi tröôøng, script khôûi ñoäng, profile khi söû duïng X window … Trang 42 Thö muïc maëc nhieân söû duïng cho caùc thö muïc caù nhaân cuûa ngöôøi duøng bình thöôøng laø /home; cho root laø /root. Tuy nhieân chuùng ta cuõng coù theå ñaët vaøo vò trí khaùc. 7) Quaù trình login cuûa user. (bieán moâi tröôøng...) : III) Quaûn lyù ngöôøi duøng : 1) Taïo user : Ñeå taïo moät account, baïn coù theå söû duïng leänh adduser (hoaëc useradd tuøy vaøo phieân baûn). Moät soá tham soá thöôøng söû duïng vôùi useradd #useradd [ -c lôøi-moâ-taû-veà-ngöôøi-duøng] [-d thö-muïc-caù-nhaân] [-m] [-g nhoùm- cuûa-ngöôøi-duøng] teân-ngöôøi-duøng. Tham soá –m söû duïng ñeå taïo thö muïc caù nhaân neáu noù chöa toàn taïi. Caùc thao taùc veà ngöôøi duøng thöïc hieän döôùi quyeàn root (daáu nhaéc #) [root @appserv netcom]# useradd –c “Nguyen van B “ nvb [root@appserv netcom]# passwd nvb Changing password for user nvb New UNIX password Retype new UNIX password: passwd: all authentication tokens updated successfully [root@appserv netcom]# Sau khi baïn taïo xong user bôûi doøng ñaàu tieân cuûa ví duï treân, user nvb vaãn chöa keát noái ñöôïc vì thieáu password. Baïn phaûi khôûi taïo password cho nvb bôûi leänh password nvb nhö thaáy ôû treân. Vì vaán ñeà an ninh cuûa maùy Unix naøy vaø keùo theo söï an toaøn cuûa toaøn heä thoáng maïng cuûa baïn, raát quan troïng choïn ñuùng password. Moät password goïi laø ñuùng neáu: • Coù ñoä daøi toái thieåu 8 kyù töï • Phoái hôïp giöõa chöõ thöôøng, chöõ hoa, soá vaø caùc kyù töï ñaëc bieät • Khoâng lieân quan ñeán teân tuoåi, ngaøy sinh … cuûa baïn vaø ngöôøi thaân • Khoâng coù trong töø ñieån Trong ví duï treân, baïn khôûi taïo ngöôøi duøng vaø khoâng quan taâm gì ñeán nhoùm (group) cuûa ngöôøi duøng. Raát tieän lôïi neáu baïn taäp hôïp nhieàu ngöôøi duøng vaøo chung moät nhoùm coù cuøng moät chöùc naêng vaø cuøng chia seû nhau döõ lieäu. Khi baïn taïo ngöôøi söû duïng nhö treân, Linux seõ taïo cho moãi ngöôøi moät nhoùm. Ñoïc taäp tin /etc/passwd ta thaáy: [root@appserv netcom]# more /etc/passwd\grep nvb nvb:x:1012:1013::/home/nvb:/bin/bash [root@appserv netcom]# nvb laø user soá 1012 vaø thuoäc nhoùm 1013. Xem taäp tin /etc/group ta thaáy: [root@appserv netcom]# more/etc/group Trang 43 root:x:0:root ………… users:x:100: ………… nvb:x:1013: vaø ta coù theå keát naïp nvb vaøo nhoùm users baèng caùch thay soá 1013 baèng 100, laø group ID cuûa users. 2) Thay ñoåi thoâng tin cuûa user : Baïn coù theå thay ñoåi laïi thoâng tin user töø taäp tin /etc/passwd hoaëc duøng leänh usermod #usermod [ -c lôøi-moâ-taû-veà-ngöôøi-duøng] [-d thö-muïc-caù-nhaân] [-m] [-g nhoùm- cuûa-ngöôøi-duøng] teân-ngöôøi-duøng. Ví duï cho user nvb vaøo nhoùm admin #usermod –g admin nvb 3) Huûy user : Leänh userdel duøng ñeå xoùa moät user. Baïn cuõng coù theå xoùa moät user baèng caùch xoùa ñi doøng döõ lieäu töông öùng trong taäp tin /etc/passwd. #userdel teân-ngöôøi-duøng Ví duï xoùa user nvb : #userdel nvb IV) Group : Vieäc taïo nhoùm xuaát phaùt töø vieäc gom caùc ngöôøi duøng coù chung moät soá quyeàn haïn treân taøi nguyeân. Moãi nhoùm coù moät teân vaø moät ñònh danh nhoùm, Moät nhoùm coù theå chöùa nhieàu ngöôøi duøng vaø ngöôøi duøng coù theå thuoäc nhieàu nhoùm. Tuy nhieân taïi moät ñieåm moät ngöôøi chæ thuoäc moät nhoùm maø thoâi. Thoâng tin cuûa nhoùm löu taïi taäp tin /etc/group. Moãi doøng ñònh nghóa moät nhoùm, caùc tröôøng treân doøng caùch nhau baèng daáu :. Noäi dung cuûa moät doøng teân-nhoùm : password-cuûa-nhoùm: ñònh-danh-nhoùm:caùc-user-thuoäc-nhoùm 1) Taïo group : Chuùng ta coù theå theâm tröïc tieáp vaøo file /etc/group hoaëc duøng leänh groupadd #groupadd teân-nhoùm 2) Theâm user vaøo group : Chuùng ta coù theå söûa töø taäp tin /etc/group, caùc teân ngöôøi duøng caùch nhau baèng daáu ;. Moät caùch khaùc laø cho töøng uset vaøo nhoùm baèng leänh: # usermod –g teân- nhoùm teân-user hay söûa taäp tin /etc/passwd cho töøng user, trong ñoù thay laïi ñònh danh nhoùm trong doøng khai baùo ngöôøi duøng. 3) Huûy group : Xoùa trong taäp tin /etc/group hay duøng leänh : #groupdel teân-nhoùm Trang 44 Baøi 6: Quaûn lyù taøi nguyeân I) Hieåu veà quota : Moät coâng cuï toát nhaát ñeå quaûn lyù taøi nguyeân ñóa laø quota. Quota ñöôïc duøng ñeå hieån thò vieäc söû duïng vaø giôùi haïn ñóa cuûa ngöôøi duøng. Khi ñöôïc goïi, quota seõ queùt taäp tin /etc/fstab vaø kieåm tra nhöõng file system trong taäp tin naøy. Thoâng thöôøng, quota duøng ñeå giôùi haïn dung löôïng ñóa cöùng maø ta caáp cho ngöôøi duøng. 1) Giôùi haïn veà cöùng vaø meàm Ñeå giuùp cho vieäc giôùi haïn coù hieäu quaû, quota chia laøm 2 loaïi giôùi haïn giôùi haïn cöùng vaø giôùi haïn meàm. ¾ Giôùi haïn cöùng: khoâng cho pheùp vöôït quaù dung löôïng ñóa cho pheùp. Neáu user coá tình löu nhöõng thoâng tin vaøo thì nhöõng thoâng tin tröôùc ñoù coù theå bò xoùa vaø ñaåy leân daàn. Vieäc giôùi haïn naøy thaät maïnh meõ nhöng caàn thieát ñoái vôùi moät soá user. ¾ Giôùi haïn meàm: cho pheùp user vöôït quaù dung löôïng cho pheùp, nhöng seõ nhaän moät lôøi caûnh baùo tröôùc. Moät yù kieán hay, baïn caáu hình giôùi haïn meàm nhoû hôn giôùi haïn cöùng, vaø caáu hình khi user vöôït quaù dung löôïng cho pheùp heä thoáng seõ göûi moät lôøi caûnh baùo tröôùc khi cho pheùp user löu döõ lieäu. 2) Khi naøo söû duïng quota Khoâng phaûi baïn duøng quoata cho taát caû nhöõng filesystem. Chæ coù nhöõng filesystem naøo caàn thieát chuùng ta môùi duøng quota. Vaø khi ñoù, chuùng ta vaøo file /etc/fstab caáu hình nhö sau: /dev/hda3 /usr rw,usrquota,grpquota 1 3 II) Thieát laäp quota : Ngöôøi quaûn trò heä thoáng seõ thieát laäp quota cho user trong file coù teân quota.user naèm trong filesystem maø chuùng ta muoán caáu hình quota. Töông töï, chuùng ta cuõng seõ thieát laäp quota cho nhoùm trong file quota.group. Nhöõng taäp tin naøy baïn chuùng ta seõ taïo ra. Nhöõng leänh sau ñaây höôùng daãn baïn caùch thieát laäp quota cho filesystem /usr. cd /usr touch aquota.user chmod 600 aquota.user touch aquota.group chmod 600 aquota.group Trang 45 Baïn seõ duøng leänh edquota ñeå thieát laäp quota. Leänh naøy chæ ñöôïc duøng bôûi user root. Vôùi leänh naøy chuùng ta coù theå giôùi haïn dung löôïng cho moät hay nhieàu user hoaëc group cuøng luùc. Ví duï nhö sau: edquota hv1 hv2 Baïn coù theå ñieàu khieån leänh quota moät caùch hieäu quaû vôùi nhöõng tuøy choïn sau: -g chænh söûa quota cuûa group -p sao cheùp quota cuûa moät user cho moät user khaùc -u chænh söûa quota cho user (maëc ñònh cuûa leänh) -t chænh söûa thôøi gian cuûa giôùi haïn meàm. Sau khi thieát laäp quota, baïn phaûi baät quota leân baèng leänh quotaon /dev/hda3 Ñeå baät quoata kieåm tra taát caû nhöõng file system duøng leänh quotaon –a Leänh quotaoff coù tính naêng ngöôïc laïi, taét quota treân filesystem. III) Leänh quota : Cuù phaùp cuûa leänh: quota [tuøy choïn] [user] [group] Nhöõng tuøy choïn cuûa leänh quota. -g hieån thò quota cuûa group maø user naøy laø moät thaønh vieân -q chæ hieån thò nhöõng filesystem coù quota -u hieån thò quota cuûa user IV) Leänh quotacheck : Baïn coù theå söû duïng leänh quotacheck taïi baát cöù luùc naøo ñeå kieåm tra vieäc söû duïng ñóa hieän haønh. Trang 46 Baøi 7: Shell vaø Laäp trình shell I) Giôùi thieäu veà shell : 1) Shell Shell là chương trình luôn được thực thi khi chúng ta đăng nhập hệ thống. Nó là chương trình cho phép chúng ta tương tác với hệ thống. Hiện tại có nhiều shell có sẵn trong hệ thống. Shell cung cấp cho người dùng một tập lệnh để người dùng thao tác với hệ thống. Khi người dùng thực hiện lệnh shell, shell sẽ dịch chúng thành các lời gọi hệ thống và chuyển cho kernel hệ điều hành xử lý. Shell cũng là một phần trong các ứng dụng mà kernel quản lý. Kernel chịu trách nhiệm cấp phát tài nguyên duy trì các tiến trình shell. Linux là hệ thống đa người dùng, khi mỗi người dùng đăng nhập hệ thống, họ sẽ nhận được một bản copy của shell để thao tác với hệ thống. Một số đặc điểm của shell • xử lý tương tác ( Interative processing) : Người dùng tương tác với shell dưới dạng đối thoại trực quan. • Chạy nền : Các chương trình trên shell có thời gian thực thi lâu và chiếm ít tài nguyên có thể cho phép chạy nền bên dưới trong khi đó người dùng có thể thực hiện các công việc khác. Điều này tăng hiệu quả sử dụng hệ thống. • Chuyển hướng (Redirection): Có thể linh hoạt chuyển đổi các dữ liệu ra vào chuẩn và lỗi. • Ống dẫn (pipe): Cho phép thực hiện nhiều lệnh liên tiếp trong đó dữ liệu ra của lệnh này được sử dụng như dữ liệu vào của lệnh kia. • Tập tin lệnh (shell script) : Tạo các tập tin chứa các lệnh làm việc theo trình tự. Cấp quyền và thực thi tập tin này. • Biến shell : shell hỗ trợ sử dụng các biến lưu trữ các thông tin để điều khiển hoạt động. • Sử dụng lại các lệnh đã thực hiện ( history command). Đây là tính năng rất có ích cho người dùng. Để thực hiện lại các lệnh mình đã thực hiện trước đó, thay vì phải gõ lại, người dùng có thể lại. • Cấu trúc lệnh như ngôn ngữ lập trình : Shell cho phép sử dụng lệnh như ngôn ngữ lập trình, bởi nó có thể kết hợp xử lý các tác vụ phức tạp. • Tự động hoàn tất tên file, hoặc lệnh : Chúng ta có thể gõ phần đầu của lệnh hoặc tập tin sau đó dùng để hoàn tất phần còn lại. • Bí danh cho lệnh (command alias). Bạn có thể dùng một tên mới cho một lệnh. Sau đó sử dụng tên này thay thế lệnh : $ alias dir=’ls –l’ Lúc này ta sử dụng lệnh dir dùng như ls –l Các shell trong Linux. Tên shell Lịch sử ra đời sh ( Bourne) Shell nguyên thủy trong Unix Csh, tcsh và zsh Shell sử dụng cấu trúc lệnh lệnh của ngôn ngữ C làm ngôn ngữ script. Shell này được tạo bởi Bill Joy, đây là shell thông dụng thứ 2 sau bash Bash Bash(bourne Again shell)là shell sử dụng chính trong Linux, ra đời từ dự án GNU. Bash có ưu điểm Trang 47 là mã nguồn mở, có thể download từ địa chỉ Rc Là shell mở rộng của c shell với nhiều tương thích với ngôn ngữ C, ra đời từ dự án GNU Shell Linux maëc ñònh laø bash, naèm taïi /bin/bash Taát caû caùc heä Linux ñeàu coù shell bash. Muoán bieát mình ñang duøng shell naøo, baïn goõ: Echo $SHELL 2) Laäp caáu hình moâi tröôøng ñaêng nhaäp 3) Caùc file chuaån treân Linux : Khi chạy chương trình Linux, nó giao tiếp với chúng ta qua việc hiển thị thông tin ra màn hình. Thông tin hiển thị màn hình có thể là dữ liệu của chương trình hay lỗi phát sinh khi có lỗi xảy ra. Chúng ta giao tiếp với chương trình qua các kí tự gõ vào bàn phím. Luồng dữ liệu vào từ bàn phím gọi là chuẩn input. Luồng dữ liệu ra màn hình gọi là chuẩn output còn luồng dữ liệu thông báo lỗi là chuẩn error. Trong Linux các luồng giao tiếp chuẩn được xem như các file dữ liệu và được đánh số theo thứ tự : file input chuẩn 0, file output chuẩn 1 và file error chuẩn là 2. Các sổ này được gọi là file descriptor. Ví dụ về các file ra vào chuẩn : Sử dụng chương trình cat để soạn thảo, chúng ta gõ $ cat du lieu vao tu ban phim dong du lieu thu hai Để kết thúc luồng dữ liệu vào chúng ta gõ . Tất cả các dữ liệu chúng ta đưa vào từ bàn phím được xem là file input chuẩn. Dùng lệnh ls chúng ta sẽ nhận được dữ liệu ra màn hình, đó là file output chuẩn. Một thông báo lỗi xuất hiện ở màn hình khi chúng ta gõ lệnh sai hoặc truy xuất vào các tập tin hay thư mục không có quyền chính là file error chuẩn. Ví dụ như chúng ta gõ lệnh listn thì sẽ xuất hiện lỗi invalid command. 4) Chuyeån tieáp (redirection) : Chuyển tiếp là hình thức thay đổi luồng dữ liệu của các input, output chuẩn và error. Khi dùng chuyển tiếp, input chuẩn có thể lấy dữ liệu từ file thay vì bàn phím, output chuẩn hoặc error có thể chuyển vào tập tin hay ra máy in. Có 3 loại chuyển hướng : ™ Input redirection ™ Output redirection ™ Error redirection a) Input direction Theo qui ước thì các lệnh lấy dữ liệu từ input chuẩn (bàn phím). Để lệnh lấy dữ liệu từ file chúng ta dùng ký hiệu < : $lệnh < input Bạn có thể hình dung < chỉ hướng dữ liệu. Ví dụ $cat < abc.txt hoặc $cat 0< abc.txt Trang 48 b) Output redirection Dữ liệu ra của các lệnh thông thường được hiển thị trên màn hình. để dữ liệu ra được đưa vào file chúng ta dùng dấu > $lệnh > tên-file Ví dụ : Liệt kê nội dung thư mục và chuyển vào file $ls –l > tm.txt Để thêm vào dữ liệu có sẵn trên file chúng ta dùng dấu >> thay cho dấu > $lệnh >> tên-file Ví dụ : $cat a.txt >> sum.txt 5) Oáng daãn (Pipe) : Pipe là còn gọi là truyền thẳng là cách truyền dữ liệu sử dụng kết hợp 2 chuyển tiếp. Pipe sử dụng kết xuất của một chương trình và làm nhập liệu cho một chương trình khác. Ví dụ : $ls –l | more Kết quả của lệnh ls không xuất ra màn hình mà chuyển cho lệnh more xử lý như dữ liệu đầu vào. 6) Leänh tee : Hoaït ñoäng chuyeån tieáp vaø ñöôøng oáng laø ñaëc ñieåm cuûa heä ñieàu haønh UNIX. Tuy nhieân ta cuõng coù theå söû duïng 1 leänh cuûa Linux ñeå laøm vieäc naøy. Ñoù laø leänh tee, noù seõ giaûm bôùt caùc keát quaû giaùn tieáp cuûa chuoãi ñöôøng oáng. Ví duï: sort baocao | tee baocaostt | lp Ñaàu tieân leänh tee göûi nhaäp chuaån cuûa noù ñeán xuaát chuaån cuûa noù, trong tröôøng hôïp naøy göûi xuaát cuûa sort ñeán nhaäp cuûa lp. Thöù hai tee laáy choã 1 baûn sao cuûa nhaäp chuaån vaøo teân taäp tin baocaostt. II) Muïc ñích vaø yù nghóa cuûa vieäc laäp trình shell : Shell là lớp vỏ bên ngoài hạt nhân, là phần trung gian cho người dùng thao tác với hạt nhân. Chúng ta đã rất quen thuộc với các shell trong DOS là command.com sẽ dịch các lệnh như del, coppy… thành những ngắt cấp thấp của hệ điều hành DOS để thực hiện. Ngoài ra DOS còn cho chúng ta tạo các tập tin bat gồm nhiều lệnh thực hiện trình tự. Shell trong DOS nói chung còn rất đơn giản và không sử dụng nhiều các tác vụ hệ thống. Linux cung cấp các shell phong phú, uyển chuyển hơn. Nó cho phép bạn tạo những tập tin dạng bat với cấu trúc lặp như C, hay có thể sử dụng phối hợp nhiều lệnh shell với nhau. Ví dụ ta có thể kết hợp lệnh ls và more để xem danh sách các tập tin thư mục theo từng trang. ls –l | more Linux cho phép kết hợp dữ liệu vào ra giữa các lệnh với nhau thông qua cơ chế chuyển tiếp (redirect) và ống dẫn (pipe). Ngoài ra, Linux cho phép chúng ta sử dụng các lệnh có cấu trúc giống C như if, case, for … Đây là điểm mạnh của shell trong Linux. Với các cấu trúc điều khiển như vậy chúng ta xử lý được nhiều trường hợp bằng cách kết hợp các lệnh shell với các điều kiện xử lý. Ngoài ra shell còn hỗ trợ chế độ ra vào dữ liệu, tương tác các biến môi trường Trang 49 Những chương trình shell sẽ giúp chúng ta, sử dụng và quản lý hệ thống và dịch vụ trên Linux. Ví như khởi động hay ngưng một ứng dụng chúng ta có thể viết một đoạn chương trình shell thực hiện các tập tin của chương trình. Chính sự đa dạng trong shell cho phép chúng ta tạo ra chương trình shell quản lý dịch vụ hệ thống một cách hiệu quả. III) Ñieàu khieån shell töø doøng leänh Chúng ta có thể sử dụng các lệnh shell từ dòng lệnh. Khi chúng ta chưa hoàn tất lệnh thì shell hiển thị dấu > để chúng ta thêm vào. Ví dụ $ if [ $file –d ] ; > echo ls $file > else echo “$file is not file” > fi Chúng ta sử dụng nhiều lệnh trên một dòng cách nhau bằng dấu chấm phẩy (;) Ví dụ : cd /etc ; ls –l Bạn chỉ cần gõ Enter thì sẽ thực hiện các lệnh trên dòng đó. Điều bất tiện nhất khi sử dụng trên dòng lệnh là khả năng sửa chữa lỗi khi chúng ta nhầm lẫn. Do vậy người ta thường ghi các lệnh vào trong file, rồi cho nó thực hiện tuần tự. Tập tin chứa các lệnh này được gọi là tập tin lệnh hay các shell script. IV) Ñieàu khieån taäp tin leänh Tập tin lệnh có thể được thực thi theo 2 cách. Thứ nhất bạn gọi shell và dùng tập tin là tham số : $ /bin/sh [đường- dẫn-thư-mục/] tên tập tin. Ví dụ : $/bin/sh hello. Cách thứ hai bạn sẽ gọi tập tin lệnh từ dấu nhắc của shell như thực hiện các lệnh thông thường. Theo cách này, trước hết bạn phải cấp quyền thực thi (excute) trên tập tin này. Tùy theo nhu cầu sử dụng tập tin lệnh bạn có thể cấp quyền cho người sở hữu, cho nhóm sở hữu hay cho mọi người. Lệnh cấp quyền như chúng ta đã học là chmod. Lệnh cấp quyền cho mọi người thực thi được : chmod +x [đường-dẫn/] tên tập tin Chỉ cho người sở hữu thực thi : chmod o+x [đường- dẫn-thư-mục/] tên tập tin Chạy tập tin lệnh: Bạn gõ lệnh trong console /đường-dẫn/tên-tập-tin hoặc xác định biến môi trường PATH sử dụng thư mục chứa tập tin và gõ tên-tập-tin trong cửa sổ console Nếu bạn đang làm việc tại thư mục chứa tập tin, bạn có thể chạy bằng lệnh ./tên-tập- tin Ví dụ: cấp quyền và thực thi chương trình hello : $cd /home/hv/baitap $chmod +x hello $./ hello Bạn muốn tập tin này có thể thực thi được từ bất cứ nơi đâu chỉ mà chỉ cần gõ hello thì bạn sẽ đặt lại biến môi trường PATH trong tập tin .bash_profile trong thư mục home : PATH=$PATH:/home/hv/baitap. Nếu bạn muốn tập tin này cho các user khác sử dụng thì bạn chép nó vào thư mục /usr/local/bin. Bạn nên nhớ cấp quyền lại cho tập tin này nếu bạn không muốn nó bị xóa hay bị sửa chữa . Đoạn lệnh sau có ý nghĩa : Chép tập tin hello vào thư mục /usr/local/bin và chuyển quyền sở hữu tập tin cho root, cấp cho root toàn quyền trên tập tin này, những người khác chỉ có quyền đọc và thực thi. $cp hello /usr/local/bin Trang 50 $chown root /usr/local/bin/hello $chgrp root /usr/local/bin/hello $chmod u=rwx go=rx /usr/local/bin/hello V) Cuù phaùp ngoân ngöõ shell Ngôn ngữ Shell là dạng ngôn ngữ script, không có độ uyển chuyển hay phức tạp như các ngôn ngữ lập trình chuyên nghiệp C, Pascal hay Java… Chương trình Shell được soạn thảo dưới dạng văn bản (text) và không được biên dịch thành file binary như các ngôn ngữ khác. Khi chạy chương trình shell, shell sẽ biên dịch và thực thi. Trong Linux chúng ta gặp rất nhiều các chương trình shell xử lý những công việc rất hữu hiệu. Là nhà quản trị bạn cần phải nắm vững cú pháp ngôn ngữ shell để không chỉ viết những đoạn chương trình mà ít ra cũng hiểu được các script có sẵn điều khiển hệ thống của mình. Các thành phần trong ngôn ngữ shell • Biến : kiểu chuỗi, tham số và biến môi trường. • Điều kiện : kiểm tra luận lý • Các lệnh điều khiển : if, for, while, until, case • Danh sách • Hàm • Các lệnh nội trú của shell 1) Caùc daáu ghi chuù, xaùc ñònh shell thöïc thi leänh vaø thoaùt chöông trình shell. Dòng chú thích sử dụng trong các source chương trình dùng để giải thích ý nghĩa các lệnh hoặc chứa năng của một biến hay một đoạn chương trình. Những dòng này không được biên dịch đối với các ngôn ngữ lập trình, và nó không được thực thi đối với chương trình shell. Bắt đầu một dòng chú thích là dấu # . # Dòng- ghi- chú- ở- đây Ví dụ một đoạn chương trình sử dụng dòng ghi chú. # Kiểm tra có tồn tại tham số đầu tiên if test $1 –z ; then echo “Khong co tham so“ fi # kết thúc if Trường hợp đặc biệt chỉ thị #! không dùng để giải thích mà là đây chính là dòng lệnh gọi shell để thông dịch các lệnh trong tập tin này. Bạn thường thấy dòng đầu tiên trong các chương trình shell là #! /bin/bash. Điều này có nghĩa là bạn sẽ dùng shell bash để thông dịch lệnh. Shell chúng ta chạy có thể xem là shell phụ và chúng có thể thực thi các lệnh mà không làm biến đổi các biến môi trường của shell chính. Cú pháp chung của chỉ thị này là : #!shell-thực-thi Nếu chúng ta không khai báo thì shell mặc nhiên trong Linux là bash. Các hệ Unix khác thì shell mặc nhiên là sh. Chỉ thị #! Còn dùng để chạy các chương trình khác trước khi thực thi các lệnh tiếp theo. Ví dụ : Muốn thoát khỏi chương trình chúng ta dùng lệnh exit. Chúng ta thường kèm theo mã lỗi khi sử dụng lệnh exit. Mã lỗi xác định kết quả của chương trình. Trang 51 2) Söû duïng bieán Biến dùng trong chương trình shell không cần phải khai báo trước như các ngôn ngữ C, Pascal ... Nó sẽ tự động khai báo khi người dùng lần đầu sử dụng. Dữ liệu biến lưu trữ được hiểu dưới dạng chuỗi dù nó có thể chứa số. Trong trường hợp muốn sử dụng giá trị biến như là số thì phải có các phép biến đổi mà chúng ta học phía sau. Một vấn đề mà bạn phải lưu ý là shell phân biết chữ hoa và chữ thường. Ví dụ hai biến tong và Tong là khác nhau. Phép gán giá trị cho biến : Để đặt giá trị mới cho biến chúng ta sử dụng phép gán. Cú pháp Ten-bien=giatri Ví dụ Ten=Hung So=200 Giá trị được gán có thể là hằng, biến hoặc biểu thức. Lưu ý là chúng ta không được dùng dấu khoảng trắng giữa tên-biến=giá-trị Ví dụ : ten =Hung là không hợp lệ a) Laáy giaù trò bieán Muốn lấy giá trị của biến chúng ta thêm dấu $ vào đằng trước của biến : $tên-biến Ví dụ : tp=HaNoi echo $tp $tp sẽ mang giá trị “HaNoi.” b) Hieån thò bieán ra maøn hình Lệnh echo dùng để hiển thị biến ra màn hình. Cú pháp: có thể dùng một trong 3: echo Dòng-hiển-thị echo “dònghiển-thị” echo ‘dòng-hiển-thị’ Những kí tự nằm trong dấu ‘ ‘ được xem như là hằng chuỗi. Tất cả các kí tự sẽ hiển thị hết ra màn hình, kể cả các kí tự đặc biệt. Ví dụ Lệnh sử dụng : echo ‘ Gia tri cua bien la $bien ‘ Kết quả hiện thị : Gia tri cua bien la $bien Khác với ý nghĩa của dấu ‘’, dấu “ ” dùng để xác định chuỗi bao gồm cả các ký tự hiển thị và các giá trị biến. Muốn hiển thị các ký tự đặc biệt chúng ta phải thêm dấu \ vào trước ví dụ : Lệnh sử dụng : echo ten=Dung echo “Su dung dau nhay kep” echo “Gia tri bien la $ten ” echo “Ky hieu tien la \$” Kết quả hiện thị : Su dung dau nhay kep Gia tri bien la Dung Ky hieu tien la $ Trang 52 c) Nhaäp giaù trò cho bieán töø baøn phím read tên-biến Gặp lệnh này chương trình sẽ đợi người dùng nhập giá trị vào, khi dữ liệu đã xong thì ấn Enter. Giá trị sẽ được gán vào biến tên-biến. Ví dụ : echo “Nhap vao ten cua ban “ read ten echo “Ten vua nhap la $ten” Trong ví dụ trên khi xuất hiện dòng thông báo “Nhap vao ten cua ban “, người dùng nhập vào tên ví dụ như “ Nguyen Hung Dung” thi kết quả hiển thị là “Ten vua nhap la Nguyen Hung Dung “ d) Bieán moâi tröôøng Biến môi trường là biến được định nghĩa trước và mang giá trị mặc định khi shell khởi động. Nó giúp các chương trình cũng như hệ thống trong việc xử lý các công việc. Tên của biến môi trường thường là chữ hoa để phân biệt với các tên biến do người dùng đặt trong chương trình. Một số biến môi trường thông dụng : Biến môi trường Ý nghĩa HOME Chứa thư mục home của người dùng, là thư mục sử dụng sau khi đăng nhập hệ thống PATH Danh sách các thư mục tìm kiếm khi thực hiện các lệnh PS1 Dấu nhắc hiển thị lệnh, dấu # đối với người dùng root, dấu $ đối với người dùng thường. PS2 Dấu nhắc thứ cấp thường là > IFS Dấu phân cách các trường trong danh sách chuỗi. Thường sử dụng dấu khoảng trắng, tab và xuống hàng e) Bieán tham soá Khi gọi các lệnh chúng ta thường thêm vào sau các tham số, các tham số đó sẽ là giá trị của các biến tham số của chương trình Ví dụ cp sourc.txt dest.txt . Trong ví dụ sourc.txt và dest.txt là hai tham số của chương trình cp. Thao tác với các biến tham số từ trong chương trình chúng ta sử dụng các ký hiệu sau Ký hiệu biến Ý nghĩa $1, $2, $3 Giá trị các biến tham số thứ nhất, thứ 2.. tương ứng với các tham số từ trái sang phải trong dòng tham số. $0 Tên tập tin lệnh gọi $* Danh sách tham số đầy đủ $# Tổng số tham số. $$ Số tiế

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

  • pdfUnlock-075424_Mang May Tinh NC.pdf