Năm 1965, Viện công nghệ Massachusetts (MIT: Massachusetts Institute of Technology) và Phòng thí nghiệm Bell của hãng AT&T thực hiện dựán xây dựng một hệ điều hành có tên gọi là Multics (MULTiplexed Information and Computing Service) với mục tiêu: tạo lập được một hệ điều hành phủ trên vùng lãnh thổ rộng (hoạt động trên tập các máy tính được kết nối), đa người dùng, có năng lực cao về tính toán và lưu trữ. Dựán nói trên thành công ở mức độ hết sức khiêm tốn và người ta đã biết đến một số khiếm khuyết khó khắc phục của Multics.
214 trang |
Chia sẻ: haohao89 | Lượt xem: 2242 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Giáo trình Hệ điều hành unix, linux chương 1: Giới thiệu chung về linux, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
www.nhipsongcongnghe.net
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
=====================================
HÀ QUANG THỤY
NGUYỄN TRÍ THÀNH
Giáo trình:
HỆ ĐIỀU HÀNH UNIX - LINUX
Dành cho sinh viên ngành Công nghệ thông tin,
Điện tử - Viễn thông, Toán tin ứng dụng
HÀ NỘI - 2004
2
MỤC LỤC
LỜI GIỚI THIỆU ..................................................................................................... 9
CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ LINUX...................................................... 10
1.1. Giới thiệu về UNIX và Linux...................................................................................... 10
1.1.1. Xuất xứ, quá trình tiến hóa và một số đặc trưng của hệ điều hành UNIX ......... 10
1.1.2. Giới thiệu sơ bộ về Linux................................................................................... 13
1.2. Sơ bộ về các thành phần của Linux ........................................................................... 17
1.2.1. Sơ bộ về nhân ..................................................................................................... 18
1.2.2. Sơ bộ về shell ..................................................................................................... 18
1.3. Giới thiệu về sử dụng lệnh trong Linux..................................................................... 20
1.3.1. Các quy ước khi viết lệnh................................................................................... 22
1.3.3. Làm đơn giản thao tác gõ lệnh ........................................................................... 25
1.3.4. Tiếp nối dòng lệnh.............................................................................................. 29
1.4. Trang Man ................................................................................................................... 29
CHƯƠNG 2. THAO TÁC VỚI HỆ THỐNG........................................................... 32
2.1. Quá trình khởi động Linux......................................................................................... 32
2.2. Thủ tục đăng nhập và các lệnh thoát khỏi hệ thống ................................................ 33
2.2.1. Đăng nhập........................................................................................................... 33
2.2.2. Ra khỏi hệ thống................................................................................................. 36
2.2.3. Khởi động lại hệ thống ....................................................................................... 38
2.2.4. Khởi động vào chế độ đồ hoạ ............................................................................. 38
2.3. Lệnh thay đổi mật khẩu .............................................................................................. 42
2.4. Lệnh xem, thiết đặt ngày, giờ hiện tại và xem lịch trên hệ thống ........................... 45
2.4.1 Lệnh xem, thiết đặt ngày, giờ .............................................................................. 45
2.4.2. Lệnh xem lịch .................................................................................................... 47
2.5. Xem thông tin hệ thống .............................................................................................. 48
2.6. Thay đổi nội dung dấu nhắc shell .............................................................................. 49
2.7. Lệnh gọi ngôn ngữ tính toán số học .......................................................................... 50
CHƯƠNG 3. HỆ THỐNG FILE ............................................................................. 53
3.1 Tổng quan về hệ thống file........................................................................................... 53
3.1.1. Một số khái niệm ................................................................................................ 53
3.1.2. Sơ bộ kiến trúc nội tại của hệ thống file............................................................. 57
3.1.3. Một số thuật toán làm việc với inode ................................................................. 63
3.1.4. Hỗ trợ nhiều hệ thống File.................................................................................. 66
3.1.5. Liên kết tượng trưng (lệnh ln) ............................................................................ 71
3
3.2 Quyền truy nhập thư mục và file ................................................................................ 72
3.2.1 Quyền truy nhập .................................................................................................. 72
3.2.2. Các lệnh cơ bản .................................................................................................. 75
3.3 Thao tác với thư mục.................................................................................................... 80
3.3.1 Một số thư mục đặc biệt ...................................................................................... 80
3.3.2 Các lệnh cơ bản về thư mục ................................................................................ 83
3.4. Các lệnh làm việc với file ............................................................................................ 87
3.4.1 Các kiểu file có trong Linux................................................................................ 87
3.4.2. Các lệnh tạo file.................................................................................................. 88
3.4.3 Các lệnh thao tác trên file .................................................................................... 90
3.4.4 Các lệnh thao tác theo nội dung file .................................................................... 98
3.4.5 Các lệnh tìm file ................................................................................................ 106
3.5 Nén và sao lưu các file ................................................................................................ 115
3.5.1 Sao lưu các file (lệnh tar) .................................................................................. 115
3.5.2 Nén dữ liệu ....................................................................................................... 118
CHƯƠNG 4. QUẢN TRỊ QUÁ TRÌNH................................................................. 122
4.1 Quá trình trong UNIX................................................................................................ 122
4.1.1. Sơ bộ về quá trình............................................................................................. 122
4.1.2. Sơ bộ cấu trúc điều khiển của UNIX................................................................ 123
4.1.3. Các hệ thống con trong nhân ............................................................................ 125
4.1.4. Sơ bộ về điều khiển quá trình........................................................................... 129
4.1.5. Trạng thái và chuyển dịch trạng thái ................................................................ 130
4.1.6. Sự ngưng hoạt động và hoạt động trở lại của quá trình.................................... 132
4.1.7. Sơ bộ về lệnh đối với quá trình ........................................................................ 132
4.2. Các lệnh cơ bản.......................................................................................................... 133
4.2.1. Lệnh fg và lệnh bg............................................................................................ 133
4.2.2. Hiển thị các quá trình đang chạy với lệnh ps ................................................... 135
4.2.3. Hủy quá trình với lệnh kill ............................................................................... 137
4.2.4. Cho máy ngừng hoạt động một thời gian với lệnh sleep.................................. 139
4.2.5. Xem cây quá trình với lệnh pstree.................................................................... 139
4.2.6. Lệnh thiết đặt lại độ ưu tiên của quá trình nice và lệnh renice......................... 141
CHƯƠNG 5. QUẢN LÝ TÀI KHOẢN NGƯỜI DÙNG......................................... 142
5.1 Tài khoản người dùng ................................................................................................ 142
5.2 Các lệnh cơ bản quản lý người dùng ........................................................................ 142
5.2.1 File /etc/passwd ................................................................................................ 143
5.2.2 Thêm người dùng với lệnh useradd................................................................... 143
5.2.3 Thay đổi thuộc tính người dùng ........................................................................ 146
5.2.4 Xóa bỏ một người dùng (lệnh userdel).............................................................. 147
4
5.3 Các lệnh cơ bản liên quan đến nhóm người dùng ................................................... 148
5.3.1 Nhóm người dùng và file /etc/group ................................................................. 148
5.3.2 Thêm nhóm người dùng .................................................................................... 149
5.3.3 Sửa đổi các thuộc tính của một nhóm người dùng (lệnh groupmod) ................ 149
5.3.4 Xóa một nhóm người dùng (lệnh groupdel) ...................................................... 150
5.4 Các lệnh cơ bản khác có liên quan đến người dùng................................................ 150
5.4.1 Đăng nhập với tư cách một người dùng khác khi dùng lệnh su ....................... 150
5.4.2 Xác định người dùng đang đăng nhập (lệnh who) ............................................ 151
5.4.3 Xác định các quá trình đang được tiến hành (lệnh w)....................................... 153
CHƯƠNG 6. TRUYỀN THÔNG VÀ MẠNG UNIX-LINUX................................... 154
6.1. Lệnh truyền thông ..................................................................................................... 154
6.1.1. Lệnh write......................................................................................................... 154
6.1.2. Lệnh mail.......................................................................................................... 155
6.1.3. Lệnh talk ........................................................................................................... 156
6.2 Cấu hình Card giao tiếp mạng .................................................................................. 156
6.3. Các dịch vụ mạng ...................................................................................................... 159
6.3.1 Hệ thông tin mạng NIS...................................................................................... 159
6.4 Hệ thống file trên mạng ............................................................................................. 164
6.4.1 Cài đặt NFS ....................................................................................................... 165
6.4.2 Khởi động và dừng NFS.................................................................................... 166
6.4.3 Cấu hình NFS server và Client .......................................................................... 167
6.4.4 Sử dụng mount................................................................................................... 167
6.4.5 Unmount ............................................................................................................ 168
6.4.6 Mount tự động qua tệp cấu hình........................................................................ 168
CHƯƠNG 7. LẬP TRÌNH SHELL VÀ LẬP TRÌNH C TRÊN LINUX ................... 170
7.1. Cách thức pipes và các yếu tố cơ bản lập trình trên shell ..................................... 170
7.1.1. Cách thức pipes ................................................................................................ 170
7.1.2. Các yếu tố cơ bản để lập trình trong shell ........................................................ 171
7.2. Một số lệnh lập trình trên shell ................................................................................ 175
7.2.1. Sử dụng các toán tử bash .................................................................................. 175
7.2.2. Điều khiển luồng .............................................................................................. 179
7.2.3 Các toán tử định hướng vào ra........................................................................... 193
7.2.4. Hiện dòng văn bản............................................................................................ 194
7.2.5. Lệnh read độc dữ liệu cho biến người dùng ..................................................... 194
7.2.6. Lệnh set ............................................................................................................ 195
7.2.7. Tính toán trên các biến ..................................................................................... 196
7.2.8. Chương trình ví dụ............................................................................................ 196
5
7.3. Lập trình C trên UNIX ............................................................................................. 197
7.3.1. Trình biên dịch gcc ........................................................................................... 197
7.3.2. Công cụ GNU make ......................................................................................... 201
7.3.3. Làm việc với file............................................................................................... 203
7.3.4. Thư viện liên kết............................................................................................... 211
7.3.5 Các công cụ cho thư viện ................................................................................. 220
TÀI LIỆU THAM KHẢO ...................................................................................... 223
CHÚ THÍCH MỘT SỐ THUẬT NGỮ ................................................................... 224
PHỤ LỤC A. QUÁ TRÌNH CÀI ĐẶT REDHAT-LINUX ........................................ 227
AA. Cài đặt phiên bản RedHat 6.2 ................................................................................. 228
AA.1. Tạo đĩa mềm khởi động ................................................................................... 228
AA.2. Phân vùng lại ổ đĩa DOS/Windows hiện thời.................................................. 228
AA.3. Các bước cài đặt (bản RedHat 6.2 và khởi động từ CD-ROM)....................... 229
AA.4. Các hạn chế về phần cứng đối với Linux ........................................................ 239
PHỤ LỤC B. TRÌNH SOẠN THẢO VIM .............................................................. 242
B.1 Khởi động vim............................................................................................................ 244
B.1.1 Mở chương trình soạn thảo vim........................................................................ 244
B.1.2. Tính năng mở nhiều cửa sổ.............................................................................. 245
B.1.3. Ghi và thoát trong vim ..................................................................................... 246
B.2. Di chuyển trỏ soạn thảo trong Vim ......................................................................... 247
B.2.1. Di chuyển trong văn bản.................................................................................. 247
B.2.2. Di chuyển theo các đối tượng văn bản............................................................. 248
B.2.3. Cuộn màn hình................................................................................................. 248
B.3. Các thao tác trong văn bản ...................................................................................... 249
B.3.1. Các lệnh chèn văn bản trong vim..................................................................... 249
B.3.2. Các lệnh xoá văn bản trong vim ...................................................................... 250
B.3.3. Các lệnh khôi phục văn bản trong vim ............................................................ 250
6.3.4. Các lệnh thay thế văn bản trong vim ................................................................ 250
B.3.5. Sao chép và di chuyển văn bản trong vim ....................................................... 252
B.3.6. Tìm kiếm và thay thế văn bản trong vim ......................................................... 253
B.3.7. Đánh dấu trong vim ......................................................................................... 254
B.3.8. Các phím sử dụng trong chế độ chèn............................................................... 255
B.3.9. Một số lệnh trong chế độ ảo............................................................................. 256
B.3.10. Các lệnh lặp ................................................................................................... 256
B.4. Các lệnh khác ............................................................................................................ 257
B.4.1. Cách thực hiện các lệnh bên trong Vim........................................................... 257
B.4.2. Các lệnh liên quan đến file............................................................................... 257
6
PHỤ LỤC C. MIDNIGHT COMMANDER ............................................................ 259
C.1. Giới thiệu về Midnight Commander (MC) ............................................................ 259
C.2. Khởi động MC .......................................................................................................... 259
C.3. Giao diện của MC ..................................................................................................... 259
C.4. Dùng chuột trong MC .............................................................................................. 260
C.5. Các thao tác bàn phím.............................................................................................. 261
C.6. Thực đơn thanh ngang (menu bar)......................................................................... 263
C.7. Các phím chức năng ................................................................................................. 266
C.8. Bộ soạn thảo của Midnight Commander................................................................ 267
PHỤ LỤC D. SAMBA.......................................................................................... 270
D.1 Cài đặt Samba............................................................................................................ 270
D.2 Các thành phần của Samba ...................................................................................... 271
D.3 File cấu hình Samba .................................................................................................. 272
D.4 Các phần đặc biệt của file cấu hình Samba............................................................. 275
D.5 Quản lý người dùng trong Samba............................................................................ 282
D.6 Cách sử dụng Samba từ các máy trạm.................................................................... 284
D.6.1 Cách sử dụng từ các máy trạm là Linux ........................................................... 284
D.6.2 Cách sử dụng từ các máy trạm là Windows ..................................................... 287
7
LỜI GIỚI THIỆU
Trong hơn mười năm trở lại đây hệ điều hành Linux đã
8
CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ LINUX
1.1. Giới thiệu về UNIX và Linux
1.1.1. Xuất xứ, quá trình tiến hóa và một số đặc trưng của hệ điều hành UNIX
Năm 1965, Viện công nghệ Massachusetts (MIT: Massachusetts Institute of
Technology) và Phòng thí nghiệm Bell của hãng AT&T thực