Bài 2: Cấu trúc thư mục hệ thống và các thao tác cơ bản trên tập tin và thư mục Bài này cung cấp kiến thức về cấu trúc logic của hệ thống tập tin được ánh xạ từcấu trúc vật lý được thiết
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
Trang 2MỤC LỤC
MỤC LỤC 1
HƯỚNG DẪN 5
BÀI 1: TỔNG QUAN LINUX 8
1.1 LỊCH SỬ PHÁT TRIỂN LINUX 8
1.2 KIẾN TRÚC VÀ ĐẶC ĐIỂM CỦA LINUX 8
1.2.1 Kiến trúc Linux 8
1.2.2 Đặc điểm của Linux 9
1.2.3 Các phiên bản phổ biến 11
1.3 CÀI ĐẶT VÀ THIẾT LẬP THÔNG SỐ CHO MÁY CHỦ LINUX 12
1.4 QUẢN TRỊ GÓI 12
1.4.1 Truy vấn gói cài đặt 13
1.4.2 Gỡ bỏ một gói 14
1.4.3 Cài đặt một gói ứng dụng 15
1.4.4 Cài đặt gói với mã nguồn chưa được biên dịch 15
1.4.5 Cài đặt gói ứng dụng bằng lệnh YUM 16
TÓM TẮT 17
CÂU HỎI ÔN TẬP 18
BÀI 2: HỆ THỐNG TẬP TIN 19
2.1 TỔNG QUAN 19
2.2 CẤU TRÚC THƯ MỤC HỆ THỐNG 19
2.3 CÁC THAO TÁC TRÊN TẬP TIN HỆ THỐNG 21
2.3.1 Mount và umount 21
2.3.2 Định dạng tập tin hệ thống 22
2.3.3 Quản lý dung lượng 22
2.3.4 Kiểm tra tập tin hệ thống 23
2.3.5 Thao tác trên thư mục 23
2.3.6 Các thao tác trên tập tin 24
TÓM TẮT 27
CÂU HỎI ÔN TẬP 28
BÀI 3: LỆNH CƠ BẢN 29
Trang 33.1 MỘT SỐ KHÁI NIỆM 29
3.2 CÁC LỆNH HAY DÙNG 31
3.2.1 Gọi trợ giúp 31
3.2.2 Liệt kê nội dung thư mục 31
3.2.3 Thay đổi thư mục hiện hành 31
3.2.4 Quản lý tập tin, thư mục 32
3.2.5 Xác định vị trí tập tin 32
3.2.6 Làm việc với tập tin văn bản 33
3.2.7 Giải nén 33
3.2.8 Xem thông tin hệ thống 33
3.2.9 Theo dõi tiến trình 34
3.3 QUẢN LÝ NGƯỜI DÙNG 35
3.3.1 Thông tin người dùng 35
3.3.2 Tạo người dùng mới 36
3.3.3 Tạo thư mục cá nhân cho người dùng mới 39
3.3.4 Thiết lập mật khẩu cho người dùng mới 39
3.3.5 Thay đổi thuộc tính người dùng 40
3.3.6 Xóa bỏ một người dùng 42
3.4 QUẢN LÝ NHÓM NGƯỜI DÙNG 42
3.4.1 Thông tin nhóm người dùng 43
3.4.2 Thêm nhóm người dùng 43
3.4.3 Sửa đổi các thuộc tính của một nhóm người dùng 44
3.4.4 Xóa một nhóm người dùng 44
3.5 LỆNH DÙNG TRONG MÔI TRƯỜNG ĐA NGƯỜI DÙNG 45
3.5.1 Đăng nhập với tư cách một người dùng khác 45
3.5.2 Xác định các người dùng đang đăng nhập hệ thống 46
3.5.3 Xác định thông tin người dùng 47
3.5.4 Xác định các tiến trình đang chạy 48
3.6 PHÂN QUYỀN TẬP TIN, THƯ MUC 48
3.6.1 Quyền sử dụng tập tin và thư mục 48
TÓM TẮT 51
CÂU HỎI ÔN TẬP 52
BÀI 4: TRÌNH SOẠN THẢO VĂN BẢN VI 53
4.1 CÁC CHẾ ĐỘ CỦA VI 53
4.1.1 Khởi động VI 53
4.1.2 Lưu tập tin và thoát 54
4.1.3 Di chuyển trong văn bản 54
Trang 44.1.4 Tìm kiếm trong văn bản 56
4.1.5 Sao chép và di chuyển văn bản 56
4.1.6 Thay thế và xóa văn bản 56
TÓM TẮT 58
CÂU HỎI ÔN TẬP 59
BÀI 5: DỊCH VỤ MẠNG 60
5.1 DHCP 60
5.1.1 GIỚI THIỆU 60
5.1.2 Mô hình hoạt động và cơ chế hoạt động: (RFC 2131) 60
5.2 DNS 61
5.2.1 Giới thiệu 61
5.2.2 Kiến trúc DNS 62
5.2.3 Cơ chế hoạt động DNS 63
5.3 FTP 64
5.3.1 Tổng quan 64
5.3.2 Cơ chế hoạt động 65
TÓM TẮT 66
CÂU HỎI ÔN TẬP 67
BÀI 6: SAO LƯU VÀ PHỤC HỒI DỮ LIỆU 68
6.1 TỔNG QUAN 68
6.2 PHÂN LOẠI 69
6.3 BACKUP TRONG LINUX 70
6.4 CÁC CÔNG CỤ HỖ TRỢ BACKUP 70
6.5 NH Ữ NG LỖI KHI BACKUP 71
6.6 CÁC GIẢI PHÁP BACKUP 72
TÓM TẮT 73
CÂU HỎI ÔN TẬP 74
BÀI 7: BẢO MẬT TRÊN LINUX 75
7.1 TỔNG QUAN 75
7.2 CẤU TRÚC CỦA IPTABLES 75
7.2.1 Bộ lọc gói tin (gói tin- filtering router) 76
7.2.2 Cổng ứng dụng (Application-level gateway) 79
7.2.3 Cổng mức mạch hay cổng vòng (Circuite level gateway) 81
7.3 Đ Ặ C ĐIỂM CỦA IPTABLES 82
Trang 57.3.1 Bốn bảng: 83
7.3.2 Năm chain: 83
7.3.3 Một số target trong rule: 84
7.4 CÁC TÙY CHỌN TRONG IPTABES 85
TÓM TẮT 89
CÂU HỎI ÔN TẬP 90
TÀI LIỆU THAM KHẢO 91
Trang 6HƯỚNG DẪN
MÔ TẢ MÔN HỌC
Hệ điều hành Linux là hệ điều hành mã nguồn mở với nhiều tính năng tốt, được sửdụng phổ biến và đáp ứng được nhiều yêu cầu thực tế Môn học cung cấp các kiếnthức cơ bản về hệ điều hành, các dịch vụ cơ bản trong hệ thống mạng và những kiếnthức liên quan đến quản trị hệ thống trên nền Linux
Sau khi hoàn tất môn học, sinh viên có thể thiết lập, cài đặt, sử dụng hệ điềuhành Linux, triển khai các dịch vụ mạng cơ bản và hiểu rõ hơn vấn đề bảo mật mạng
NỘI DUNG MÔN HỌC
Bài 1 : Giới thiệu tổng quan về hệ điều hành Linux
Bài này cung cấp cho sinh viên những đặc điểm cơ bản, kiến trúc cũng như lịch sửhình thành và phát triển hệ của hệ điều hành Linux
Bài 2: Cấu trúc thư mục hệ thống và các thao tác cơ bản trên tập tin và thư mục Bài này cung cấp kiến thức về cấu trúc logic của hệ thống tập tin được ánh xạ từcấu trúc vật lý được thiết lập khi cài đặt hệ điều hành cùng các thao tác cơ bản trêntập tin và thư mục
Bài 3: Các lệnh cơ bản
Cung cấp kiến thức quản lý tài khoản người dùng, nhóm người dùng, tập tin, thưmục, đường dẫn, phân quyền…
Bài 4: Quản lý người dùng, tập tin và thư mục
Bài này sẽ cung cấp một số thông tin về tài khoản người dùng, tập tin, thư mục vàcác tác vụ quản lý người dùng, phân quyền người dùng, tập tin, thư mục
Bài 5 : Trình soạn thảo VI
Trang 7Giới thiệu một trình soạn thảo văn bản phổ biến trên Linux và các tác vụ cơ bản khitương tác với văn bản.
Bài 6 : Các dịch vụ cơ bản trên hệ điều hành Linux
Bài này sẽ giới thiệu các dịch vụ cơ bản không thể thiếu trong hê thống mạng máytính, cơ chế hoạt động của các giao thức như : DHCP, DNS, FTP…
Bài 7 : Bảo mật trong hệ điều hành Linux
Trong bài này đề cập đến vấn đề an toàn thông tin, an toàn mạng những rủi ro khigiao tiếp trong môi trường mạng máy tính và phương pháp đảm bảo an toàn hệthống với tường lửa Iptables
KIẾN THỨC TIỀN ĐỀ
Môn học đòi hỏi sinh viên có kiến thức nền tảng về mạng máy tính và kỹ năng sửdụng máy tính
YÊU CẦU MÔN HỌC
Sinh viên xem trước tài liệu và làm các bài thực hành đầy đủ Để học tốt môn này,sinh viên cần xem qua mỗi bài giảng để nắm vững các lệnh và áp dụng kiến thức vàocác bài thực tập
CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC
Để học tốt môn này, người học cần ôn tập các bài đã học, trả lời các câu hỏi vàlàm đầy đủ bài tập; đọc trước bài mới và tìm thêm các thông tin liên quan đến bàihọc
Đối với mỗi bài học, người học đọc trước mục tiêu và tóm tắt bài học, sau đó đọcnội dung bài học Kết thúc mỗi ý của bài học, người đọc trả lời câu hỏi ôn tập và kếtthúc toàn bộ bài học, người đọc làm các bài tập
PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC
Môn học được đánh giá gồm:
Trang 8 Điểm quá trình: 30% Hình thức và nội dung do GV quyết định, phù hợp với quychế đào tạo và tình hình thực tế tại nơi tổ chức học tập.
Điểm thi: 70% Hình thức bài thi báo cáo đề tài do sinh viên tự chọn hay đượcgiao
Trang 9BÀI 1: TỔNG QUAN LINUX
Sau khi học xong bài này, học viên có thể hiểu được:
Lịch sử phát triển của Linux
Kiến trúc và các đặc điểm cơ bản của Linux
Cài đặt, sử dụng và thiết lập các thông số cho máy chủ Linux
Cài đặt và tháo gỡ các phần mềm, ứng dụng trên Linux
1.1 LỊCH SỬ PHÁT TRIỂN LINUX
Năm 1991, Linus Torvalds công bố phiên bản 0.01 và thông báo dự định của mình
về Linux (dựa trên nền tảng của hệ điều hành Unix) Tháng 1/1992, Linus cho raversion 0.02 với shell và trình biên dịch C
Linux 1.0 chính thức được phát hành vào năm 1994, được phân phát miễn phí vàphát triển trên mạng Internet cho các dòng máy tính khác nhau Hệ điều hành nàyphát triển nhanh chóng và trở nên phổ biến trong thời gian ngắn và mọi người có thể
dễ dàng tải từ Internet
1.2 KIẾN TRÚC VÀ ĐẶC ĐIỂM CỦA LINUX
1.2.1 Kiến trúc Linux
Hệ điều hành Linux bao gồm các thành phần cơ bản sau, trong đó mỗi thành phần
có một chức năng riêng biệt
Trang 101.2.2 Đặc điểm của Linux
Bộ nhớ ảo (partition swap) tốt
o Linux dùng bộ nhớ từ đĩa là partition swap (sử dụng khi thiếu RAM)
o Hệ thống sẽ chuyển các chương trình hoặc dữ liệu nào chưa có yêu cầutruy xuất xuống vùng swap này, khi có nhu cầu thì hệ thống chuyển lênlại bộ nhớ chính
Thư viện chung
o Hệ thống Linux có rất nhiều thư viện dùng chung cho nhiều ứng dụng
o Giúp hệ thống tiết kiệm được tài nguyên cũng như thời gian xử lý
KERNEL: là trung tâm điều khiển
hoạt động của hệ thống Đây được xem là thành phần chính của HĐH Linux.
SHELL: cung cấp tập lệnh cho
người dùng thao tác với Kernel
Shell chính trong Linux là bash
(GNU Bourme Again Shell).
TiỆN ÍCH: các tiện ích dùng trong
Linux hầu hết là sản phẩm của chương trình GNU.
ỨNG DỤNG: là các chương trình
phục vụ cho người dùng như:
OpenOffice, MySQL …
Trang 11 Chương trình xử lý văn bản
o 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 để tương tác với các tập tin văn bản nhằm thiết lậpcác dịch vụ mạng trong hệ thống
o Linux cung cấp nhiều chương trình cho phép người dùng thao tác với vănbản như vi, emacs, nroff…
Giao diện đa cửa sổ thân thiện
o Phần server còn gọi là X server
o Phần client gọi là X window manager hay desktop environment
Sao lưu dữ liệu
o Linux cung cấp tiện ích Backup and Restore System Unix (BRU) cho phép
tự động backup dữ liệu theo lịch
Trang 12o Khả năng tương thích: có thể hoạt động trên nhiều nền tảng như máytính xách tay hay những máy tính lớn.
o Hỗ trợ ứng dụng: Linux có rất nhiều các ứng dụng tiện ích cho ngườidùng
o Công cụ phát triển: nhiều ngôn ngữ lập trình như: C, C++, PL, python…
o Được hỗ trợ từ cộng đồng sử dụng Linux
Khuyết điểm
o Hỗ trợ kỹ thuật: không có cơ quan nào chịu trách nhiệm phát triển Linux
o Phần cứng: cài đặt phần cứng trên hệ điều hành Linux là một điều rấtkhó khăn cho người sử dụng cũng như người quản trị Ngoài ra, hệ điềuhành Linux cũng hạn chế thiết bị phần cứng mới
Trang 131.3 CÀI ĐẶT VÀ THIẾT LẬP THÔNG SỐ CHO MÁY CHỦ LINUX
Cấu hình tối thiểu cho máy chủ Linux cung cấp các dịch vụ cơ bản (cần thiết lậpcác gói dịch vụ trong quá trình cài đặt hệ điều hành: DHCP, DNS, FTP…) trong hệthống với phiên bản Cent OS 5:
• Bộ vi xử lý (CPU): tối thiểu Pentium 200MHz cho chế độ text, Pentium II400MHz cho chế độ đồ họa
• Đĩa cứng (HDD): dung lượng đĩa phụ thuộc loại cài đặt
Xem cú pháp lệnh rpm: man rpm
Trang 141.4.1 Truy vấn gói cài đặt
Để kiểm tra một gói, ứng dụng đã được cài đặt trên hệ thống, dùng lệnh với cấutrúc sau:
Rpm –[option] tên-gói
Vd: rpm –qa samba : liệt kê các packages có tên là samba
Nếu có kết quả trả về thì gói đó đã được cài đặt
Trang 15Một số tùy chọn tham khảo
Tuỳ chọn Ý nghĩa
-q (packagefile) hiển thị package.
-a (all) truy vấn tất cả các package đã được cài đặt.
-d (documentation) liệt kê các files tài liệu liên quan
đến package.
-i (information) liệt kê các thông tin như package
name, description, release number, size, build date, installation date, vendor, và các thông tin khác.
-c (configuration) liệt kê các tập tin cấu hình của
package.
1.4.2 Gỡ bỏ một gói
Sử dụng rpm –e tên-gói để gỡ bỏ một gói đã được cài đặt
Chú ý: Nếu gỡ bỏ một package mà package đó còn phụ thuộc vào các package khác thì khi gỡ bỏ ta dùng thêm tuỳ chọn nodeps
Lỗi do package samba-3.0.23c-2.rpm phụ thuộc vào gói samba-1.2.39-1.el5.noarch.rpm Vì vậy nếu muốn xoá gói samba-3.0.23c-2.rpm thì có 2 cách:
system-config-Cách 1: xoá gói system-config-samba-1.2.39-1.el5.noarch.rpm trước,
sau đó xoá gói samba-3.0.23c-2.rpm
Cách 2: xoá gói samba-3.0.23c-2.rpm dùng với option –nodeps
Dùng lệnh rpm –qa | grep samba để kiểm tra kết quả
Trang 161.4.3 Cài đặt một gói ứng dụng
Sử dụng lệnh: rpm –ivh tên-gói
Các tùy chọn hay dùng
Tuỳ chọn Ý nghĩa
-i (install) cài đặt một package.
-v (verbose) hiển thị tóm tắt kết quả sau khi cài đặt
package.
-h (hash) hiện thị đấu “#” thông báo quá trình cài đặt
đang tiếp diễn.
1.4.4 Cài đặt gói với mã nguồn chưa được biên dịch
Gói ứng dụng với mã nguồn chưa được biên dịch sẽ được tiến hành biên dịch trựctiếp trên máy trước khi cài đặt theo các bước sau:
- Dùng lệnh, giải nén gói với mã nguồn được nén có phần mở rộng ‘.tar’:
Trang 171.4.5 Cài đặt gói ứng dụng bằng lệnh YUM
Để cài đặt gói theo cách này, yêu cầu máy tính được kết nối internet, máy tính sẽthực hiện tìm kiếm tự động gói ứng dụng phù hợp nhất cho máy tính và tiến hành càiđặt Với cách này sẽ rất tiện dụng cho người dụng
Yum –[option] tện-gói
Một số tùy chọn
-install: cài đặt một gói
-uninstall: gỡ bỏ một gói
Trang 18Triển khai được các ứng dụng, phần mềm cho người dùng và quản trị các gói cài đặt ( cài đặt, tháo bỏ, chỉnh sửa, cập nhật…)
Trang 19CÂU HỎI ÔN TẬP
Câu 1: Hãy trình bày kiến trúc hệ điều hành linux và chức năng của các thànhphần ?
Câu 2: Hãy phân biệt hệ điều hành đơn nhiệm với đa nhiệm?
Câu 3: Nêu các đặc điểm của hệ điều hành Linux?
Câu 4: Cài đặt hệ điều hành Linux (phiên bản Cent OS 5) trên máy tính và thiếtlập các thông số cho máy chủ Linux này
Câu 5: Hãy cài các ứng dụng sau trên hệ điều hành Linux:
a Ứng dụng gõ tiếng Việt (xvnkb)
b Phần mềm nghe nhạc, xem phim (Mplayer)
c Phần mềm từ điển Anh-Việt ( Startdict)
d Ứng dụng Yahoo Messenger
Câu 6: Nếu có chọn lựa một hệ điều hành cho máy tính, anh (chị) sẽ chọn hệđiều hành nào? Giải thích tại sao?
Trang 20BÀI 2: HỆ THỐNG TẬP TIN
Sau khi học xong bài này, học viên hiểu được:
Cấu trúc tập tin trên hệ điều hành Linux
Các thao tác cơ bản trên tập tin hệ thống
Các thao tác trên tập tin và thư mục
Lưu trữ dữ liệu
2.1 TỔNG QUAN
Mỗi hệ điều hành có cách tổ chức lưu trữ dữ liệu riêng, như: FAT, NTFS ( Window).Hiện tại, hệ thống Linux sử dụng định dạng tập tin hệ thống là ext3 với những đặcđiểm sau:
• Kích thước tối đa của partition từ 2Tb đến 32Tb
Chiều dài tên tập tin đạt 256 ký tự Là cách tổ chức dữ liệu trên thiết bị lưu trữ
/
Trang 21mạng
thống
thống
Trang 222.3 CÁC THAO TÁC TRÊN TẬP TIN HỆ
THỐNG
2.3.1 Mount và umount
Được sử dụng khi gắn kết (mount) và tháo bỏ gắn kết (umount) đến các thiết bịngoại vi đến máy tính sử dụng hệ điều hành Linux Khi người dùng muốn sử dụng cácthiết bị ngoại vi ( CDROM, USB, HDD…), lệnh mount sẽ gắn kết các thiết bị này vàocác thư mục mà người dùng chỉ định hay mặc định của hệ điều hành và người dùng sẽtruy xuất dữ liệu chứa trong các thiết bị ngoại vi thông qua thư mục này
Cú pháp : #mount –t <device_name> <mount_point>
Một số tùy chọn:
-v : chế độ chi tiết
-w : mount hệ thống tập tin với quyền đọc và ghi
-r : mount hệ thống tập tin với quyền đọc
-t loai-fs : xác định hệ thống tập tin đang mount : ext2, ext3,
-a : mount tất cả hệ thống tập tin khai báo trong /etc/fstab
-o remount <fs> : chỉ định việc mount lại 1 filesystem nào đó.
• Umount (dùng khi ngắt các gắn kết trong thư mục)
Cú pháp : #umount <device_name> <mount_point>
Ví dụ: Loại bỏ tất cả các filesystem đang mount
#umount -a
Lưu ý: umount không loại bỏ những hệ thống tập tin đang sử dụng
Là vị trí thư mục trong cây thư mục.
Trang 232.3.2 Định dạng tập tin hệ thống
Để định dạng một hệ thống tập tin ta sử dụng các công cụ
#mkfs.ext2 : định dạng partition theo loại ext2
#mkfs.ext3 : định dạng partition theo loại ext3
Cú pháp: #mkfs –t <fstype> <filesystem>
Ví dụ: #mkfs –t ext2 /dev/hda1
2.3.3 Quản lý dung lượng
Để quản lý và theo dõi dung lượng đĩa ta có thể sử dụng nhiều cách khácnhau, thông thường ta dùng hai lệnh df và fdisk
Trang 242.3.5 Thao tác trên thư mục
Đường dẫn tương đối và tuyệt đối
Đường dẫn tương đối bắt đầu từ thư mục hiện hành
Đường dẫn tuyệt đối bắt đầu từ thư mục gốc (/)
Trang 25ls –x hiển thị trên nhiều cột.
ls –l hiển thị chi tiết các thông tin của tập tin
ls –a hiển thị tất cả các tập tin kể cả tập tin ẩn
• Lệnh rmdir: xóa thư mục rỗng.
Cú pháp: #rmdir [thư mục]
2.3.6 Các thao tác trên tập tin
• Lệnh cat: dùng hiển thị nội dung tập tin
Cú pháp : #cat <tên tập tin>
Lệnh cat còn dùng để tạo tập tin Ta có thể dùng dấu > hoặc >> (dấu > sẽ tạo
mới, dấu >> sẽ nối tiếp vào nội dung có sẵn) Nhấn CTRL-d để kết thúc.
• Lệnh more: xem nội dung tập tin theo từng trang
Cú pháp : #more <tên tập tin>
• Lệnh cp: sao chép tập tin
Cú pháp : #cp <tập tin nguồn> <tập tin đích>
• Lệnh mv: di chuyển và đổi tên tập tin.
Cú pháp : #mv <source> <destination>
• Lệnh rm: xóa tập tin, thư mục.
Cú pháp : #rm [option] <filename/directory>
Trang 26• Lệnh find: tìm kiếm tập tin thỏa mãn điều kiện
Cú pháp : #find [tùy chọn] [tên tập tin/thư mục]
Một số các chuỗi tìm kiếm :
-name <file> : tìm tập tin
-size n<bck> : tìm theo kích thước tập tin
-user uname : tìm các tập tin được sở hữu bởi uname
• Lệnh grep: tìm một chuỗi trong nội dung tập tin
Cú pháp : #grep [expression] [filename]
• Lệnh touch: tạo và thay đổi nội dung tập tin
Cú pháp : #touch <option> <filename>
• Lệnh dd: thay đổi định dạng và sao chép tập tin
Trang 27Cú pháp : #lệnh1 | lệnh2 | …
Lệnh gzip/gunzip: Nén và giải nén các tập tin.
Cú pháp : #gzip/gunzip [tùy chọn] [tên tập tin]
-c : Chuyển thông tin ra màn hình.
-d : Giải nén, -d tương đương gunzip.
-h : Hiển thị giúp đỡ.
Lệnh tar : Gom và bung những tập tin, thư mục.
Cú pháp : #tar [tùy chọn] [tập tin đích] [nguồn]
cvf : Gom tập tin/thư mục.
-xvf : Bung tập tin/thư mục.
Nguồn có thể là danh sách các tập tin và thư mục
Trang 28Người dùng có thể tương tác đến các tập tin, thư mục để làm các tác vụ cần thiết với các lệnh cơ bản (yêu cầu người dùng phải nắm được cấu trúc, chức năng của lệnh
và các tùy chọn của lệnh).
Trang 29CÂU HỎI ÔN TẬP
Câu 1: Hãy cho biết cấu trúc của hệ thống thư mục và chức năng của chúng trên hệđiều hành Linux ?
Câu 2: Dùng lệnh để thực hiện các yêu cầu sau :
a Liệt kê nội dung thư mục /etc
b Tạo thư mục MSSV ở /root/Desktop
c Tạo tập tin mang tên của sinh viên tại /root/Desktop/MSSV
d Nén thư mục MSSV và lưu tại Desktop với tên mssv.tar
e Sao chép mssv.tar vào thư mục /root/Desktop/MSSV
f Xóa thư mục /root/Desktop/MSSV
Trang 30BÀI 3: LỆNH CƠ BẢN
Bài này sẽ cung cấp một vài khái niệm về người dùng, nhóm người dùng, quản
lý tập tin, thư muc và phân quyền giúp cho người dùng có thể tương tác với hệ điều hành thực hiện những tác vụ cần thiết
3.1 MỘT SỐ KHÁI NIỆM
Users (Người dùng):
Để có thể sử dụng được máy tính Linux, người dùng phải được cấp tài khoản(account) đăng nhập vào máy Linux Thông tin về tài khoản bao gồm tên đăng nhập(username), mật khẩu đăng nhập (password), và các quyền truy xuất tập tin và thưmục mà người dùng có được dựa vào tài khoản đã được cấp
Group (Nhóm):
Các người dùng làm việc trên cùng một bộ phận hoặc đang làm việc chung trêncùng một dự án (project) có thể được đưa vào cùng một nhóm Đây là một cách đơngiản của việc tổ chức để quản lý người dùng
File (Tập tin):
Tất cả các thông tin trên Linux được lưu giữ trong các tập tin Các tập tin được tạo
ra bởi người dùng và người chủ tập tin có quyền truy xuất, tạo, sửa đổi, thiết lập kíchthước của tập tin và phân phối quyền để cho phép người dùng khác có thể truy xuấttập tin
Trang 31hợp với nó, kích thước tối đa và những người dùng được quyền truy xuất thư mụcnày, …
Path (Đường dẫn):
Đường dẫn là một chuỗi các thư mục và có thể kết thúc bằng tên của một tập tin
Các thư mục và tên tập tin được phân cách bởi ký tự /
Ví dụ : /dir1/dir2/file là một đường dẫn tuyệt đối tới file được chứa trong dir2, với dir2 được chứa trong dir1, và dir1 nằm trong thư mục gốc
Ví dụ khác: ~/homework là một đường dẫn tương đối, tính từ thư mục đăng nhập của người dùng, vào thư mục homework.
Permissions (Quyền):
Quyền là một đặc tính quan trọng của Linux Chúng tạo ra sự bảo mật bằng cáchgiới hạn các hành động mà người dùng có thể thực hiện đối với tập tin và thư mục.Các quyền đọc (read), ghi (write) và thực thi (execute) điều khiển việc truy xuất tớiviệc truy xuất tập tin của người tạo ra nó, nhóm và các người dùng khác Một ngườidùng sẽ không thể truy xuất tới tập tin của người dùng khác nếu không có đủ quyềntruy xuất
Process (Tiến trình):
Khi người dùng thực thi một lệnh, Linux tạo ra một tiến trình chứa các chỉ thị lệnh.Một tiến trình còn chứa các thông tin điều khiển như thông tin người dùng thực thilệnh, định danh duy nhất của tiến trình (PID – process id) Việc quản lý của tiến trìnhdựa trên PID này
Shell
Trong chế độ console, người dùng giao tiếp với máy thông qua shell Một shell làmột chương trình thường được dùng để bắt đầu một chương trình khác từ dấu nhắccủa shell Một shell được cấu hình bằng việc thiết lập các biến môi trường cho nó Khiđăng nhập vào Linux, một shell sẽ được tự động tạo ra, và các biến môi trường mặcnhiên (default) sẽ được thiết lập Ở đây, ta sẽ sử dụng shell BASH (Bourne AgainSHell), là shell thông dụng của hầu hết các hệ thống Linux
Trang 323.2 CÁC LỆNH HAY DÙNG
3.2.1 Gọi trợ giúp
Hầu hết các console Linux đều chứa một chương trình tiện ích nhỏ để in ra màn
hình thông tin về cách sử dụng lệnh khi một cờ "-h' hoặc '—help' được truyền vào cho chúng Ngoài ra, chúng ta có thể sử dụng lệnh man (manual) để tìm hiểu về một
lệnh
command –h Hiển thị thông tin trợ giúp ngắn gọn về lệnh.
command -–help Hiển thị thông tin trợ giúp ngắn gọn về lệnh.
man command Hiển thị trang trợ giúp đầy đủ của lệnh.
3.2.2 Liệt kê nội dung thư mục
Một trong những tác vụ cơ bản mà chúng ta có thể thực hiện là liệt kê các tập tin
nằm trong một thư mục với lệnh 'ls' Lệnh này cho phép kiểm tra nội dung của thư
mục và tìm kiếm tập tin mà chúng ta muốn làm việc Nếu các tập tin liệt kê tràn quámột màn hình, chúng ta có thể kết hợp với đường ống (pipe) để xuất kết quả của lệnh
'ls' đến một chương trình hiển thị văn bản như ‘less’ chẳng hạn.
ls Liệt kê nội dung của thư mục hiện hành.
ls –a Liệt kê tất cả tập tin, kể cả các tập tin có thuộc tính ẩn.
ls –l Hiển thị đầy đủ các thông tin (quyền truy cập, chủ, kích thước, …)
ls | less Hiển thị thông tin, nếu dài có thể dùng PgUp, PgDown duyệt trang Thoát bằng phím q.
3.2.3 Thay đổi thư mục hiện hành
Khi người dùng đăng nhập vào Linux thì được tự động đặt vào thư mục tiếp nhận
(home directory) Để chuyển tới thư mục khác, dùng lệnh 'cd' Lệnh 'cd' nhận đối số
là một đường dẫn tương đối hoặc tuyệt đối của thư mục hiện hành, hoặc một số cácđối số đặc biệt như dưới đây:
cd path Chuyển đến thư mục được chỉ định bởi path.
Trang 33cd ~ Chuyển về thư mục gốc của người dùng.
cd - Chuyển về thư mục trước.
cd Chuyển về thư mục cha của thư mục hiện hành.
3.2.4 Quản lý tập tin, thư mục
Cp Cho phép tạo ra một bản sao của một tập tin hoặc thư mục:
cp source_path destination_path
mkdir Cho phép tạo ra một thư mục mới (make directory), rỗng, tại vị tríđược chỉ định:
mkdir directoryname
mv Cho phép di chuyển (move) một tập tin từ thư mục này tới thư mục
khác, có thể thực hiện việc đổi tên tập tin:
Khi các tập tin được lưu trên nhiều thư mục, hoặc khi cần tìm kiếm một tập tin nào
đó thì sử dụng lệnh 'find' và 'locate' Lệnh 'find' bắt đầu từ thư mục được chỉ định và
sẽ tìm trong tất cả các thư mục con trong đó
Lệnh 'locate' tạo ra và duy trì một cơ sở dữ liệu về các tập tin trong hệ thống, và
nó đơn giản chỉ tìm trong cơ sở dữ liệu này xem có tập tin cần tìm Lệnh 'locate' thực
Trang 34hiện nhanh hơn lệnh 'find', nhưng cơ sở dữ liệu chỉ cập nhật một lần trong ngày nên
những tập tin mới được tạo ra có thể không được tìm thấy
find Tìm tập tin filename bắt đầu từ thư mục path: find path –name filename locate Tìm tập tin trong cơ sở dữ liệu của nó có tên là filename: locate filename
3.2.6 Làm việc với tập tin văn bản
cat Để xem nội dung của tập tin văn bản ngắn, dùng lệnh 'cat' để in nó ra màn
hình: cat filename
less Cho phép xem một tập tin dài bằng cách cuộn lên xuống bằng các phím mũi tên và các phím pageUp, pageDown Dùng phím q để thoát chế độ xem: less
filename
grep Một công cụ mạnh để tìm một chuỗi trong một tập tin văn bản Khi lệnh
'grep' tìm thấy chuỗi, nó sẽ in ra cả dòng đó lên màn hình: grep string filename
sort Sắp xếp các dòng trong tập tin theo thứ tự alphabet và in nội dung ra màn
hình: sort filename
3.2.7 Giải nén
bunzip2 Giải nén một tập tin bzip2 (*.bz2) Thường dùng cho các tập tin lớn:
bunzip2 filename.bz2
gunzip Giải nén một tập tin gzipped (*.gz): gunzip filename.gz
unzip Giải nén một tập tin PkZip hoặc WinZip (*.zip): unzip filename.zip
tar Nén và giải nén tar, tar.gz:
Ví dụ: tar –xvf filename.tar và tar –xvzf filename.tar.gz
3.2.8 Xem thông tin hệ thống
Các lệnh sau đây hiển thị các thông tin khác trên hệ thống của chúng ta
date In ngày giờ hệ thống
df –h In thông tin không gian đĩa được dùng
Trang 35free In thông tin bộ nhớ được dùng.
History Hiển thị các lệnh được thực hiện bởi tài khoản hiện tại.
Hostname In tên của máy cục bộ (host).
Pwd In đường dẫn đến thư mục làm việc hiện hành.
rwho -a Liệt kê tất cả người dùng đã đăng nhập vào network
uptime In thời gian kể từ lần reboot gần nhất
who Liệt kê tất cả người dùng đã đăng nhập vào máy.
whoami In tên người dùng hiện hành
3.2.9 Theo dõi tiến trình
ps Liệt kê các tiến trình đang kích hoạt bởi người dùng và PID của các tiến
command & Chạy command trong nền.
fg Đẩy một tiến trình nền hoặc bị dừng lên bề mặt trở lại.
bg Chuyển một tiến trình vào nền Có thể thực hiện tương tự với Ctrl-z.
kill pid Thúc đẩy tiến trình kết thúc Đầu tiên phải xác định pid của tiến trình cần hủy với lệnh ps.
killall -9 name Hủy tiến trình với name chỉ định.
nice program level Chạy program với cấp ưu tiên ngược level Cấp nice
càng cao, chương trình càng có mức ưu tiên thấp
Trang 36Tuy nhiên, một người dùng thực sự có thể có nhiều tên đăng nhập khác nhau Tàikhoản người sử dụng có thể hiểu là tất cả các tập tin, các tài nguyên, và các thông tinthuộc về người sử dụng đó Người dùng có toàn quyền trong Linux là người dùng
root, mặc nhiên thuộc về nhóm root Người dùng có quyền root ấn định một người dùng nào đó thuộc về nhóm root và có quyền tương đương với root.
Người dùng được quản lý thông qua tên người dùng (thực ra là quản lý thông quaUID) Việc thêm một người dùng mới chỉ có thể thực hiện được nếu đăng nhập với tưcách superuser Để tạo một người dùng mới, cần phải thêm thông tin về người dùng
đó vào trong cơ sở dữ liệu người dùng, và tạo một thư mục cá nhân cho riêng ngườidùng đó.Điều này rất cần thiết để thiết lập các biến môi trường phù hợp cho ngườidùng
3.3.1 Thông tin người dùng
Mỗi người dùng trên hệ thống được mô tả qua các thông tin sau:
- username: tên người dùng
- password: mật khẩu (nếu có), được mã hóa
- UID: số nhận dạng người dùng (user identify number)
- GID: số nhận dạng của nhóm (group identify number)
- comment: thông tin về tài khoản người dùng
- Thư mục chủ: thư mục chủ của tài khoản, nơi người dùng vào đầu tiên khi đăngnhập (home directory)
- Shell đăng nhập (chương trình chạy lúc bắt đầu phiên làm việc)
Trang 37Các thông tin trên được chứa trong tập tin /etc/passwd
Tài khoản superuser có các trường UID (User ID) và GID (Group ID) đều bằng 0
Tài khoản root là tài khoản superuser ("siêu người dùng", tương đương với
administrator trên window) trong hệ thống Linux Đây là người cài đặt thiết lập hệthống, sử dụng tài khoản này để đăng nhập hệ thống lần đầu tiên Vì lí do quản trị,trên một hệ thống có thể có nhiều tài khoản superuser
Tài khoản này có quyền làm mọi thứ trên hệ thống: khởi động hay dừng mộtchương trình bất kỳ, tạo và xóa một tập tin bất kỳ Vì vậy, tốt nhất chỉ nên đăng nhập
root khi thực sự cần thiết, và hãy đăng nhập vào hệ thống với tư cách là một người
sử dụng bình thường
3.3.2 Tạo người dùng mới
Để tạo người sử dụng mới từ dòng lệnh, superuser sử dụng lệnh useradd.
Cú pháp lệnh:
useradd [options] <username>
useradd -D [options]
Nếu không có tùy chọn -D, lệnh useradd sẽ tạo một tài khoản người dùng mới sử
dụng các giá trị được chỉ ra trên dòng lệnh và các giá trị mặc định của hệ thống Tàikhoản người dùng mới sẽ được nhập vào trong các tập tin hệ thống, thư mục cá nhân
Trang 38sẽ được tạo, hay các tập tin khởi tạo được sao chép, điều này tùy thuộc vào các tùychọn được đưa ra.
Các tùy chọn như sau:
-c, comment : soạn thảo trường thông tin về người dùng.
-d, home_dir : tạo thư mục đăng nhập cho người dùng.
-e, expire_date : thiết đặt thời gian (YYYY-MM-DD) tài khoản người dùng sẽ bị
hủy bỏ
-f, inactive_days : tùy chọn này xác định số ngày trước khi mật khẩu của người
dùng hết hiệu lực khi tài khoản bị hủy bỏ
-g, initial_group : tùy chọn này xác định tên hoặc số khởi tạo đăng nhập nhóm
người dùng Tên nhóm phải tồn tại, và số
của nhóm phải tham chiếu đến một nhóm tồn tại Số nhóm ngầm định là 1
-G, group : danh sách các nhóm phụ mà người dùng cũng là thành viên thuộc các
nhóm đó Mỗi nhóm sẽ được ngăn cách với nhóm khác bởi dấu ',', mặc định ngườidùng sẽ thuộc vào nhóm khởi tạo
-m : với tùy chọn này, thư mục cá nhân của người dùng sẽ được tạo nếu nó chưa
tồn tại
-M : không tạo thư mục người dùng.
-n : ngầm định khi thêm người dùng, một nhóm cùng tên với người dùng sẽ được
tạo Tùy chọn này sẽ loại bỏ sự ngầm định trên
-p, passwd : tạo mật khẩu đăng nhập cho người dùng.
-s, shell : thiết lập shell đăng nhập cho người dùng.
-u, uid : thiết đặt số nhận dạng người dùng, giá trị này phải là duy nhất.
Khi tùy chọn -D được sử dụng, lệnh useradd sẽ bỏ qua các giá trị ngầm định và
cập nhật các giá trị mới
Trang 39-b, default_home : thêm tên người dùng vào cuối thư mục cá nhân để tạo tên
thư mục cá nhân mới
-e, default_expire_date : thay đổi thời hạn hết giá trị của tài khoản người dùng -f, default_inactive : xác định thời điểm hết hiệu lực của mật khẩu đăng nhập
khi tài khoản người dùng bị xóa bỏ
-g, default_group : thay đổi số nhận dạng nhóm người dùng.
-s, default_shell : thay đổi shell đăng nhập.
Ngoài lệnh useradd, có thể tạo người dùng mới bằng cách soạn thảo tập tin /etc/ passwd
Ví dụ để tạo người sử dụng mới có tên là cyrus:
/etc/passwd Các giá trị UID và GID sẽ được lựa chọn tự động bởi useradd, thông
thường nó tăng giá trị UID và GID lên một so với người được thêm vào lần sau cùngtrước đó
Có thể tạo cho người sử dụng thư mục chủ khác với mặc định bằng lệnh:
#useradd cyrus –d /www/cyrus
Khi tạo một người sử dụng mới, hệ thống cũng đồng thời mặc định tạo ra một
nhóm mới trong tập tin /etc/group có tên giống như tên tài khoản của người sử
dụng Để tạo người sử dụng với tên nhóm mới hay tên nhóm tồn tại trong hệ thống,
sử dụng lệnh adduser với tùy chọn –g
Ví dụ:
Trang 40#useradd cyrus –g users
Nếu muốn tạo người sử dụng mới là thành viên của một số nhóm, sử dụng tùy
chọn –G Ví dụ:
useradd cyrus –G users1,users2
3.3.3 Tạo thư mục cá nhân cho người dùng mới
#mkdir /home/new
Sao chép các tập tin từ thư mục /etc/skel/ (đây là thư mục lưu trữ các tập tin
cần thiết cho người dùng) vào thư mục cá nhân vừa tạo
Thay đổi quyền sở hữu và các quyền truy nhập thư mục /home/new với các lệnh chown và chmod
#chown new /home/new
#chmod go=u,go-w /home/new
3.3.4 Thiết lập mật khẩu cho người dùng mới
Nên thiết lập mật khẩu cho người dùng ở bước cuối cùng, nếu không họ có thể vôtình đăng nhập trong khi đang sao chép các tập tin
3.3.5 Thay đổi thuộc tính người dùng
Trong Linux có rất nhiều lệnh cho phép thay đổi một số các thuộc tính của tàikhoản người dùng như:
chfn : thay đổi thông tin cá nhân của người dùng.
chsh : thay đổi shell đăng nhập.