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...
70 trang |
Chia sẻ: hunglv | Lượt xem: 1306 | Lượt tải: 0
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:
- Unlock-075424_Mang May Tinh NC.pdf