Networks Business Online Việt Nam & International VH2

Bài giảng hệ điều hành unix và linux – Tài liệu text

Đăng ngày 04 October, 2022 bởi admin

Bài giảng hệ điều hành unix và linux

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.89 MB, 229 trang )

KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG & TT

Bài giảng
HỆ ĐIỀU HÀNH UNIX – LINUX

(lưu hành nội bộ)

THÁI NGUYÊN – 2009

2

BẢNG TỪ VIẾT TẮT 6
CHƯƠNG 1: TỔNG QUAN VỀ UNIX/ LINUX 7
1. Lịch sử phát triển của Unix 7
2. Lịch sử phát triển của Linux 9
2.1 Một số đặc điểm chính của Linux 11
2.2 Các thành phần chính của hệ điều hành Linux 14
CHƯƠNG 2: HỆ THỐNG FILE TRONG LINUX 21
1. Các kiểu file có trong Linux 21
2. Quy ước tên file trong Linux 22
3. Cấu trúc hệ thống file của Linux 23
4. Cấu trúc cây thư mục của hệ thống file trong Linux 27
5. Các file chuẩn vào /ra trên Linux 29
CHƯƠNG 3: THAO TÁC TRÊN HỆ THỐNG FILE CỦA UNIX 32
1. Quản lý quyền truy cập hệ thống file 32
2. Nhóm lệnh quản lý quyền thâm nhập file 35
2.1 Lệnh chmod 35
2.2 Lệnh chown 37
2.3 Lệnh chgrp 37
3. Các lệnh thao tác trên thư mục 39
3.1 Thay đổi thư mục làm việc hiện thời với lệnh cd 39
3.2 Xem nội dung thư mục với lệnh ls 39
3.3 Tạo thư mục với lệnh mkdir 40
3.4 Xóa thư mục với lệnh rmdir 40
3.5 Xem đường dẫn thư mục hiện thời với lệnh pwd 41
3.6 Lệnh đổi tên thư mục với lệnh mv 41
4. Các lệnh thao tác trên file 41
4.1 Tạo file với lệnh touch 41
4.2 Tạo file với lệnh cat 41
4.3 Xem nội dung các file lớn với lệnh more 42
4.4 Thêm số thứ tự của các dòng trong file với lệnh nl 44

4.5 Xem nội dung file với lệnh head 45
4.6 Xem nội dung file với lệnh tail 45
4.7 Sử dụng lệnh file để xác định kiểu file 46
4.8 Lệnh wc dùng để đếm số ký tự, số từ, hay số dòng trong một file 47
4.9 So sánh nội dung hai file sử dụng lệnh diff 47
4.10 Xóa file với lệnh rm 48
4.11 Sao chép tập tin với lệnh cp 48
4.12 Đổi tên file với lệnh mv 50
4.13 Lệnh uniq loại bỏ những dòng không quan trọng trong file 50
4.14 Sắp xếp nội dung file với lệnh sort 51
4.15 Tìm theo nội dung file bằng lệnh grep 53
4.16 Tìm theo các đặc tính của file với lệnh find 58
4.17 Nén và sao lưu các file 61
4.17.1 Sao lưu các file (lệnh tar) 61
4.17.2 Nén dữ liệu với gzip 63
4.17.3 Nén, giải nén và xem file với các lệnh compress, uncompress, zcat 65
4.18 Liên kết (link) tập tin 66

3
4.19 Xem thuộc tính về một file 67
4.20 Lệnh cắt file split 67
4.21 Lệnh mount và unmount 67
4.21.1 Lệnh mount 67
4.21.1 Lệnh umount 68
5. Các lệnh và tiện ích hệ thống 68
5.1 Các lệnh đăng nhập và thoát khỏi hệ thống 68
5.2 Lệnh thay đổi mật khẩu passwd 71
5.4 Lệnh date xem, thiết đặt ngày, giờ 73
5.5 Lệnh xem lịch cal 75
5.6 Xem thông tin hệ thống uname 76

5.7 Thay đổi nội dung dấu nhắc shell 77
5.8 Lệnh gọi ngôn ngữ tính toán số học 79
5.9 Tiện ích mc 81
5.10 Sử dụng trình soạn thảo VI 91
5.11 Sử dụng tài liệu giúp đỡ man 96
5.11 Sử dụng hỗ trợ apropos 97
CHƯƠNG 4: LẬP TRÌNH TRONG LINUX 98
1. LẬP TRÌNH SHELL 98
1.1 Khái niệm shell 98
1.2 Một số đặc điểm của Shell 98
1.3 Lập trình đường ống 100
1.4 Lập trình Shell Script 101
1.5 Điều khiển luồng 111
1.5.1 Biểu thức điều kiện if 112
1.5.2 Biểu thức lệnh rẽ nhánh case 115
1.5.3 Vòng lặp For 118
1.5.4 Vòng lặp While 121
1.5.5 Vòng lặp until 121
1.5.6 Thoát vòng lặp: break, continue, exit 123
1.5.7 Dịch chuyển tham số shift 124
1.6 Hàm 124
1.7 Mảng 126
1.8 Đệ quy 133
1.9 Lập trình hội thoại 134
1.10 Một số các lệnh thường dùng trong lập trình Shell 137
1.11 Một số ví dụ về Shell 139
1.12 Shell con 153
2. Lập trình C trên Linux 153
2.1 Trình biên dịch gcc 153
2.2 Công cụ GNU make 157

2.3 Sử dụng nhãn file (mô tả file – file descriptor) 158
2.4 Thư viện liên kết 163
2.5 Các công cụ cho thư viện 171
2.6 Biến môi trường và file cấu hình 174
2.7 Sử dụng gdb để gỡ lỗi 174
CHƯƠNG 5: QUẢN LÝ TÀI NGUYÊN VÀ TRUYỀN THÔNG TRONG
LINUX 175

1. Quản lý tiến trình 175

4
2. Các lệnh cơ bản trong quản lý tiến trình 177

2.1 Sử dụng lệnh ps trong quản lý tiến trình 177
2.2 Hủy một tiến trình sử dụng lệnh kill 179
2.3 Cho máy ngừng hoạt động một thời gian với lệnh sleep 180
2.4 Xem cây tiến trình với lệnh pstree 181
2.5 Lệnh thiết lập độ ưu tiên của tiến trình 182
2.5.1 Lệnh nice 182
2.5.2 Lệnh renice 182
2.6 Lệnh lsof liệt kê các files được mở bởi các tiến trình khác 182
2.7 Lệnh fg và lệnh bg 182
3. Quản trị hệ thống 185
3.1 Khởi động và đóng tắt hệ thống 185
3.2 Tìm hiểu về trình nạp Linux 185
3.3 Tìm hiểu GRUB, trình nạp Linux. 187
3.4 Quá trình khởi động 187
4. Quản trị người dùng 188
4.1 Superuser (root) 188
4.2 Tài khoản người dùng 189

4.3 Thêm người dùng với lệnh useradd 191
4.4 Lệnh usermod thay đổi thông tin của người dùng 192
4.5 Hủy user 193
4.6 Tạo nhóm người dùng groupadd 193
4.7 Xác định người dùng đang đăng nhập (lệnh who) 194
4.8 Để xác định thông tin người dùng với lệnh id 195
4.10 Hiển thị danh sách đăng nhập sử dụng lệnh last 196
4.11 Lệnh which hiển thị đường dẫn đầy đủ của chương trình 196
5. Quản trị tài nguyên 196
5.1 Quản lý tài nguyên với lệnh quota 196
5.2 Lệnh quản lý lưu trữ 198
5.2.1 Xem dung lượng đĩa sử dụng với lệnh du 198
5.2.2 Kiểm tra dung lượng đĩa trống với lệnh df 199
5.2.3 Lệnh free hiển thị tình trạng sử dụng bộ nhớ 200
6 Truyền thông trong Linux 201
6.1. Lệnh đặt tên máy 203
6.2. Lệnh ifconfig 203
6.3 Lệnh netstat 204
6.4 Lệnh write 205
6.5 Lệnh mail 206
6.6 Lệnh talk 209
TÀI LIỆU THAM KHẢO 210
PHỤ LỤC 211
1. Giới thiệu một số phiên bản hệ điều hành Linux thông dụng hiện nay và
cách cài đặt 211

1.1 Hướng dẫn cài đặt hệ điều hành Redhat Linux 7.1 211
1.2 Hướng dẫn sử dụng hệ điều hành Ubuntu và các phiên bản của nó 228
2. Cài đặt WEBMIN 228
3. Cài đặt WEBSERVER 228

4. Cài đặt FILE SERVER 228

5

6
BẢNG TỪ VIẾT TẮT
Hệ điều hành HĐH
Multiplexed Information and Computing Service
Multics

Berkley Software Distribution BSD
Midnight Commander mc

7
CHƯƠNG 1: TỔNG QUAN VỀ UNIX/ LINUX
1. Lịch sử phát triển của 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 tạo ra một hệ điều hành mới được đặt tên là Multics.
Đế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. Thậm trí 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 Ritchie, 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ĐH làm nhiều việc một lúc, họ quyết định phát triển
một HĐH đơn giản chỉ làm tốt một việc là chạy chương trình (run program). HĐH
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 vớ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ĐH đơn giản này tiếp tục phát
triển theo mô hình ban đầu và đặt ra một hệ thống tập tin mà sau này được phát
triển thành hệ thống tập tin của UNIX.
Năm 1973, Riche và Thompson viết lại nhân của hệ điều hành UNIX trên
ngôn ngữ C, và hệ điều hành đã trở nên dễ dàng cài đặt tới các loại máy tính khác
nhau; tính ch
ất như thế được gọi là tính khả chuyển của UNIX. Trước đó, khoảng

8
năm 1971, hệ điều hành được thể hiện trên ngôn ngữ B (mà dựa trên ngôn ngữ B,
Ritche đã phát triển thành ngôn ngữ C).
Khoảng năm 1977 bản quyền của Unix được giải phóng và HĐH Unix trở
thành một sản phẩm thương mại.
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 (SVR3.2) và Release 4.2 (SVR4.2). Phiên bản
SYR 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 Berkeley (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ừ năm 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 Systems 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)
Tóm lại, vấn đề chuẩn hóa UNIX vẫn còn rất xa kết quả cuối 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ĐH UNIX nói riêng.

9

Hình 1.1 Các phiên bản của Unix
Các nhóm nhà cung cấp khác nhau về UNIX đang hoạt động trong thời gian
hiện nay được kể đến như sau:
+ Unix International (viết tắt là UI). UI là một tổ chức gồm các nhà cung cấp
thực hiện việc chuyển nhượng hệ thống UNIX-5 và cung cấp bản AT&T
theo các nhu cầu và thông báo phát hành mới, chẳng hạn như điều chỉnh bản
quyền. Giao diện đồ họa người dùng là Open Look.
+ Open Software Foundation (OSF). OSF đượ
c hỗ trợ bởi IBM, DEC, HP
theo hướng phát triển một phiên bản của Unix nhằm tranh đua với hệ thống
UNIX-5 phiên bản 4. Phiên bản này có tên là OSF/1 với giao diện đồ họa

người dùng được gọi là MOTIF.
+ Free SoftWare Foundation (FSF): một cộng đồng do Richard Stallman khởi
xướng năm 1984 chủ trương phát hành các phần mềm sử dụng tự do, trên cơ
sở một hệ điều hành thuộc loại UNIX.
2. Lịch sử phát triển của Linux
Linux là một HĐH 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 hoặc các thế hệ sau đó, hay các
bộ vi xử lý trung tâm tương thích như AMD, Cyrix. Linux ngày nay còn có thể chạy
trên các máy Macintosh hoặc SUN Sparc. 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

10
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.
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ề chương trình của mình.
1/1992, Linus cho ra version 0.12 với shell và C compiler, Linus đặt tên
HĐH 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, đó 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.
Hiệ
n nay, Linux là một hệ điều hành giống Unix đầy đủ và độc lập. Nó có

thể chạy X-Window, TCP/IP, Emacs, Web, thư điện tử và các phần mềm khác. Hầu
hết các phần mềm miễn phí và thương mại đều được chuyển lên Linux. Rất nhiều
các nhà phát triển phần mềm bắt đầu chuyển sang viết trên Linux. Người ta thực
hiện các phép đo benchmarks trên Linux và thấy rằng chúng thực hiện nhanh hơn
khi thực hiện trên các máy trạ
m của Sun Microystem và Compaq, thậm chí nhiều
khi còn nhanh hơn cả trên Windows 98 và WindowNT. Thật khó có thể hình dung
được hệ điều hành “Unix” tí hon này phát triển nhanh thế nào!
Bây giờ, sau khi đã trải qua 1 thời gian rất dài phát triển và hoàn thiện bởi
cộng đồng thế giới, Linux càng ngày càng trở nên mạnh mẽ, ổn định và độ tin cậy
cao, và được chọn để sử dụng trong các cơ quan chính phủ. Các nước như Trung
Quốc, Nhật Bản, Đức và một số các nướ
c châu Âu đều cũng đã có kế họach phát
triển riêng Linux cho đất nước của họ. Ở Việt Nam trong những năm gần đây đã có
nhiều nhóm nghiên cứu và phát triển Linux sử dụng tiếng Việt là ngôn ngữ chính.
Trong giáo trình này Linux được sử dụng như một ví dụ cho việc tìm hiểu kỹ
hơn về hệ điều hành Unix.

11
Vấn đề phân phối và giấy phép Linux
Về lý thuyết, mọi người có thể khởi tạo một hệ thống Linux bằng cách tiếp
cận bản mới nhất các thành phần cần thiết từ các site ftp và biên dịch chúng. Trong
thời kỳ đầu tiên, người dùng Linux phải tiến hành toàn bộ các thao tác này và vì vậy
công việc là khá vất vả. Tuy nhiên, do có sự tham gia đông đảo của các cá nhân và
nhóm phát triển Linux, đã tiến hành thực hiện nhiều giải pháp nh
ằm làm cho công
việc khởi tạo hệ thống đỡ vất vả. Một trong những giải pháp điển hình nhất là cung
cấp tập các gói chương trình đã tiền dịch, chuẩn hóa.
Những tập hợp như vậy hay những bản phân phối là lớn hơn nhiều so với hệ
thống Linux cơ sở. Chúng thường bao gồm các tiện ích bổ sung cho khởi tạo hệ

thống, các thư viện qu
ản lý, cũng như nhiều gói đã được tiền dịch, sẵn sàng khởi tạo
của nhiều bộ công cụ UNIX dùng chung, chẳng hạn như phục vụ tin, trình duyệt
web, công cụ xử lý, soạn thảo văn bản và thậm chí các trò chơi.
Cách thức phân phối ban đầu rất đơn giản song ngày càng được nâng cấp và
hoàn thiện bằng phương tiện quản lý gói tiên tiến. Các bản phân phối ngày nay bao
gồm các cơ sở d
ữ liệu tiến hóa gói, cho phép các gói dễ dàng được khởi tạo, nâng
cấp và loại bỏ.
Nhà phân phối đầu tiên thực hiện theo phương châm này là Slakware, và
chính họ là những chuyển biến mạnh mẽ trong cộng đồng Linux đối với công việc
quản lý gói khởi tạo Linux.
Tiện ích quản lý gói RPM (RedHat Package Manager) của công ty RedHat là
một trong những phương tiện điển hình.
Nhân Linux là phần mềm tự do được phân phối theo Giấy phép sở hữu công
cộ
ng phần mềm GNU GPL.
2.1 Một số đặc điểm chính của Linux
Đa nền
Linux ban đầu được xefdm là bản sao của Unix và vận hành trên các máy
tính cá nhân được trang bị bộ xử lý 386, 486 hoặc các bộ xử lý cấp cao hơn. Mặc dù
ban đầu nó được phát triển cho các cấu trúc x86 nhưng hiện nay nó có thể vận hành
trên các nền khác nhau như Alpha, Sparc, Dec, Sun, Power PC và một số nền 68000

12
như Atari, Amiga Ngoài ra Linux còn chạy trên một số máy MIPS và các máy tính
cá nhân mạnh.
Đa chương trình
Một thời điểm một người sử dụng có thể thực hiện đồng thời nhiều tác vụ.
Với hệ điều hành đơn chương trình như MS-DOS một lệnh thực hiện sẽ chiếm toàn

bộ thời gian CPU xử lý, ta chỉ có thể thực hiện lệnh kế khi lệnh trước đó
đã được
thực hiện xong. Còn trong hệ điều hành UNIX ta có thể đặt lệnh chạy ở chế độ nền
(background) đồng thời khi đó có thể thực hiện các lệnh kế.
Nhiều người sử dụng
Nhiều người sử dụng có thể sử dụng máy tính có cài UNIX tại một thời
điểm.
Độc lập phần cứng
Vì hệ điều hành UNIX được viết bằng ngôn ngữ cấp cao cho nên nó rất dễ
cài đặt trên các cấu hình phần cứng khác. Hơn nữa với cách tổ chức các thiết bị là
các tập tin đặc biệt nên việc thêm vào hay loại bỏ các thiết bị rất dễ dàng.
Dùng chung thiết bị
Vì Unix là môi trường nhiều người sử dụng do đó các thiết bị ngoại vi như
máy in,v.v có thể được dùng chung bởi nhiều người sử dụng.
Tính ổn
định
Linux có tính ổn định cao, đây là một trong những ưu điểm của Linux so với
các hệ điều hành khác. Tính ổn định ở đây có nghĩa là nó ít bị lỗi khi sử dụng so với
hầu hết các hệ điều hành khác. Người sử dụng Linux sẽ không phải lo lắng đến
chuyện máy tính của mình bị hiện tượng “treo cứng” khi đang sử dụng nữa. Thông
thường lý do để
ta bắt buộc phải khởi động lại hệ thống là do mất điện, nâng cấp
phần cứng hoặc phần mểm.
Tính bảo mật
Khi làm việc trên Linux người dùng có thể an tâm hơn về tính bảo mật của
hệ điều hành. Linux là hệ điều hành đa nhiệm, đa người dùng, điều này có nghĩa là
có thể có nhiều người dùng vào phiên làm việc của mình trên cùng một máy tại
cùng một thời điểm. Linux cung cấp các mức bảo mật khác nhau cho người sử

13

dụng. Mỗi người sử dụng chỉ làm việc trên một không gian tài nguyên riêng, chỉ có
người quản trị hệ thống mới có quyền thay đổi trong máy.
Tính hoàn chỉnh
Bản thân Linux đã kèm theo các trình tiện ích cần thiết. Tất cả các trình tiện
ích mà ta mong đợi đều có sẵn hoặc ở một dạng tương đương rất giống. Trên Linux,
các trình biên dịch như C, C++, …, đều được chuẩn hoá.
Tính tương thích
Linux tương thích hầu nh
ư hoàn toàn với hầu hết các chuẩn Unix như IEEE
POSIX.1, UNIX System V và BSD Unix. Trên Linux ta cũng có thể tìm thấy các
trình giả lập DOS và Windows cho phép ta chạy các ứng dụng quen thuộc trên DOS
và Windows. Linux cũng hỗ trợ hầu hết các phần cứng PC như đã nói phía trên.
Hệ điều hành 32-bit đầy đủ
Ngay từ đầu Linux đã là hệ điều hành 32 bit đầy đủ. Điều đó có nghĩa là ta
không còn phải lo về giới hạn bộ nhớ
, các trình điều khiển EMM hay các bộ nhớ
mở rộng,… khi sử dụng Linux.
Linux hỗ trợ tốt cho tính toán song song và máy tính cụm (PC-cluster) là một
hướng nghiên cứu triển khai ứng dụng nhiều triển vọng hiện nay.
Linux có giao diện đồ hoạ (GUI):
Thừa hưởng từ hệ thống X-Window. Linux hỗ trợ nhiều giao thức mạng, bắt
nguồn và phát triển từ dòng BSD. Thêm vào đó, Linux còn hỗ trợ tính toán thời
gian thực
Dễ c
ấu hình
Ta không còn phải bận tâm về giới hạn 640K và tiến hành tối ưu hoá bộ nhớ
mỗi lần cài đặt một trình điều khiển mới. Linux cho ta toàn quyền điều khiển về
cách làm việc của hệ thống.
Như vậy, qua phần giới thiệu ban đầu này ta có thể thấy rằng Linux là một hệ
Unix đủ mạnh. Nó có thể được ứng dụng dễ dàng. Ngoài ra, việ

c sử dụng công cộng
rộng rãi đang làm đà để Linux phát triển nhanh. Các quy trình thiết lập cho phép cài
đặt trực tiếp hệ thống đã làm nó trở nên ngày càng phổ biến đối với những người sử
dụng.

14
Tuy nhiên cũng tồn tại một số khó khăn làm cho Linux chưa thực sự trở
thành một hệ điều hành phổ dụng, dưới đây là một số khó khăn điển hình:
+ Tuy đã có công cụ hỗ trợ cài đặt, tuy nhiên, việc cài đặt Linux còn tương đối
phức tạp và khó khăn. Khả năng tương thích của Linux với một số loại thiết
bị phần cứ
ng còn thấp do chưa có các trình điều khiển cho nhiều thiết bị,
+ Phần mềm ứng dụng chạy trên nền Linux tuy đã phong phú song so với một
số hệ điều hành khác, đặc biệt là khi so sánh với MS Windows, thì vẫn còn
có khoảng cách.
Với sự hỗ trợ của nhiều công ty tin học hàng đầu thế giới (IBM, SUN, HP )
và sự tham gia phát triển của hàng vạn chuyên gia trên toàn thế giới thuộc cộng
đồng Linux, các khó khăn củ
a Linux chắc chắn sẽ nhanh chóng được khắc phục.
Chính vì lẽ đó đã hình thành một số nhà cung cấp Linux trên thế giới. Bảng
dưới đây là tên của một số nhà cung cấp Linux có tiếng nhất và địa chỉ website của
họ.
Đáng chú ý nhất là Red Hat Linux (tại Mỹ) và Red Flag Linux (tại Trung
Quốc). Red Hat được coi là lâu đời và tin cậy, còn Red Flag là một công ty Linux
của Trung quốc, có quan hệ với cộng đồng Linux Việt nam và chúng ta có thể học
hỏi một cách trực tiếp kinh nghiệm cho quá trình đưa Linux vào Việt nam.
Tên công ty Địa chỉ website
Caldera OpenLinux www.caldera.com
Corel Linux www.corel.com
Debian GNU/Linux www.debian.com

Linux Mandrake www.mandrake.com
Red Hat Linux www.redhat.com
Red Flag Linux www.redflag-linux.com
Slackware Linux www.slackware.com
SuSE Linux www.suse.com
TurboLinux www.turbolinux.com
www.ubuntu.com
2.2 Các thành phần chính của hệ điều hành Linux
– Kernel ( Nhân hệ điều hành).

15
– Các bộ điều khiển thiết bị.
– Lệnh và tiện ích.
– Shell.
– Windows & Graphic User Interface.

Hình1.2 Các thành phần chính của HĐH Unix

Kernel
Là thành phần chủ yếu hay trái tim của hệ điều hành. Nó nắm nhiệm vụ điều
khiển giao dịch giữa chương trình người sử dụng với các thiết bị phần cứng, xếp
lịch các tiến trình để có thể thực hiện đa nhiệm, và nhiều tác vụ khác của hệ thống,
và một tập các trình đơn nằm trong bộ nh
ớ, mọi tiến trình đều gọi chúng. Nhân hệ
điều hành chịu trách nhiệm duy trì các đối tượng trừu tượng quan trọng của hệ điều
hành, bao gồm bộ nhớ ảo và quá trình. Các mô đun chương trình trong nhân được
đặc quyền trong hệ thống, bao gồm đặc quyền thường trực ở bộ nhớ trong.
Nhân (còn được gọi là hệ lõi) của Linux, là một bộ các mô đun chương trình
có vai trò điều khiển các thành ph
ần của máy tính, phân phối các tài nguyên cho
người dùng (các quá trình người dùng). Nhân chính là cầu nối giữa chương trình
ứng dụng với phần cứng. Người dùng sử dụng bàn phím gõ nội dung yêu cầu của
mình và yêu cầu đó được nhân gửi tới shell, Shell phân tích lệnh và gọi các chương
trình tương ứng với lệnh để thực hiện.

16
Một trong những chức năng quan trọng nhất của nhân là giải quyết bài toán
lập lịch, tức là hệ thống cần phân chia CPU cho nhiều quá trình hiện thời cùng tồn
tại. Đối với Linux, số lượng quá trình có thể lên tới con số hàng nghìn. Với số
lượng quá trình đồng thời nhiều như vậy, các thuật toán lập lịch cần phải đủ hiệu
quả: Linux thường lập lịch theo chế
độ Round Robin (RR) thực hiện việc luân
chuyển CPU theo lượng tử thời gian.
Thành phần quan trọng thứ hai trong nhân là hệ thống các môđun chương
trình (được gọi là lời gọi hệ thống) làm việc với hệ thống file. Linux có hai cách
thức làm việc với các file: làm việc theo byte (kí tự) và làm việc theo khối. Một đặc

điểm đáng chú ý là file trong Linux có thể được nhiều người cùng truy nhập tới nên
các lời gọi hệ thống làm việ
c với file cần đảm bảo việc file được truy nhập theo
quyền và được chia sẻ cho người dùng.
Các bộ điều khiển thiết bị
UNIX thể hiện các thiết bị vật lý như các tập tin đặc biệt. Một tập tin đặc biệt
sẽ có một điểm vào trong thư mục và có một tên tập tin. Do đó Unix cho phép
người sử dụng định nghĩa tên thiết bị.
Các thiế
t bị được chia làm hai loại: ký tự và khối.
– Thiết bị ký tự đọc và ghi dòng các ký tự (ví dụ các thiết bị đầu cuối).
– Thiết bị khối đọc và ghi dữ liệu trong các khối có kích thước cố định (ví dụ ổ
đĩa).
Thiết bị có thể đổi tên như đổi tên tập tin. Thư mục chứa các bộ điều khiển
thiết bị là /dev.
Lệnh và tiệ
n ích
Tiện ích hệ thống là các chương trình thực thi các nhiệm vụ quản lý chuyên
biệt. Một số tiện ích hệ thống được gọi ra chỉ một lần để khởi động và cấu hình hệ
thống, một số tiện ích khác, theo thuật ngữ UNIX được gọi là trình chạy ngầm
(daemon), có thể chạy một cách thường xuyên (thường theo chu kỳ), điều khiển các
bài toán như hưởng ứng các kết nố
i mạng mới đến, tiếp nhận yêu cầu logon, hoặc
cập nhật các file log.

17
Tiện ích (hay lệnh) có sẵn trong hệ điều hành (dưới đây tiện ích được coi là
lệnh thường trực). Nội dung chính yếu của tài liệu này giới thiệu chi tiết về một số
lệnh thông dụng nhất của Linux.
Các lệnh và tiện ích của Unix rất đa dạng.

– Một lệnh UNIX có dạng: $lệnh [các chọn lựa] [các đối số] lệnh thường là
chữ nhỏ.
– Unix phân biệt chữ lớn, nhỏ. Ví dụ: $ls -c /dev
Ta có thể chia lệnh thành các nhóm sau:
Các lệnh khởi tạo:

exit thoát khỏi hệ thống (Bourne-Shell)
logout thoát khỏi hệ thống C-Shell
id chỉ danh của người sử dụng
logname tên người sử dụng login
man giúp đỡ
newgrp chuyển người sử dụng sang một nhóm mới
psswd thay đổi password của người sử dụng
set xác định các biến môi trường
tty đặt các thông số terminal
uname tên của hệ thống (host)
who cho biết những ai đang thâm nhập hệ th
ống
Trình báo màn hình:

echo hiển thị dòng ký tự hay biến
setcolor đặt màu nền và chữ của màn hình
Desktop:

bc tính biểu thức số học
cal máy tính cá nhân
date hiển thị và đặt ngày
mail gửi – nhận thư tín điện tử
mesg cấm/cho phép hiển thị thông báo trên màn hình(bởi
write/hello)

spell kiểm tra lỗi chính tả

18
vi soạn thảo văn bản
write/hello cho phép gửi dòng thông báo đến những người sử
dụng trong hệ thống.
Thư mục:

cd đổi thư mục
copy sao chép 2 thư mục
mkdir tạo thư mục
rmdir loại bỏ thư mục
pwd trình bày thư mục hiện hành
Tập tin:

cas/more trình bày nội dung tập tin
cp sao chép một hay nhiều tập tin
find tìm vị trí của tập tin
grep tìm vị trí của chuỗi ký tự trong tập tin
ls, l, lf, lc trình bày tên và thuộc tính của các tập tin trong
thư mục
mv chuyển/ đổi tên một tập tin
sort sắp thứ tự nội dung tập tin
wc đếm số từ trong tập tin
Quản lý tiến trình:

kill hủy bỏ một quá trình
ps trình bày tình trạng của các quá trình
sleep ngưng hoạt động một thời gian
Kiểm soát chủ quyền:

chgrp chuyển chủ quyền tập tin, thư mục từ một nhóm sang
một nhóm khác
chmod thay đổi quyền sở hữu của tập tin hay thư mục
chown thay đổi người sở hữu tập tin hay thư mục
Kiểm soát in:

cancel ngưng in
lp in tài liệu ra máy in

19
lpstat trạng thái của hàng chờ in
Shell
Là bộ xử lý lệnh của người sử dụng hay nó đơn giản chỉ là một chương trình
cho phép hệ thống hiểu các lệnh của người dùng.
Chức năng chính của Shell là:
– Xử lý tương tác: Khi Shell được sử dụng một cách tương tác, hệ thống đợi
người dùng gõ vào một lệnh tại dấu nhắc lệnh. Lệnh có thể bao gồm các ký
hiệu đặc biệt cho phép ta viết tắt các tên file ho
ặc tái định hướng nguồn vào
và nguồn ra.
– Môi trường Lập trình: Các shell cung cấp một bộ các lệnh đặc biệt (có sẵn),
cho phép ta tạo ra các chương trình có tên Shell Script. Các Shell Script rất
hữu ích khi sử dụng cho việc thực thi một chuỗi các lệnh riêng biệt giống
như thực thi các file BATCH trong MS-Dos. Các script cũng có thể thực thi
các lệnh lặp lại nhiều lần (trong vòng lặp) hoặc có điều kiện ( if-else) giống
như trong nhiều ngôn ngữ lập trình cao cấp khác.
Hiện nay người ta sử dụng ba loại shell, tùy theo loại mà có cú pháp khác
nhau:
– Bourne-Shell : là shell cơ bản nhất, nhanh, hiệu quả, nhưng ít lệnh.

– C-Shell: là shell sử dụng cú pháp giống như C và nó thuận tiện hơn cho
người sử dụng tương tác Bourne-Shell, nó giống như Bourne-Shell nhưng
cung cấp thêm các cấu trúc điều khiển, history, bí danh.
– Korn-Shell: Kết hợp cả Bourne-Shell và C-Shell.
Mỗi người dùng khi đăng nhập hệ th
ống thì thường có một chương trình mặc
định khởi động cùng, có thể nhận biết dạng Shell ta đang sử dụng là gì thông qua
file /etc/passwd.
Tên chương trình Shell của ta là
/bin/sh Bourne – Shell
/bin/rsh Bourne – Shell
/bin/jsh Bourne – Shell
/bin/ksh Korn-Shell
/usr/dt/bin/dtksh Korn-Shell Desktop, một phiên bản chỉ dùng cho Solaris

20
/bin/rksh Korn-Shell
/bin/csh C Shell

Windows & Graphic User Interface:
Giao tiếp đồ hoạ và cửa sổ là một khả năng rất mạnh của hệ điều hành Linux,
nó cho phép hệ điều hành giao tiếp thân thiện hơn với người sử dụng.

Hình 1.3 Giao diện Gnome của Linux

Tóm lại: Đứng về phía người sử dụng ta có thể hình dung hệ điều hành Linux như
sau:
Người sử dụng – lệnh Linux – biên dịch Shell – Kernel – Máy tính (phần cứng).

21
CHƯƠNG 2: HỆ THỐNG FILE TRONG LINUX
1. Các kiểu file có trong Linux
Có rất nhiều file khác nhau trong Linux, nhưng bao giờ cũng tồn tại một số
kiểu file cần thiết cho hệ điều hành và người dùng, dưới đây giới thiệu lại một số
các kiểu file cơ bản.
– File người dùng (user data file): là các file tạo ra do hoạt động của người
dùng khi kích hoạt các chương trình ứng dụng tương ứng. Ví dụ như các file
thuần văn bản, các file cơ sở dữ li
ệu hay các file bảng tính.
– File hệ thống (system data file): là các file lưu trữ thông tin của hệ thống
như: cấu hình cho khởi động, tài khoản của người dùng, thông tin thiết bị
thường được cất trong các tệp dạng văn bản để người dùng có thể can thiệp,
sửa đổi theo ý mình.
– File thực hiện hay thực thi (executable file): là các file chứa mã lệnh hay
chỉ thị cho máy tính thực hiện. File thực hiện lưu trữ dướ
i dạng mã máy mà
ta khó có thể tìm hiểu được ý nghĩa của nó, nhưng tồn tại một số công cụ để
“hiểu” được các file đó. Khi dùng trình ứng dụng mc, file thực hiện được bắt
đầu bởi dấu (*) và thường có màu xanh lục.
– Thư mục hay còn gọi là file bao hàm (directory): là file bao hàm các file
khác và có cấu tạo hoàn toàn tương tự như file thông thường khác nên có thể
gọi là file. Trong mc, file bao hàm thường có màu trắng và bắt đầu bằng dấu
ngã (~) hoặc dấu chia (/). Ví dụ: /, /home, /bin, /usr, /usr/man, /dev
– File thiết bị (device file): là file mô tả thiết bị, dùng như là định danh để chỉ
ra thiết bị cần thao tác. Theo quy ước, file thiết bị được lưu trữ trong thư mục
/dev. Các file thiết bị hay gặp trong thư mục này là tty (teletype – thiết bị
truyền thông), ttyS (teletype serial – thiết bị truyền thông nối tiếp), fd0, fd1,
(floppy disk- thiết bị ổ đĩa mềm), hda1, hda2, hdb1, hdb2, (hardisk –
thiết bị ổ cứng theo chuẩn IDE; a, b, đ

ánh số ổ đĩa vật lý; 1, 2, 3 đánh số
ổ logic). Trong mc, file thiết bị có màu tím và bắt đầu bằng dấu cộng (+).
– File liên kết (linked file): là những file chứa tham chiếu đến các file khác
trong hệ thống tệp tin của Linux. Tham chiếu này cho phép người dùng tìm

22
nhanh tới file thay vì tới vị trí nguyên thủy của nó. Hơn nữa, người ta có thể
gắn vào đó các thông tin phụ trợ làm cho file này có tính năng trội hơn so với
tính năng nguyên thủy của nó. Ta thấy loại file này giống như khái niệm
shortcut trong MS-Windows98.
Không giống một số hệ điều hành khác (như MS-DOS chẳng hạn), Linux
quản lý thời gian của tệp tin qua các thông số thời gian truy nhập (accesed time),
thời gian kiến tạo (created time) và thời gian sửa đổi (modified time).
2. Quy ước tên file trong Linux
Một đối tượng điển hình trong các hệ điều hành đó là file. File là một tập hợp
dữ liệu có tổ chức được hệ điều hành quản lý theo yêu cầu của người dùng. Cách tổ
chức dữ liệu trong file thuộc về chủ của nó là người đã tạo ra file. File có thể là một
văn bản (trường hợp đặc biệt là chương trình nguồn trên C, PASCAL, shell script
), một chương trình ngôn ngữ máy, một tập hợp dữ liệu
Hệ điều hành quản lý file theo tên gọi của file (tên file) và một số thuộc tính
liên quan đến file. Trước khi giới thiệu một số nội dung liên quan đến tên file và tên
thư mục, chúng ta giới thiệu sơ bộ về khái niệm thư mục.
Để làm việc được với các file, hệ điều hành không chỉ quản lý nội dung file
mà còn phải quản lý các thông tin liên quan đến các file. Thư mục (directory) là
đối
tượng được dùng để chứa thông tin về các file, hay nói theo một cách khác, thư mục
chứa các file. Các thư mục cũng được hệ điều hành quản lý vì vậy, thư mục cũng
được coi là file song trong một số trường hợp để phân biệt với “file” thư mục, chúng
ta dùng thuật ngữ file thông thường. Khác với file thông thường, hệ điều hành lại
quan tâm đến nội dung của thư mục.

Tên file trong Linux có thể dài t
ới 256 ký tự, bao gồm các chữ cái, chữ số,
dấu gạch nối, gạch chân, dấu chấm. Tên thư mục/file trong Linux có thể có nhiều
hơn một dấu chấm, ví dụ: This_is.a.VERY_long.filename. Nếu trong tên file có dấu
chấm “.” thì xâu con của tên file từ dấu chấm cuối cùng được gọi là phần mở rộng
của tên file (hoặc file). Ví dụ, tên file trên đây có phần mở rộng là .filename.
Chúng ta nên lưu ý rằng, không phải ký tự nào c
ũng có nghĩa. Nếu có hai file
chỉ khác nhau ở ký tự cuối cùng, thì đối với Linux, đó là hai file có thể trùng tên.
Bởi lẽ, Linux chỉ lấy 32 hay 64 ký tự đầu tiên trong tên file mà thôi (tùy theo phiên

23
bản Linux), phần tên file còn lại dành cho chủ của file, Linux theo dõi thông tin,
nhưng thường không xem các ký tự đứng sau ký tự thứ 33 hay 65 là quan trọng đối
với nó.
Xin nhắc lại lưu ý về phân biệt chữ hoa và chữ thường đối với tên thư
mục/file, ví dụ hai file FILENAME.tar.gz và filename.tar.gz là hai file khác nhau.
Nếu trong tên thư mục/file có chứa khoảng trống, sẽ phải đặt tên thư mục/file
vào trong cặp dấu nháy kép để sử dụng thư mục/file đó. Ví dụ, để tạo thư mục có
tên là “My document” chẳng hạn, hãy đánh dòng lệnh sau:
# mkdir “My document”
Một số ký tự sau không được sử dụng trong tên thư mục/file: !, *, $, &, #
Khi sử dụng chương trình mc, việc hiển thị tên file sẽ bổ sung một kí tự theo
nghĩa: dấu “*” cho file khả thi trong Linux, dấu “~” cho file sao lưu, dấu “.” cho file
ẩn, dấu “@” cho file liên kết
Tập hợp tất cả các file có trong hệ điều hành đượ
c gọi là hệ thống file là một
hệ thống thống nhất. Bởi chính từ cách thức sử dụng thư mục, hệ thống file được tổ
chức lôgic theo dạng hình cây: Hệ thống file được xuất phát từ một thư mục gốc
(được kí hiệu là “/”) và cho phép tạo ra thư mục con trong một thư mục bất kỳ.

Thông thường, khi khởi tạo Linux đã có ngay hệ thống file của nó.
3. Cấu trúc hệ thống file của Linux
Hệ thống file của linux gồm bốn thành phần chính là Boot block (dùng để khởi động hệ
thống), Siêu khối (Super block), Danh sách inode và Vùng dữ liệu.

Boot Super I-nodes Data Blocks
Block Block
Block 0
Thường không được sử dụng và thường chứa mã để nạp HĐH (boot the computer). Nó
chứa một đoạn chương trình sẽ được đọc vào máy khi khởi động hệ điều hành Mặc dù Boot
block chỉ cần thiết khi khởi động máy nhưng tương tự với Boot record của DOS, tất cả các hệ
thống file UNIX đều có một Boot block (block này có thể để trống).

24
Block 1:
Là Super Block (siêu khối), trình bày trạng thái của hệ thống File (số lượng I-node, số
Disk Block, điểm bắt đầu của danh danh sách của khối đĩa trống (free disk blocks)). Là một
dạng bản ghi mô tả tình trạng của hệ thống file. Nó gồm các thông tin sau:
– Kích thước hệ thống file.
– Số khối còn trống trong hệ thống file.
– Danh sách khối trống trong hệ thống file.
– Chỉ số của khố
i tiếp theo trong danh sách khối trống.
– Kích thước của danh sách inode.
– Số inode còn trống trong hệ thống file.
– Danh sách inode còn trống trong hệ thống file.
– Chỉ số inode tiếp theo trong danh sách inode trống trong hệ thống file.
– Trường khoá của danh sách khối và inode trống.

– Cờ báo hiệu super block đã bị thay đổi.
I-nodes
Tương ứng bảng FAT trong MS-DOS, trình bày bên trong của một File được cho bởi
một I-node, chứa đựng các thông tin mô tả về l
ưu trữ file trên đĩa và một số thông tin khác như:
người chủ sở hữu, quyền truy nhập, thời gian truy nhập file. Mỗi I-node dài 64 byte và miêu tả
chính xác một file. Inode là một bảng chứa các thông tin chi tiết về một file. Mỗi file đều được
gắn với một inode qua số hiệu inode. Khi file được sử dụng bởi một tiến trình nào đó thì inode
sẽ được đọc vào bộ nhớ và quản lý bởi kernel. Mỗi inode bao gồm các thông tin sau:
– Quy
ền sở hữu file: Quyền sở hữu được chia làm hai phần là người sở hữu file và nhóm
người sở hữu. Người sở hữu thường là người tạo ra file đó. Nhóm người sở hữu file,
trong UNIX System V thì thường thuộc về nhóm của người tạo ra file đó, còn trong BSD
UNIX thì file thuộc về nhóm sở hữu thư mục mà file được tạo ra. Quyền sở hữu của
người sử dụng và của nhóm đối v
ới mỗi file có thể thay đổi được (ví dụ lệnh chown,
chgrp của shell). Quyền sở hữu này cùng với quyền truy nhập của file sẽ quyết dịnh xem
ai có thể truy nhập tới tập tin và có thể truy nhập như thế nào.
– Loại file: Khái niệm file của UNIX có khác so với file trong DOS, ta có thể kể tới một
số loại file sau.
 Kiểu file thường: Đó là các file văn bản, các file nhị phân, file dữ liệu hay là các
file chươ
ng trình

25
 Thư mục con: Là những file tạo ra cấu trúc phân cấp cho hệ thống file gồm danh
sách các file trong nó và có thể chứa cả các thư mục khác. Nó có một vai trò quan
trọng trong việc biến đổi tên file thành số hiệu inode. Thư mục là một file mà toàn
bộ dữ liệu là chuỗi các phần tử (entry), mỗi phần tử chứa một số hiệu inode và tên
file tương ứng trong thư mục. Đối với hệ UNIX System V chỉ cho phép tên file tối

đa dài 14 ký tự còn đối với các hệ khác chiều dài này có thể lớn hơn. Do thư mục
là các file đặc biệt nên tuy các file có thể đọc dữ liệu trong thư mục như đối với
các file thường nhưng kernel giành quyền ghi thư mục để đảm bảo tính chính xác
của cấu trúc.
 Kiểu file đặc biệt: Đây là cơ chế mà UNIX sử dụng để truy nhập tới các thiết bị
vào ra. Mỗi thiế
t bị vào ra trong UNIX đều được coi như là một file trong hệ
thống file. Ta có thể truy nhập tới thiết bị vật lý thông qua việc truy nhập các file
này. Người ta chia kiểu này làm hai loại dựa trên cách truy nhập tới chúng, đó là
kiểu ký tự (character, ví dụ như file ứng với cổng nối tiếp) và kiểu khối (block, ví
dụ như file ứng với ổ đĩa).
 Kiểu file móc nối(symbolic link): Đây là file chứa đường dẫn tới m
ột file khác. Cơ
chế này cho phép ta truy nhập tới một tập tin bằng nhiều tên khác nhau. Thực chất
của nó là định nghĩa một file với một tên khác.
 Kiểu FIFO: là một hàng đợi (queue) theo kiểu first-in-first-out hay còn được gọi
là named pipe. FIFO được dùng để trao đổi dữ liệu giữa các tiến trình. Loại file
này chỉ có trong hệ UNIX System V mà không có trong BSD UNIX.
 Kiểu socket: là một cơ chế tạo ra các đầu cuối (endpoint) cho phép các tiến trình
liên hệ với nhau. Khái niệ
m socket sẽ được đề cập tới trong phần sau.
– Quyền truy nhập file: Hệ thống bảo vệ file theo 3 lớp người sử dụng là chủ sở hữu,
nhóm sở hữu và các người sử dụng khác. Mỗi lớp người sử dụng đều có 3 quyền đọc,
ghi, và thực hiện. Các quyền này được thiết lập tách biệt nhau. Do thư mục là một kiểu
file đặc biệt nên quyền truy nhậ
p tới thư mục có thay đổi. Quyền đọc cho phép tiến trình
được đọc thư mục, quyền ghi cho phép tạo ra hoặc xoá bỏ các phần tử của thư mục
(thông qua lệnh creat, mknod, link hay unlink), quyền thực hiện cho phép tiến trình tìm
kiếm tên file trong thư mục.
– Thời gian: Lưu trữ thời gian mà file bị thay đổi gần nhất, thời gian file được truy cập

gần nhất và thời gian inode bị thay đổi gần nhất.

Số file liên kết: Thể hiện số file có trong cấu trúc cây thư mục.
BẢNG TỪ VIẾT TẮT 6CH ƯƠNG 1 : TỔNG QUAN VỀ UNIX / LINUX 71. Lịch sử tăng trưởng của Unix 72. Lịch sử tăng trưởng của Linux 92.1 Một số đặc thù chính của Linux 112.2 Các thành phần chính của hệ điều hành Linux 14CH ƯƠNG 2 : HỆ THỐNG FILE TRONG LINUX 211. Các kiểu file có trong Linux 212. Quy ước tên file trong Linux 223. Cấu trúc mạng lưới hệ thống file của Linux 234. Cấu trúc cây thư mục của mạng lưới hệ thống file trong Linux 275. Các file chuẩn vào / ra trên Linux 29CH ƯƠNG 3 : THAO TÁC TRÊN HỆ THỐNG FILE CỦA UNIX 321. Quản lý quyền truy vấn mạng lưới hệ thống file 322. Nhóm lệnh quản trị quyền xâm nhập file 352.1 Lệnh chmod 352.2 Lệnh chown 372.3 Lệnh chgrp 373. Các lệnh thao tác trên thư mục 393.1 Thay đổi thư mục thao tác hiện thời với lệnh cd 393.2 Xem nội dung thư mục với lệnh ls 393.3 Tạo thư mục với lệnh mkdir 403.4 Xóa thư mục với lệnh rmdir 403.5 Xem đường dẫn thư mục hiện thời với lệnh pwd 413.6 Lệnh đổi tên thư mục với lệnh mv 414. Các lệnh thao tác trên file 414.1 Tạo file với lệnh touch 414.2 Tạo file với lệnh cat 414.3 Xem nội dung những file lớn với lệnh more 424.4 Thêm số thứ tự của những dòng trong file với lệnh nl 444.5 Xem nội dung file với lệnh head 454.6 Xem nội dung file với lệnh tail 454.7 Sử dụng lệnh file để xác lập kiểu file 464.8 Lệnh phòng vệ sinh dùng để đếm số ký tự, số từ, hay số dòng trong một file 474.9 So sánh nội dung hai file sử dụng lệnh diff 474.10 Xóa file với lệnh rm 484.11 Sao chép tập tin với lệnh cp 484.12 Đổi tên file với lệnh mv 504.13 Lệnh uniq vô hiệu những dòng không quan trọng trong file 504.14 Sắp xếp nội dung file với lệnh sort 514.15 Tìm theo nội dung file bằng lệnh grep 534.16 Tìm theo những đặc tính của file với lệnh find 584.17 Nén và sao lưu những file 614.17.1 Sao lưu những file ( lệnh tar ) 614.17.2 Nén dữ liệu với gzip 634.17.3 Nén, giải nén và xem file với những lệnh compress, uncompress, zcat 654.18 Liên kết ( link ) tập tin 664.19 Xem thuộc tính về một file 674.20 Lệnh cắt file split 674.21 Lệnh mount và unmount 674.21.1 Lệnh mount 674.21.1 Lệnh umount 685. Các lệnh và tiện ích mạng lưới hệ thống 685.1 Các lệnh đăng nhập và thoát khỏi mạng lưới hệ thống 685.2 Lệnh đổi khác mật khẩu passwd 715.4 Lệnh date xem, thiết đặt ngày, giờ 735.5 Lệnh xem lịch cal 755.6 Xem thông tin mạng lưới hệ thống uname 765.7 Thay đổi nội dung dấu nhắc shell 775.8 Lệnh gọi ngôn từ tính toán số học 795.9 Tiện ích mc 815.10 Sử dụng trình soạn thảo VI 915.11 Sử dụng tài liệu trợ giúp man 965.11 Sử dụng tương hỗ apropos 97CH ƯƠNG 4 : LẬP TRÌNH TRONG LINUX 981. LẬP TRÌNH SHELL 981.1 Khái niệm shell 981.2 Một số đặc thù của Shell 981.3 Lập trình đường ống 1001.4 Lập trình Shell Script 1011.5 Điều khiển luồng 1111.5.1 Biểu thức điều kiện kèm theo if 1121.5.2 Biểu thức lệnh rẽ nhánh case 1151.5.3 Vòng lặp For 1181.5.4 Vòng lặp While 1211.5.5 Vòng lặp until 1211.5.6 Thoát vòng lặp : break, continue, exit 1231.5.7 Dịch chuyển tham số shift 1241.6 Hàm 1241.7 Mảng 1261.8 Đệ quy 1331.9 Lập trình hội thoại 1341.10 Một số những lệnh thường dùng trong lập trình Shell 1371.11 Một số ví dụ về Shell 1391.12 Shell con 1532. Lập trình C trên Linux 1532.1 Trình biên dịch gcc 1532.2 Công cụ GNU make 1572.3 Sử dụng nhãn file ( miêu tả file – file descriptor ) 1582.4 Thư viện link 1632.5 Các công cụ cho thư viện 1712.6 Biến thiên nhiên và môi trường và file thông số kỹ thuật 1742.7 Sử dụng gdb để gỡ lỗi 174CH ƯƠNG 5 : QUẢN LÝ TÀI NGUYÊN VÀ TRUYỀN THÔNG TRONGLINUX 1751. Quản lý tiến trình 1752. Các lệnh cơ bản trong quản trị tiến trình 1772.1 Sử dụng lệnh ps trong quản trị tiến trình 1772.2 Hủy một tiến trình sử dụng lệnh kill 1792.3 Cho máy ngừng hoạt động giải trí một thời hạn với lệnh sleep 1802.4 Xem cây tiến trình với lệnh pstree 1812.5 Lệnh thiết lập độ ưu tiên của tiến trình 1822.5.1 Lệnh nice 1822.5.2 Lệnh renice 1822.6 Lệnh lsof liệt kê những files được mở bởi những tiến trình khác 1822.7 Lệnh fg và lệnh bg 1823. Quản trị mạng lưới hệ thống 1853.1 Khởi động và đóng tắt mạng lưới hệ thống 1853.2 Tìm hiểu về trình nạp Linux 1853.3 Tìm hiểu GRUB, trình nạp Linux. 1873.4 Quá trình khởi động 1874. Quản trị người dùng 1884.1 Superuser ( root ) 1884.2 Tài khoản người dùng 1894.3 Thêm người dùng với lệnh useradd 1914.4 Lệnh usermod đổi khác thông tin của người dùng 1924.5 Hủy user 1934.6 Tạo nhóm người dùng groupadd 1934.7 Xác định người dùng đang đăng nhập ( lệnh who ) 1944.8 Để xác lập thông tin người dùng với lệnh id 1954.10 Hiển thị list đăng nhập sử dụng lệnh last 1964.11 Lệnh which hiển thị đường dẫn không thiếu của chương trình 1965. Quản trị tài nguyên 1965.1 Quản lý tài nguyên với lệnh quota 1965.2 Lệnh quản trị tàng trữ 1985.2.1 Xem dung tích đĩa sử dụng với lệnh du 1985.2.2 Kiểm tra dung tích đĩa trống với lệnh df 1995.2.3 Lệnh không tính tiền hiển thị thực trạng sử dụng bộ nhớ 2006 Truyền thông trong Linux 2016.1. Lệnh đặt tên máy 2036.2. Lệnh ifconfig 2036.3 Lệnh netstat 2046.4 Lệnh write 2056.5 Lệnh mail 2066.6 Lệnh talk 209T ÀI LIỆU THAM KHẢO 210PH Ụ LỤC 2111. Giới thiệu một số ít phiên bản hệ điều hành Linux thông dụng lúc bấy giờ vàcách thiết lập 2111.1 Hướng dẫn thiết lập hệ điều hành Redhat Linux 7.1 2111.2 Hướng dẫn sử dụng hệ điều hành Ubuntu và những phiên bản của nó 2282. Cài đặt WEBMIN 2283. Cài đặt WEBSERVER 2284. Cài đặt FILE SERVER 228B ẢNG TỪ VIẾT TẮTHệ điều hành HĐHMultiplexed Information and Computing ServiceMulticsBerkley Software Distribution BSDMidnight Commander mcCHƯƠNG 1 : TỔNG QUAN VỀ UNIX / LINUX1. Lịch sử tăng trưởng của UnixGiữa năm 1960, AT&T Bell Laboratories và một số ít TT khác tham giavào một cố gắng nỗ lực tạo ra một hệ điều hành mới được đặt tên là Multics. Đến năm 1969, chương trình Multics bị bãi bỏ vì đó là một dự án Bất Động Sản quá nhiềutham vọng. Thậm trí nhiều nhu yếu so với Multics thời đó đến nay vẫn chưa cóđược trên những Unix mới nhất. Nhưng Ken Thompson, Dennis Ritchie, và một sốđồng nghiệp của Bell Labs đã không bỏ cuộc. Thay vì thiết kế xây dựng một HĐH làm nhiều việc một lúc, họ quyết định hành động phát triểnmột HĐH đơn thuần chỉ làm tốt một việc là chạy chương trình ( run program ). HĐHsẽ có rất nhiều những công cụ ( tool ) nhỏ, đơn thuần, gọn nhẹ ( compact ) và chỉ làm tốtmột việc làm. Bằng cách tích hợp nhiều công cụ lại với nhau, họ sẽ có một chươngtrình thực thi một việc làm phức tạp. Đó cũng là phương pháp người lập trình viết rachương trình. Peter Neumann đặt tên Unix cho HĐH đơn thuần này liên tục pháttriển theo quy mô khởi đầu và đặt ra một mạng lưới hệ thống tập tin mà sau này được pháttriển thành mạng lưới hệ thống tập tin của UNIX.Năm 1973, Riche và Thompson viết lại nhân của hệ điều hành UNIX trênngôn ngữ C, và hệ điều hành đã trở nên thuận tiện thiết lập tới những loại máy tính khácnhau ; đặc thù như thế được gọi là tính khả chuyển của UNIX. Trước đó, khoảngnăm 1971, hệ điều hành được bộc lộ trên ngôn từ B ( mà dựa trên ngôn từ B, Ritche đã tăng trưởng thành ngôn từ C ). Khoảng năm 1977 bản quyền của Unix được giải phóng và HĐH Unix trởthành một mẫu sản phẩm thương mại. Hai dòng UNIX : System V của AT&T, Novell và Berkeley SoftwareDistribution ( BSD ) của Đại học Berkeley. + System V : Các phiên bản UNIX sau cuối do AT&T xuất bản là System IIIvà một vài phát hành ( releases ) của System V. Hai bản phát hành gần đâycủa System V là Release 3 ( SVR3. 2 ) và Release 4.2 ( SVR4. 2 ). Phiên bảnSYR 4.2 là phổ cập 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 ofCalifornia tại Berkeley ( 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 những máy tính của DigitalEquipment Corporation VAX được đưa vào trong 3BSD. Phát triển củaVAX được liên tục với 4.0 BSD, 4.1 BSD, 4.2 BSD, và 4.3 BSDTrước 1992, UNIX là tên thuộc chiếm hữu của AT&T. Từ năm 1992, khi AT&T bán bộ phận Unix cho Novell, tên Unix thuộc chiếm hữu của X / Open foundation. Tấtcả những hệ điều hành thỏa mãn nhu cầu 1 số ít nhu yếu đều hoàn toàn có thể gọi là Unix. Ngoài ra, Institute of Electrical and Electronic Engineers ( IEEE ) đã thiết lập chuẩn ” AnIndustry-Recognized Operating Systems Interface Standard based on the UNIXOperating System. ” Kết quả cho sinh ra POSIX. 1 ( cho giao diện C ) và POSIX. 2 ( cho mạng lưới hệ thống lệnh trên Unix ) Tóm lại, yếu tố chuẩn hóa UNIX vẫn còn rất xa tác dụng ở đầu cuối. Nhưngđây là quy trình thiết yếu có lợi cho sự tăng trưởng của ngành tin học nói chung và sựsống còn của HĐH UNIX nói riêng. Hình 1.1 Các phiên bản của UnixCác nhóm nhà phân phối khác nhau về UNIX đang hoạt động giải trí trong thời gianhiện nay được kể đến như sau : + Unix International ( viết tắt là UI ). UI là một tổ chức triển khai gồm những nhà cung cấpthực hiện việc chuyển nhượng ủy quyền mạng lưới hệ thống UNIX-5 và cung ứng bản AT&T theo những nhu yếu và thông tin phát hành mới, ví dụ điển hình như kiểm soát và điều chỉnh bảnquyền. Giao diện đồ họa người dùng là Open Look. + Open Software Foundation ( OSF ). OSF được tương hỗ bởi IBM, DEC, HPtheo hướng tăng trưởng một phiên bản của Unix nhằm mục đích tranh đua với hệ thốngUNIX-5 phiên bản 4. Phiên bản này có tên là OSF / 1 với giao diện đồ họangười dùng được gọi là MOTIF. + Free SoftWare Foundation ( FSF ) : một hội đồng do Richard Stallman khởixướng năm 1984 chủ trương phát hành những ứng dụng sử dụng tự do, trên cơsở một hệ điều hành thuộc loại UNIX. 2. Lịch sử tăng trưởng của LinuxLinux là một HĐH dạng UNIX ( Unix-like Operating System ) chạy trên máyPC với bộ điều khiển và tinh chỉnh TT ( CPU ) Intel 80386 hoặc những thế hệ sau đó, hay cácbộ vi giải quyết và xử lý TT thích hợp như AMD, Cyrix. Linux thời nay còn hoàn toàn có thể chạytrên những máy Macintosh hoặc SUN Sparc. Linux thỏa mãn nhu cầu chuẩn POSIX. 1. Linux được viết lại hàng loạt từ số lượng không, tức là không sử dụng một dònglệnh nào của Unix, để tránh yếu tố bản quyền của Unix, tuy nhiên hoạt động giải trí của10Linux trọn vẹ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ườinắm được Linux, thì sẽ nắm được UNIX. Nên quan tâm rằng giữa những Unix sự khácnhau cũng không kém gì giữa Unix và Linux. Năm 1991 Linus Torvalds – sinh viên của ĐH tổng hợp Helsinki, Phầnlan, mở màn xem xét Minix, một phiên bản của Unix, làm ra với mục tiêu nghiêncứ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 giải quyết và xử lý Intel80386. Ngày 25/8/1991, Linus cho ra version 0.01 và thông tin trên comp.os. minixcủa Internet về chương trình của mình. 1/1992, Linus cho ra version 0.12 với shell và C compiler, Linus đặt tênHĐH 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 tăng trưởng của Linux được tăng cường bởi sự giúp sức của chương trìnhGNU, đó là chương trình tăng trưởng những Unix có năng lực chạy trên nhiều platform. Đến thời điểm ngày 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 tinh chỉnh và điều khiển những máy đa bộ vi giải quyết và xử lý và rất nhiều những tính năng khác. Hiện nay, Linux là một hệ điều hành giống Unix rất đầy đủ và độc lập. Nó cóthể chạy X-Window, TCP / IP, Emacs, Web, thư điện tử và những ứng dụng khác. Hầuhết những ứng dụng không tính tiền và thương mại đều được chuyển lên Linux. Rất nhiềucác nhà tăng trưởng ứng dụng khởi đầu chuyển sang viết trên Linux. Người ta thựchiện những phép đo benchmarks trên Linux và thấy rằng chúng triển khai nhanh hơnkhi triển khai trên những máy trạm của Sun Microystem và Compaq, thậm chí còn nhiềukhi còn nhanh hơn cả trên Windows 98 và WindowNT. Thật khó hoàn toàn có thể hình dungđược hệ điều hành “ Unix ” tí hon này tăng trưởng nhanh thế nào ! Bây giờ, sau khi đã trải qua 1 thời hạn rất dài tăng trưởng và triển khai xong bởicộng đồng quốc tế, Linux ngày càng trở nên can đảm và mạnh mẽ, không thay đổi và độ tin cậycao, và được chọn để sử dụng trong những cơ quan chính phủ nước nhà. Các nước như TrungQuốc, Nhật Bản, Đức và 1 số ít những nước châu Âu đều cũng đã có kế họach pháttriển riêng Linux cho quốc gia của họ. Ở Nước Ta trong những năm gần đây đã cónhiều nhóm điều tra và nghiên cứu và tăng trưởng Linux sử dụng tiếng Việt là ngôn từ chính. Trong giáo trình này Linux được sử dụng như một ví dụ cho việc tìm hiểu và khám phá kỹhơn về hệ điều hành Unix. 11V ấn đề phân phối và giấy phép LinuxVề triết lý, mọi người hoàn toàn có thể khởi tạo một mạng lưới hệ thống Linux bằng cách tiếpcận bản mới nhất những thành phần thiết yếu từ những site ftp và biên dịch chúng. Trongthời kỳ tiên phong, người dùng Linux phải triển khai hàng loạt những thao tác này và vì vậycông việc là khá khó khăn vất vả. Tuy nhiên, do có sự tham gia phần đông của những cá thể vànhóm tăng trưởng Linux, đã triển khai triển khai nhiều giải pháp nhằm mục đích làm cho côngviệc khởi tạo mạng lưới hệ thống đỡ khó khăn vất vả. Một trong những giải pháp điển hình nhất là cungcấp tập những gói chương trình đã tiền dịch, chuẩn hóa. Những tập hợp như vậy hay những bản phân phối là lớn hơn nhiều so với hệthống Linux cơ sở. Chúng thường gồm có những tiện ích bổ trợ cho khởi tạo hệthống, những thư viện quản trị, cũng như nhiều gói đã được tiền dịch, chuẩn bị sẵn sàng khởi tạocủa nhiều bộ công cụ UNIX dùng chung, ví dụ điển hình như ship hàng tin, trình duyệtweb, công cụ giải quyết và xử lý, soạn thảo văn bản và thậm chí còn những game show. Cách thức phân phối bắt đầu rất đơn thuần tuy nhiên ngày càng được tăng cấp vàhoàn thiện bằng phương tiện đi lại quản trị gói tiên tiến và phát triển. Các bản phân phối ngày này baogồm những cơ sở tài liệu tiến hóa gói, được cho phép những gói thuận tiện được khởi tạo, nângcấp và vô hiệu. Nhà phân phối tiên phong triển khai theo mục tiêu này là Slakware, vàchính họ là những chuyển biến can đảm và mạnh mẽ trong hội đồng Linux so với công việcquản lý gói khởi tạo Linux. Tiện ích quản trị gói RPM ( RedHat Package Manager ) của công ty RedHat làmột trong những phương tiện đi lại nổi bật. Nhân Linux là ứng dụng tự do được phân phối theo Giấy phép sở hữu côngcộng ứng dụng GNU GPL. 2.1 Một số đặc thù chính của LinuxĐa nềnLinux bắt đầu được xefdm là bản sao của Unix và quản lý và vận hành trên những máytính cá thể được trang bị bộ giải quyết và xử lý 386, 486 hoặc những bộ giải quyết và xử lý cấp cao hơn. Mặc dùban đầu nó được tăng trưởng cho những cấu trúc x86 nhưng lúc bấy giờ nó hoàn toàn có thể vận hànhtrên những nền khác nhau như Alpha, Sparc, Dec, Sun, Power PC và một số ít nền 6800012 như Atari, Amiga Ngoài ra Linux còn chạy trên một số ít máy MIPS và những máy tínhcá nhân mạnh. Đa chương trìnhMột thời gian một người sử dụng hoàn toàn có thể triển khai đồng thời nhiều tác vụ. Với hệ điều hành đơn chương trình như MS-DOS một lệnh triển khai sẽ chiếm toànbộ thời hạn CPU giải quyết và xử lý, ta chỉ hoàn toàn có thể thực thi lệnh kế khi lệnh trước đóđã đượcthực hiện xong. Còn trong hệ điều hành UNIX ta hoàn toàn có thể đặt lệnh chạy ở chính sách nền ( background ) đồng thời khi đó hoàn toàn có thể thực thi những lệnh kế. Nhiều người sử dụngNhiều người sử dụng hoàn toàn có thể sử dụng máy tính có cài UNIX tại một thờiđiểm. Độc lập phần cứngVì hệ điều hành UNIX được viết bằng ngôn từ cấp cao do đó nó rất dễcài đặt trên những thông số kỹ thuật phần cứng khác. Hơn nữa với cách tổ chức triển khai những thiết bị làcác tập tin đặc biệt quan trọng nên việc thêm vào hay vô hiệu những thiết bị rất thuận tiện. Dùng chung thiết bịVì Unix là môi trường tự nhiên nhiều người sử dụng do đó những thiết bị ngoại vi nhưmáy in, v.v hoàn toàn có thể được dùng chung bởi nhiều người sử dụng. Tính ổnđịnhLinux có tính không thay đổi cao, đây là một trong những ưu điểm của Linux so vớicác hệ điều hành khác. Tính không thay đổi ở đây có nghĩa là nó ít bị lỗi khi sử dụng so vớihầu hết những hệ điều hành khác. Người sử dụng Linux sẽ không phải lo ngại đếnchuyện máy tính của mình bị hiện tượng kỳ lạ “ treo cứng ” khi đang sử dụng nữa. Thôngthường nguyên do đểta bắt buộc phải khởi động lại mạng lưới hệ thống là do mất điện, nâng cấpphần cứng hoặc phần mểm. Tính bảo mậtKhi thao tác trên Linux người dùng hoàn toàn có thể yên tâm hơn về tính bảo mật thông tin củahệ điều hành. Linux là hệ điều hành đa nhiệm, đa người dùng, điều này có nghĩa làcó thể có nhiều người dùng vào phiên thao tác của mình trên cùng một máy tạicùng một thời gian. Linux phân phối những mức bảo mật thông tin khác nhau cho người sử13dụng. Mỗi người sử dụng chỉ thao tác trên một khoảng trống tài nguyên riêng, chỉ cóngười quản trị mạng lưới hệ thống mới có quyền biến hóa trong máy. Tính hoàn chỉnhBản thân Linux đã kèm theo những trình tiện ích thiết yếu. Tất cả những trình tiệních mà ta mong đợi đều có sẵn hoặc ở một dạng tương tự rất giống. Trên Linux, những trình biên dịch như C, C + +, …, đều được chuẩn hoá. Tính tương thíchLinux thích hợp hầu hết trọn vẹn với hầu hết những chuẩn Unix như IEEEPOSIX. 1, UNIX System V và BSD Unix. Trên Linux ta cũng hoàn toàn có thể tìm thấy cáctrình giả lập DOS và Windows được cho phép ta chạy những ứng dụng quen thuộc trên DOSvà Windows. Linux cũng tương hỗ hầu hết những phần cứng PC như đã nói phía trên. Hệ điều hành 32 – bit đầy đủNgay từ đầu Linux đã là hệ điều hành 32 bit không thiếu. Điều đó có nghĩa là takhông còn phải lo về số lượng giới hạn bộ nhớ, những trình điều khiển và tinh chỉnh EMM hay những bộ nhớmở rộng, … khi sử dụng Linux. Linux tương hỗ tốt cho thống kê giám sát song song và máy tính cụm ( PC-cluster ) là mộthướng nghiên cứu và điều tra tiến hành ứng dụng nhiều triển vọng lúc bấy giờ. Linux có giao diện đồ hoạ ( GUI ) : Thừa hưởng từ mạng lưới hệ thống X-Window. Linux tương hỗ nhiều giao thức mạng, bắtnguồn và tăng trưởng từ dòng BSD. Thêm vào đó, Linux còn tương hỗ giám sát thờigian thựcDễ cấu hìnhTa không còn phải bận tâm về số lượng giới hạn 640K và thực thi tối ưu hoá bộ nhớmỗi lần setup một trình điều khiển và tinh chỉnh mới. Linux cho ta toàn quyền điều khiển và tinh chỉnh vềcách thao tác của mạng lưới hệ thống. Như vậy, qua phần ra mắt khởi đầu này ta hoàn toàn có thể thấy rằng Linux là một hệUnix đủ mạnh. Nó hoàn toàn có thể được ứng dụng thuận tiện. Ngoài ra, việc sử dụng công cộngrộng rãi đang làm đà để Linux tăng trưởng nhanh. Các quy trình tiến độ thiết lập được cho phép càiđặt trực tiếp mạng lưới hệ thống đã làm nó trở nên ngày càng phổ cập so với những người sửdụng. 14T uy nhiên cũng sống sót một số ít khó khăn vất vả làm cho Linux chưa thực sự trởthành một hệ điều hành phổ dụng, dưới đây là một số ít khó khăn vất vả nổi bật : + Tuy đã có công cụ tương hỗ thiết lập, tuy nhiên, việc setup Linux còn tương đốiphức tạp và khó khăn vất vả. Khả năng thích hợp của Linux với 1 số ít loại thiếtbị phần cứng còn thấp do chưa có những trình tinh chỉnh và điều khiển cho nhiều thiết bị, + Phần mềm ứng dụng chạy trên nền Linux tuy đã phong phú và đa dạng tuy nhiên so với mộtsố hệ điều hành khác, đặc biệt quan trọng là khi so sánh với MS Windows, thì vẫn còncó khoảng cách. Với sự tương hỗ của nhiều công ty tin học số 1 quốc tế ( IBM, SUN, HP ) và sự tham gia tăng trưởng của hàng vạn chuyên viên trên toàn quốc tế thuộc cộngđồng Linux, những khó khăn vất vả của Linux chắc như đinh sẽ nhanh gọn được khắc phục. Chính vì lẽ đó đã hình thành một số ít nhà phân phối Linux trên quốc tế. Bảngdưới đây là tên của một số ít nhà phân phối Linux có tiếng nhất và địa chỉ website củahọ. Đáng quan tâm nhất là Red Hat Linux ( tại Mỹ ) và Red Flag Linux ( tại TrungQuốc ). Red Hat được coi là truyền kiếp và đáng tin cậy, còn Red Flag là một công ty Linuxcủa Trung quốc, có quan hệ với hội đồng Linux Việt nam và tất cả chúng ta hoàn toàn có thể họchỏi một cách trực tiếp kinh nghiệm tay nghề cho quy trình đưa Linux vào Việt nam. Tên công ty Địa chỉ websiteCaldera OpenLinux www.caldera. comCorel Linux www.corel. comDebian GNU / Linux www.debian. comLinux Mandrake www.mandrake. comRed Hat Linux www.redhat. comRed Flag Linux www.redflag – linux. comSlackware Linux www.slackware. comSuSE Linux www.suse. comTurboLinux www.turbolinux.comwww.ubuntu. com2. 2 Các thành phần chính của hệ điều hành Linux – Kernel ( Nhân hệ điều hành ). 15 – Các bộ điều khiển và tinh chỉnh thiết bị. – Lệnh và tiện ích. – Shell. – Windows và Graphic User Interface. Hình1. 2 Các thành phần chính của HĐH UnixKernelLà thành phần hầu hết hay trái tim của hệ điều hành. Nó nắm trách nhiệm điềukhiển thanh toán giao dịch giữa chương trình người sử dụng với những thiết bị phần cứng, xếplịch những tiến trình để hoàn toàn có thể thực thi đa nhiệm, và nhiều tác vụ khác của mạng lưới hệ thống, và một tập những trình đơn nằm trong bộ nhớ, mọi tiến trình đều gọi chúng. Nhân hệđiều hành chịu nghĩa vụ và trách nhiệm duy trì những đối tượng người dùng trừu tượng quan trọng của hệ điềuhành, gồm có bộ nhớ ảo và quy trình. Các mô đun chương trình trong nhân đượcđặc quyền trong mạng lưới hệ thống, gồm có độc quyền thường trực ở bộ nhớ trong. Nhân ( còn được gọi là hệ lõi ) của Linux, là một bộ những mô đun chương trìnhcó vai trò tinh chỉnh và điều khiển những thành phần của máy tính, phân phối những tài nguyên chongười dùng ( những quy trình người dùng ). Nhân chính là cầu nối giữa chương trìnhứng dụng với phần cứng. Người dùng sử dụng bàn phím gõ nội dung nhu yếu củamình và nhu yếu đó được nhân gửi tới shell, Shell nghiên cứu và phân tích lệnh và gọi những chươngtrình tương ứng với lệnh để triển khai. 16M ột trong những tính năng quan trọng nhất của nhân là xử lý bài toánlập lịch, tức là mạng lưới hệ thống cần phân loại CPU cho nhiều quy trình hiện thời cùng tồntại. Đối với Linux, số lượng quy trình hoàn toàn có thể lên tới số lượng hàng nghìn. Với sốlượng quy trình đồng thời nhiều như vậy, những thuật toán lập lịch cần phải đủ hiệuquả : Linux thường lập lịch theo chếđộ Round Robin ( RR ) triển khai việc luânchuyển CPU theo lượng tử thời hạn. Thành phần quan trọng thứ hai trong nhân là mạng lưới hệ thống những môđun chươngtrình ( được gọi là lời gọi mạng lưới hệ thống ) thao tác với mạng lưới hệ thống file. Linux có hai cáchthức thao tác với những file : thao tác theo byte ( kí tự ) và thao tác theo khối. Một đặcđiểm đáng chú ý quan tâm là file trong Linux hoàn toàn có thể được nhiều người cùng truy nhập tới nêncác lời gọi mạng lưới hệ thống thao tác với file cần bảo vệ việc file được truy nhập theoquyền và được san sẻ cho người dùng. Các bộ tinh chỉnh và điều khiển thiết bịUNIX biểu lộ những thiết bị vật lý như những tập tin đặc biệt quan trọng. Một tập tin đặc biệtsẽ có một điểm vào trong thư mục và có một tên tập tin. Do đó Unix cho phépngười sử dụng định nghĩa tên thiết bị. Các thiết bị được chia làm hai loại : ký tự và khối. – Thiết bị ký tự đọc và ghi dòng những ký tự ( ví dụ những thiết bị đầu cuối ). – Thiết bị khối đọc và ghi tài liệu trong những khối có kích cỡ cố định và thắt chặt ( ví dụ ổđĩa ). Thiết bị hoàn toàn có thể đổi tên như đổi tên tập tin. Thư mục chứa những bộ điều khiểnthiết bị là / dev. Lệnh và tiện íchTiện ích mạng lưới hệ thống là những chương trình thực thi những trách nhiệm quản trị chuyênbiệt. Một số tiện ích mạng lưới hệ thống được gọi ra chỉ một lần để khởi động và thông số kỹ thuật hệthống, 1 số ít tiện ích khác, theo thuật ngữ UNIX được gọi là trình chạy ngầm ( daemon ), hoàn toàn có thể chạy một cách tiếp tục ( thường theo chu kỳ luân hồi ), điều khiển và tinh chỉnh cácbài toán như hưởng ứng những liên kết mạng mới đến, tiếp đón nhu yếu logon, hoặccập nhật những file log. 17T iện ích ( hay lệnh ) có sẵn trong hệ điều hành ( dưới đây tiện ích được coi làlệnh thường trực ). Nội dung chính yếu của tài liệu này trình làng chi tiết cụ thể về một sốlệnh thông dụng nhất của Linux. Các lệnh và tiện ích của Unix rất phong phú. – Một lệnh UNIX có dạng : $ lệnh [ những lựa chọn ] [ những đối số ] lệnh thường làchữ nhỏ. – Unix phân biệt chữ lớn, nhỏ. Ví dụ : USD ls – c / devTa hoàn toàn có thể chia lệnh thành những nhóm sau : Các lệnh khởi tạo : exit thoát khỏi mạng lưới hệ thống ( Bourne-Shell ) logout thoát khỏi mạng lưới hệ thống C-Shellid chỉ danh của người sử dụnglogname tên người sử dụng loginman giúp đỡnewgrp chuyển người sử dụng sang một nhóm mớipsswd đổi khác password của người sử dụngset xác lập những biến môi trườngtty đặt những thông số kỹ thuật terminaluname tên của mạng lưới hệ thống ( host ) who cho biết những ai đang xâm nhập hệ thốngTrình báo màn hình hiển thị : echo hiển thị dòng ký tự hay biếnsetcolor đặt màu nền và chữ của màn hìnhDesktop : bc tính biểu thức số họccal máy tính cá nhândate hiển thị và đặt ngàymail gửi – nhận thư tín điện tửmesg cấm / được cho phép hiển thị thông tin trên màn hình hiển thị ( bởiwrite / hello ) spell kiểm tra lỗi chính tả18vi soạn thảo văn bảnwrite / hello được cho phép gửi dòng thông tin đến những người sửdụng trong mạng lưới hệ thống. Thư mục : cd đổi thư mụccopy sao chép 2 thư mụcmkdir tạo thư mụcrmdir vô hiệu thư mụcpwd trình bày thư mục hiện hànhTập tin : cas / more trình bày nội dung tập tincp sao chép một hay nhiều tập tinfind tìm vị trí của tập tingrep tìm vị trí của chuỗi ký tự trong tập tinls, l, lf, lc trình bày tên và thuộc tính của những tập tin trongthư mụcmv chuyển / đổi tên một tập tinsort sắp thứ tự nội dung tập tinwc đếm số từ trong tập tinQuản lý tiến trình : kill hủy bỏ một quá trìnhps trình bày thực trạng của những quá trìnhsleep ngưng hoạt động giải trí một thời gianKiểm soát chủ quyền lãnh thổ : chgrp chuyển chủ quyền lãnh thổ tập tin, thư mục từ một nhóm sangmột nhóm khácchmod đổi khác quyền sở hữu của tập tin hay thư mụcchown biến hóa người chiếm hữu tập tin hay thư mụcKiểm soát in : cancel ngưng inlp in tài liệu ra máy in19lpstat trạng thái của hàng chờ inShellLà bộ giải quyết và xử lý lệnh của người sử dụng hay nó đơn thuần chỉ là một chương trìnhcho phép mạng lưới hệ thống hiểu những lệnh của người dùng. Chức năng chính của Shell là : – Xử lý tương tác : Khi Shell được sử dụng một cách tương tác, mạng lưới hệ thống đợingười dùng gõ vào một lệnh tại dấu nhắc lệnh. Lệnh hoàn toàn có thể gồm có những kýhiệu đặc biệt quan trọng được cho phép ta viết tắt những tên file hoặc tái định hướng nguồn vàovà nguồn ra. – Môi trường Lập trình : Các shell phân phối một bộ những lệnh đặc biệt quan trọng ( có sẵn ), được cho phép ta tạo ra những chương trình có tên Shell Script. Các Shell Script rấthữu ích khi sử dụng cho việc thực thi một chuỗi những lệnh riêng không liên quan gì đến nhau giốngnhư thực thi những file BATCH trong MS-Dos. Các script cũng hoàn toàn có thể thực thicác lệnh lặp lại nhiều lần ( trong vòng lặp ) hoặc có điều kiện kèm theo ( if-else ) giốngnhư trong nhiều ngôn từ lập trình hạng sang khác. Hiện nay người ta sử dụng ba loại shell, tùy theo loại mà có cú pháp khácnhau : – Bourne-Shell : là shell cơ bản nhất, nhanh, hiệu suất cao, nhưng ít lệnh. – C-Shell : là shell sử dụng cú pháp giống như C và nó thuận tiện hơn chongười sử dụng tương tác Bourne-Shell, nó giống như Bourne-Shell nhưngcung cấp thêm những cấu trúc tinh chỉnh và điều khiển, history, bí danh. – Korn-Shell : Kết hợp cả Bourne-Shell và C-Shell. Mỗi người dùng khi đăng nhập mạng lưới hệ thống thì thường có một chương trình mặcđịnh khởi động cùng, hoàn toàn có thể nhận biết dạng Shell ta đang sử dụng là gì thông quafile / etc / passwd. Tên chương trình Shell của ta là / bin / sh Bourne – Shell / bin / rsh Bourne – Shell / bin / jsh Bourne – Shell / bin / ksh Korn-Shell / usr / dt / bin / dtksh Korn-Shell Desktop, một phiên bản chỉ dùng cho Solaris20 / bin / rksh Korn-Shell / bin / csh C ShellWindows và Graphic User Interface : Giao tiếp đồ hoạ và hành lang cửa số là một năng lực rất mạnh của hệ điều hành Linux, nó được cho phép hệ điều hành tiếp xúc thân thiện hơn với người sử dụng. Hình 1.3 Giao diện Gnome của LinuxTóm lại : Đứng về phía người sử dụng ta hoàn toàn có thể tưởng tượng hệ điều hành Linux nhưsau : Người sử dụng – lệnh Linux – biên dịch Shell – Kernel – Máy tính ( phần cứng ). 21CH ƯƠNG 2 : HỆ THỐNG FILE TRONG LINUX1. Các kiểu file có trong LinuxCó rất nhiều file khác nhau trong Linux, nhưng khi nào cũng sống sót một sốkiểu file thiết yếu cho hệ điều hành và người dùng, dưới đây ra mắt lại một sốcác kiểu file cơ bản. – File người dùng ( user data file ) : là những file tạo ra do hoạt động giải trí của ngườidùng khi kích hoạt những chương trình ứng dụng tương ứng. Ví dụ như những filethuần văn bản, những file cơ sở tài liệu hay những file bảng tính. – File mạng lưới hệ thống ( system data file ) : là những file tàng trữ thông tin của hệ thốngnhư : thông số kỹ thuật cho khởi động, thông tin tài khoản của người dùng, thông tin thiết bịthường được cất trong những tệp dạng văn bản để người dùng hoàn toàn có thể can thiệp, sửa đổi theo ý mình. – File triển khai hay thực thi ( executable file ) : là những file chứa mã lệnh haychỉ thị cho máy tính thực thi. File triển khai tàng trữ dưới dạng mã máy màta khó hoàn toàn có thể tìm hiểu và khám phá được ý nghĩa của nó, nhưng sống sót một số ít công cụ để ” hiểu ” được những file đó. Khi dùng trình ứng dụng mc, file triển khai được bắtđầu bởi dấu ( * ) và thường có màu xanh lục. – Thư mục hay còn gọi là file bao hàm ( directory ) : là file bao hàm những filekhác và có cấu trúc trọn vẹn tương tự như như file thường thì khác nên có thểgọi là file. Trong mc, file bao hàm thường có màu trắng và khởi đầu bằng dấungã ( ~ ) hoặc dấu chia ( / ). Ví dụ : /, / home, / bin, / usr, / usr / man, / dev – File thiết bị ( device file ) : là file miêu tả thiết bị, dùng như là định danh để chỉra thiết bị cần thao tác. Theo quy ước, file thiết bị được tàng trữ trong thư mục / dev. Các file thiết bị hay gặp trong thư mục này là tty ( teletype – thiết bịtruyền thông ), ttyS ( teletype serial – thiết bị truyền thông online tiếp nối đuôi nhau ), fd0, fd1, ( floppy disk – thiết bị ổ đĩa mềm ), hda1, hda2, hdb1, hdb2, ( hardisk – thiết bị ổ cứng theo chuẩn IDE ; a, b, đánh số ổ đĩa vật lý ; 1, 2, 3 đánh sốổ logic ). Trong mc, file thiết bị có màu tím và khởi đầu bằng dấu cộng ( + ). – File link ( linked file ) : là những file chứa tham chiếu đến những file kháctrong mạng lưới hệ thống tệp tin của Linux. Tham chiếu này được cho phép người dùng tìm22nhanh tới file thay vì tới vị trí nguyên thủy của nó. Hơn nữa, người ta có thểgắn vào đó những thông tin phụ trợ làm cho file này có tính năng trội hơn so vớitính năng nguyên thủy của nó. Ta thấy loại file này giống như khái niệmshortcut trong MS-Windows98. Không giống một số ít hệ điều hành khác ( như MS-DOS ví dụ điển hình ), Linuxquản lý thời hạn của tệp tin qua những thông số kỹ thuật thời hạn truy nhập ( accesed time ), thời hạn kiến thiết ( created time ) và thời hạn sửa đổi ( modified time ). 2. Quy ước tên file trong LinuxMột đối tượng người dùng nổi bật trong những hệ điều hành đó là file. File là một tập hợpdữ liệu có tổ chức triển khai được hệ điều hành quản trị theo nhu yếu của người dùng. Cách tổchức dữ liệu trong file thuộc về chủ của nó là người đã tạo ra file. File hoàn toàn có thể là mộtvăn bản ( trường hợp đặc biệt quan trọng là chương trình nguồn trên C, PASCAL, shell script ), một chương trình ngôn ngữ máy, một tập hợp dữ liệuHệ điều hành quản trị file theo tên gọi của file ( tên file ) và một số ít thuộc tínhliên quan đến file. Trước khi trình làng 1 số ít nội dung tương quan đến tên file và tênthư mục, tất cả chúng ta trình làng sơ bộ về khái niệm thư mục. Để thao tác được với những file, hệ điều hành không chỉ quản trị nội dung filemà còn phải quản trị những thông tin tương quan đến những file. Thư mục ( directory ) làđốitượng được dùng để chứa thông tin về những file, hay nói theo một cách khác, thư mụcchứa những file. Các thư mục cũng được hệ điều hành quản trị vì thế, thư mục cũngđược coi là file tuy nhiên trong 1 số ít trường hợp để phân biệt với ” file ” thư mục, chúngta dùng thuật ngữ file thường thì. Khác với file thường thì, hệ điều hành lạiquan tâm đến nội dung của thư mục. Tên file trong Linux hoàn toàn có thể dài tới 256 ký tự, gồm có những vần âm, chữ số, dấu gạch nối, gạch chân, dấu chấm. Tên thư mục / file trong Linux hoàn toàn có thể có nhiềuhơn một dấu chấm, ví dụ : This _is. a. VERY_long. filename. Nếu trong tên file có dấuchấm “. ” thì xâu con của tên file từ dấu chấm ở đầu cuối được gọi là phần mở rộngcủa tên file ( hoặc file ). Ví dụ, tên file trên đây có phần lan rộng ra là. filename. Chúng ta nên quan tâm rằng, không phải ký tự nào cũng có nghĩa. Nếu có hai filechỉ khác nhau ở ký tự sau cuối, thì so với Linux, đó là hai file hoàn toàn có thể trùng tên. Bởi lẽ, Linux chỉ lấy 32 hay 64 ký tự tiên phong trong tên file mà thôi ( tùy theo phiên23bản Linux ), phần tên file còn lại dành cho chủ của file, Linux theo dõi thông tin, nhưng thường không xem những ký tự đứng sau ký tự thứ 33 hay 65 là quan trọng đốivới nó. Xin nhắc lại quan tâm về phân biệt chữ hoa và chữ thường so với tên thưmục / file, ví dụ hai file FILENAME.tar.gz và filename.tar.gz là hai file khác nhau. Nếu trong tên thư mục / file có chứa khoảng trống, sẽ phải đặt tên thư mục / filevào trong cặp dấu nháy kép để sử dụng thư mục / file đó. Ví dụ, để tạo thư mục cótên là “ My document ” ví dụ điển hình, hãy đánh dòng lệnh sau : # mkdir ” My document ” Một số ký tự sau không được sử dụng trong tên thư mục / file : !, *, USD, và, # Khi sử dụng chương trình mc, việc hiển thị tên file sẽ bổ trợ một kí tự theonghĩa : dấu ” * ” cho file khả thi trong Linux, dấu ” ~ ” cho file sao lưu, dấu “. ” cho fileẩn, dấu ” @ ” cho file liên kếtTập hợp toàn bộ những file có trong hệ điều hành được gọi là mạng lưới hệ thống file là mộthệ thống thống nhất. Bởi chính từ phương pháp sử dụng thư mục, mạng lưới hệ thống file được tổchức lôgic theo dạng hình cây : Hệ thống file được xuất phát từ một thư mục gốc ( được kí hiệu là ” / ” ) và được cho phép tạo ra thư mục con trong một thư mục bất kể. Thông thường, khi khởi tạo Linux đã có ngay mạng lưới hệ thống file của nó. 3. Cấu trúc mạng lưới hệ thống file của LinuxHệ thống file của linux gồm bốn thành phần chính là Boot block ( dùng để khởi động hệthống ), Siêu khối ( Super block ), Danh sách inode và Vùng dữ liệu. Boot Super I-nodes Data BlocksBlock BlockBlock 0T hường không được sử dụng và thường chứa mã để nạp HĐH ( boot the computer ). Nóchứa một đoạn chương trình sẽ được đọc vào máy khi khởi động hệ điều hành Mặc dù Bootblock chỉ thiết yếu khi khởi động máy nhưng tựa như với Boot record của DOS, toàn bộ những hệthống file UNIX đều có một Boot block ( block này hoàn toàn có thể để trống ). 24B lock 1 : Là Super Block ( siêu khối ), trình bày trạng thái của mạng lưới hệ thống File ( số lượng I-node, sốDisk Block, điểm mở màn của danh list của khối đĩa trống ( không lấy phí disk blocks ) ). Là mộtdạng bản ghi diễn đạt thực trạng của mạng lưới hệ thống file. Nó gồm những thông tin sau : – Kích thước mạng lưới hệ thống file. – Số khối còn trống trong mạng lưới hệ thống file. – Danh sách khối trống trong mạng lưới hệ thống file. – Chỉ số của khối tiếp theo trong list khối trống. – Kích thước của list inode. – Số inode còn trống trong mạng lưới hệ thống file. – Danh sách inode còn trống trong mạng lưới hệ thống file. – Chỉ số inode tiếp theo trong list inode trống trong mạng lưới hệ thống file. – Trường khoá của list khối và inode trống. – Cờ báo hiệu super block đã bị biến hóa. I-nodesTương ứng bảng FAT trong MS-DOS, trình bày bên trong của một File được cho bởimột I-node, tiềm ẩn những thông tin diễn đạt về tàng trữ file trên đĩa và 1 số ít thông tin khác như : người chủ sở hữu, quyền truy nhập, thời hạn truy nhập file. Mỗi I-node dài 64 byte và miêu tảchính xác một file. Inode là một bảng chứa những thông tin cụ thể về một file. Mỗi file đều đượcgắn với một inode qua số hiệu inode. Khi file được sử dụng bởi một tiến trình nào đó thì inodesẽ được đọc vào bộ nhớ và quản trị bởi kernel. Mỗi inode gồm có những thông tin sau : – Quyền sở hữu file : Quyền sở hữu được chia làm hai phần là người sở hữu file và nhómngười chiếm hữu. Người chiếm hữu thường là người tạo ra file đó. Nhóm người sở hữu file, trong UNIX System V thì thường thuộc về nhóm của người tạo ra file đó, còn trong BSDUNIX thì file thuộc về nhóm chiếm hữu thư mục mà file được tạo ra. Quyền sở hữu củangười sử dụng và của nhóm so với mỗi file hoàn toàn có thể đổi khác được ( ví dụ lệnh chown, chgrp của shell ). Quyền sở hữu này cùng với quyền truy nhập của file sẽ quyết dịnh xemai hoàn toàn có thể truy nhập tới tập tin và hoàn toàn có thể truy nhập như thế nào. – Loại file : Khái niệm file của UNIX có khác so với file trong DOS, ta hoàn toàn có thể kể tới mộtsố loại file sau.  Kiểu file thường : Đó là những file văn bản, những file nhị phân, file tài liệu hay là cácfile chương trình25  Thư mục con : Là những file tạo ra cấu trúc phân cấp cho mạng lưới hệ thống file gồm danhsách những file trong nó và hoàn toàn có thể chứa cả những thư mục khác. Nó có một vai trò quantrọng trong việc biến hóa tên file thành số hiệu inode. Thư mục là một file mà toànbộ tài liệu là chuỗi những thành phần ( entry ), mỗi thành phần chứa một số hiệu inode và tênfile tương ứng trong thư mục. Đối với hệ UNIX System V chỉ được cho phép tên file tốiđa dài 14 ký tự còn so với những hệ khác chiều dài này hoàn toàn có thể lớn hơn. Do thư mụclà những file đặc biệt quan trọng nên tuy những file hoàn toàn có thể đọc tài liệu trong thư mục như đối vớicác file thường nhưng kernel giành quyền ghi thư mục để bảo vệ tính chính xáccủa cấu trúc.  Kiểu file đặc biệt quan trọng : Đây là chính sách mà UNIX sử dụng để truy nhập tới những thiết bịvào ra. Mỗi thiết bị vào ra trong UNIX đều được coi như là một file trong hệthống file. Ta hoàn toàn có thể truy nhập tới thiết bị vật lý trải qua việc truy nhập những filenày. Người ta chia kiểu này làm hai loại dựa trên cách truy nhập tới chúng, đó làkiểu ký tự ( character, ví dụ như file ứng với cổng tiếp nối đuôi nhau ) và kiểu khối ( block, vídụ như file ứng với ổ đĩa ).  Kiểu file móc nối ( symbolic link ) : Đây là file chứa đường dẫn tới một file khác. Cơchế này được cho phép ta truy nhập tới một tập tin bằng nhiều tên khác nhau. Thực chấtcủa nó là định nghĩa một file với một tên khác.  Kiểu FIFO : là một hàng đợi ( queue ) theo kiểu first-in-first-out hay còn được gọilà named pipe. FIFO được dùng để trao đổi tài liệu giữa những tiến trình. Loại filenày chỉ có trong hệ UNIX System V mà không có trong BSD UNIX.  Kiểu socket : là một cơ chế tạo ra những đầu cuối ( endpoint ) được cho phép những tiến trìnhliên hệ với nhau. Khái niệm socket sẽ được đề cập tới trong phần sau. – Quyền truy nhập file : Hệ thống bảo vệ file theo 3 lớp người sử dụng là chủ sở hữu, nhóm chiếm hữu và những người sử dụng khác. Mỗi lớp người sử dụng đều có 3 quyền đọc, ghi, và thực thi. Các quyền này được thiết lập tách biệt nhau. Do thư mục là một kiểufile đặc biệt quan trọng nên quyền truy nhập tới thư mục có biến hóa. Quyền đọc được cho phép tiến trìnhđược đọc thư mục, quyền ghi được cho phép tạo ra hoặc xoá bỏ những thành phần của thư mục ( trải qua lệnh creat, mknod, link hay unlink ), quyền triển khai được cho phép tiến trình tìmkiếm tên file trong thư mục. – Thời gian : Lưu trữ thời hạn mà file bị đổi khác gần nhất, thời hạn file được truy cậpgần nhất và thời hạn inode bị biến hóa gần nhất. Số file link : Thể hiện số file có trong cấu trúc cây thư mục .

Source: https://vh2.com.vn
Category : Ứng Dụng