Trong tác phẩm nổi tiếng thế giới của nhà văn Nga Lev Tolstoi “Chiến tranh vàhoà bình” có đưa ra một ví dụ để minh hoạ cho suy nghĩ của tác giả về vai trò củanhững người có tiếng (cụ thể là Napoleon và Alecxandr đệ nhất) và quần chúngtrong lịch sử nói chung cũng như trong chiến tranh ở châu Âu những năm đầu thế kỷ XIX. Nhân vật chính trong ví dụ minh hoạ này là con ong. Đối với cậu bé vừa bị ong cắn thì mục đích của con ong ở chỗ cắn người. Đối với một nhà thơthì mục đích của con ong là thu vào mình hương vị của những bông hoa. Đối với người nuôi ong thì mục đích ong là thu thập mật ong
212 trang |
Chia sẻ: haohao89 | Lượt xem: 2040 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Lập trình phần mềm Linus, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Tự học sử dụng Linux
Phan Vĩnh Thịnh
Phiên bản: 0.9.6
Ngày 14 tháng 2 năm 2007
Dành cho người dùng mới và rất mới...
Mục lục
Lời mở đầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 HĐH Linux: lịch sử và các bản phân phối 3
1.1 Thế nào là HĐH nói chung và Linux nói riêng . . . . . . . . . . . . 3
1.1.1 Các hệ điều hành dạng UNIX . . . . . . . . . . . . . . . . . . 3
1.1.2 Một chút về lịch sử . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 Đặc điểm chính của HĐH Linux . . . . . . . . . . . . . . . . 7
1.2 Bản phân phối Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Yêu cầu đối với máy tính . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 Lấy Linux ở đâu? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 Cài đặt hệ điều hành Linux 14
2.1 Chuẩn bị cài đặt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Phòng xa và những lời khuyên . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Phân vùng trên đĩa và quá trình khởi động . . . . . . . . . . . . . . 17
2.3.1 Thế nào là cấu trúc “hình học của đĩa” . . . . . . . . . . . . . 17
2.3.2 Phân vùng và bảng phân vùng của đĩa . . . . . . . . . . . . . 18
2.3.3 Quá trình khởi động các HĐH của công ty Microsoft . . . . . 20
2.3.4 Vấn đề với các đĩa lớn . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Lựa chọn trình khởi động . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1 Trình khởi động GRUB . . . . . . . . . . . . . . . . . . . . . . 23
2.4.2 Trình khởi động LILO . . . . . . . . . . . . . . . . . . . . . . 24
2.4.3 Các trình khởi động khác . . . . . . . . . . . . . . . . . . . . . 26
2.4.4 Các phương án khởi động . . . . . . . . . . . . . . . . . . . . 27
2.5 Chuẩn bị các phân vùng trên đĩa . . . . . . . . . . . . . . . . . . . . 27
2.5.1 Lời khuyên khi tạo phân vùng . . . . . . . . . . . . . . . . . . 27
2.5.2 Chương trình để phân chia ổ đĩa . . . . . . . . . . . . . . . . 30
2.6 Windows NT và Linux: khởi động qua NT OS Loader . . . . . . . . 31
2.7 Sử dụng trình khởi động GRUB . . . . . . . . . . . . . . . . . . . . . 34
2.7.1 Cài đặt GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.7.2 Cấu hình GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.8 Sử dụng trình khởi động LILO . . . . . . . . . . . . . . . . . . . . . 36
2.8.1 Cài đặt và cấu hình LILO . . . . . . . . . . . . . . . . . . . . 36
2.8.2 Cài đặt các hệ điều hành khác sau Linux . . . . . . . . . . . 39
2.8.3 Chuyển thư mục /boot lên phân vùng DOS . . . . . . . . . . 39
2.9 Khởi động Linux từ MS-DOS bằng loadlin.exe . . . . . . . . . . . . 40
iv MỤC LỤC
3 Khởi động Linux lần đầu 43
3.1 Khởi động HĐH Linux . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Đăng nhập vào hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3 Console, terminal ảo và shell . . . . . . . . . . . . . . . . . . . . . . 46
3.4 Soạn thảo dòng lệnh. Lịch sử lệnh . . . . . . . . . . . . . . . . . . . 49
3.5 Ngừng làm việc với Linux . . . . . . . . . . . . . . . . . . . . . . . . 51
3.6 Trợ giúp khi dùng Linux . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.6.1 Các nguồn thông tin trợ giúp . . . . . . . . . . . . . . . . . . 53
3.6.2 Các trang trợ giúp man . . . . . . . . . . . . . . . . . . . . . . 54
3.6.3 Câu lệnh info . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.6.4 Câu lệnh help . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.6.5 Tài liệu bản phân phối và ứng dụng . . . . . . . . . . . . . . 56
3.6.6 Câu lệnh xman . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.6.7 Câu lệnh helptool . . . . . . . . . . . . . . . . . . . . . . . . 57
3.6.8 Sách và Internet . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4 Làm quen với hệ thống tập tin ext3fs 60
4.1 Tập tin và tên của chúng . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2 Thư mục . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3 Công dụng của các thư mục chính . . . . . . . . . . . . . . . . . . . . 65
4.4 Dạng tập tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.1 Các tập tin thiết bị . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.2 Các ống có tên (pipes) . . . . . . . . . . . . . . . . . . . . . . . 72
4.4.3 Các socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.4.4 Liên kết mềm . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.5 Quyền truy cập đến tập tin và thư mục . . . . . . . . . . . . . . . . . 73
4.6 Các câu lệnh cơ bản để làm việc với tập tin và thư mục . . . . . . . 79
4.6.1 Câu lệnh chown và chgrp . . . . . . . . . . . . . . . . . . . . 80
4.6.2 Câu lệnh mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.6.3 Câu lệnh cat . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.6.4 Câu lệnh cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.6.5 Câu lệnh mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.6.6 Câu lệnh rm và rmdir . . . . . . . . . . . . . . . . . . . . . . 82
4.6.7 Câu lệnh more và less . . . . . . . . . . . . . . . . . . . . . 83
4.6.8 Câu lệnh tìm kiếm find và mẫu tên tập tin . . . . . . . . . . 83
4.6.9 Câu lệnh split . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.6.10 So sánh các tập tin và lệnh patch . . . . . . . . . . . . . . . 87
4.7 Các câu lệnh lưu trữ và nén tập tin . . . . . . . . . . . . . . . . . . . 88
4.7.1 Chương trình tar . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.7.2 Chương trình gzip . . . . . . . . . . . . . . . . . . . . . . . . 91
4.7.3 Chương trình bzip2 . . . . . . . . . . . . . . . . . . . . . . . 92
4.7.4 Sử dụng kết hợp tar với gzip và bzip2 . . . . . . . . . . . . 93
4.8 Tạo và gắn các hệ thống tập tin . . . . . . . . . . . . . . . . . . . . . 95
MỤC LỤC v
5 Bash 101
5.1 Hệ vỏ là gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.2 Các ký tự đặc biệt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3 Thực thi các câu lệnh . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.3.1 Thao tác ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.3.2 Thao tác & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3.3 Thao tác && và || . . . . . . . . . . . . . . . . . . . . . . . . 104
5.4 Đầu vào/đầu ra tiêu chuẩn . . . . . . . . . . . . . . . . . . . . . . . . 104
5.4.1 Dòng dữ liệu vào – ra . . . . . . . . . . . . . . . . . . . . . . . 104
5.4.2 Lệnh echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.4.3 Lệnh cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.5 Chuyển hướng đầu vào/đầu ra, đường ống và bộ lọc . . . . . . . . . . 106
5.5.1 Sử dụng >, > . . . . . . . . . . . . . . . . . . . . . . . . 106
5.5.2 Sử dụng | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.5.3 Bộ lọc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.6 Tham biến và các biến số. Môi trường của hệ vỏ . . . . . . . . . . . . 109
5.6.1 Các dạng tham biến khác nhau . . . . . . . . . . . . . . . . . 110
5.6.2 Dấu nhắc của hệ vỏ . . . . . . . . . . . . . . . . . . . . . . . . 112
5.6.3 Biến môi trường PATH . . . . . . . . . . . . . . . . . . . . . . . 113
5.6.4 Biến môi trường IFS . . . . . . . . . . . . . . . . . . . . . . . 113
5.6.5 Thư mục hiện thời và thư mục cá nhân . . . . . . . . . . . . 114
5.6.6 Câu lệnh export . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.7 Khai triển biểu thức . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.7.1 Khai triển dấu ngoặc . . . . . . . . . . . . . . . . . . . . . . . 115
5.7.2 Thay thế dấu ngã (Tilde Expansion) . . . . . . . . . . . . . . 115
5.7.3 Phép thế các tham biến và biến số . . . . . . . . . . . . . . . 116
5.7.4 Phép thế các câu lệnh . . . . . . . . . . . . . . . . . . . . . . . 116
5.7.5 Phép thế số học (Arithmetic Expansion) . . . . . . . . . . . . 116
5.7.6 Phân chia từ (word splitting) . . . . . . . . . . . . . . . . . . 117
5.7.7 Khai triển các mẫu tên thư mục và tập tin . . . . . . . . . . 117
5.7.8 Xóa các ký tự đặc biệt . . . . . . . . . . . . . . . . . . . . . . . 118
5.8 Shell — một ngôn ngữ lập trình . . . . . . . . . . . . . . . . . . . . . 118
5.8.1 Toán tử if và test (hoặc [ ]) . . . . . . . . . . . . . . . . . . 118
5.8.2 Toán tử test và điều kiện của biểu thức . . . . . . . . . . . . 119
5.8.3 Toán tử case . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.8.4 Toán tử select . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.8.5 Toán tử for . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.8.6 Toán tử while và until . . . . . . . . . . . . . . . . . . . . . 124
5.8.7 Các hàm số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.8.8 Tham số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.8.9 Biến nội bộ (local) . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.9 Script của hệ vỏ và lệnh source . . . . . . . . . . . . . . . . . . . . . 126
5.10 Câu lệnh sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
vi MỤC LỤC
6 Sử dụng Midnight Commander 128
6.1 Cài đặt chương trình Midnight Commander . . . . . . . . . . . . . . 128
6.2 Vẻ ngoài của màn hình Midnight Commander . . . . . . . . . . . . 129
6.3 Trợ giúp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.4 Sử dụng chuột . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.5 Điều khiển các bảng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.5.1 Dạng danh sách tập tin . . . . . . . . . . . . . . . . . . . . . . 133
6.5.2 Những chế độ hiển thị khác . . . . . . . . . . . . . . . . . . . 136
6.5.3 Các tổ hợp phím điều khiển bảng . . . . . . . . . . . . . . . . 137
6.6 Các phím chức năng và thực đơn Tập tin . . . . . . . . . . . . . . . . 139
6.7 Mẫu tập tin khi sao chép hoặc đổi tên . . . . . . . . . . . . . . . . . 141
6.8 Thông báo khi sao chép và di chuyển tập tin . . . . . . . . . . . . . . 143
6.9 Dòng lệnh của hệ vỏ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.10 Trình đơn Câu lệnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.11 Cấu hình Midnight Commander . . . . . . . . . . . . . . . . . . . . . 153
6.12 Kết nối tới máy ở xa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.12.1 Kết nối FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.12.2 Kết nối Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7 Giao diện đồ hoạ 162
7.1 X.Org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
7.2 Một chút về hệ thống hình ảnh của máy tính . . . . . . . . . . . . . 167
7.3 Cấu hình chương trình chủ X . . . . . . . . . . . . . . . . . . . . . . 169
7.3.1 Thu thập thông tin cần thiết . . . . . . . . . . . . . . . . . . . 170
7.3.2 Cấu trúc của tập tin cấu hình X . . . . . . . . . . . . . . . . . 171
7.3.3 Thử cấu hình /etc/X11/xorg.conf . . . . . . . . . . . . . . . . . 178
7.4 Khởi động hệ thống X Window . . . . . . . . . . . . . . . . . . . . . . 182
7.4.1 Lựa chọn trình quản lý cửa sổ . . . . . . . . . . . . . . . . . . 185
7.4.2 Môi trường làm việc KDE và GNOME . . . . . . . . . . . . . 187
7.4.3 Môi trường làm việc Xfce . . . . . . . . . . . . . . . . . . . . . 188
7.4.4 Sử dụng trình quản lý màn hình . . . . . . . . . . . . . . . . 188
8 Làm việc trong môi trường KDE 190
8.1 Bắt đầu làm việc với KDE . . . . . . . . . . . . . . . . . . . . . . . . 190
8.1.1 Đăng nhập vào KDE . . . . . . . . . . . . . . . . . . . . . . . 190
8.1.2 Vẻ ngoài của KDE . . . . . . . . . . . . . . . . . . . . . . . . . 191
8.1.3 Trình đơn KMenu . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.1.4 Trung tâm điều khiển KDE . . . . . . . . . . . . . . . . . . . 195
8.1.5 Thay đổi vẻ ngoài . . . . . . . . . . . . . . . . . . . . . . . . . 198
8.1.6 Điều khiển phiên làm việc . . . . . . . . . . . . . . . . . . . . 201
Danh sách hình vẽ
3.1 Màn hình khởi động của GRUB . . . . . . . . . . . . . . . . . . . . . 43
6.1 Midnight Commander tiếng Việt . . . . . . . . . . . . . . . . . . . . 129
6.2 Màn hình Midnight Commander . . . . . . . . . . . . . . . . . . . . 130
6.3 Hộp thoại chọn định dạng hiển thị . . . . . . . . . . . . . . . . . . . 133
6.4 Hộp thoại sắp xếp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.5 Chế độ thông tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.6 Chế độ cây thư mục . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.7 Chế độ xem nhanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.8 Hộp thoại đổi tên tập tin . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.9 Cửa sổ hỏi lại . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.10 Cửa sổ yêu cầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.11 Dòng nhập vào địa chỉ IP của máy chủ FTP . . . . . . . . . . . . . . 147
6.12 Bắt đầu tìm kiếm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.13 Đang tìm kiếm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.14 Tìm kiếm tất cả các liên kết mềm . . . . . . . . . . . . . . . . . . . . 151
6.15 Hộp thoại danh sách thư mục thường dùng . . . . . . . . . . . . . . 152
6.16 Điều khiển công việc nền sau . . . . . . . . . . . . . . . . . . . . . . 153
6.17 Cấu hình Midnight Commander . . . . . . . . . . . . . . . . . . . . . 154
6.18 Thay đổi vẻ ngoài của Midnight Commander . . . . . . . . . . . . . 156
6.19 Thay đổi bit hiển thị của Midnight Commander . . . . . . . . . . . . 157
6.20 Thiết lập các hộp thoại hỏi lại người dùng . . . . . . . . . . . . . . . 158
6.21 Thử và cấu hình các phím . . . . . . . . . . . . . . . . . . . . . . . . 158
6.22 Thiết lập hệ thống tập tin ảo . . . . . . . . . . . . . . . . . . . . . . . 159
7.1 Hệ thống đồ hoạ X Window . . . . . . . . . . . . . . . . . . . . . . . . 164
7.2 Cấu hình X.org qua xorgcfg . . . . . . . . . . . . . . . . . . . . . . 172
7.3 Chương trình xvidtune . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.4 Chương trình xvidtune “không chịu” chỉnh hình ảnh . . . . . . . . 181
7.5 Môi trường làm việc Xfce . . . . . . . . . . . . . . . . . . . . . . . . . 189
8.1 Màn hình đăng nhập KDM . . . . . . . . . . . . . . . . . . . . . . . . 191
8.2 Vẻ ngoài của KDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.3 Hộp thoại chạy chương trình . . . . . . . . . . . . . . . . . . . . . . . 193
8.4 Trợ giúp có ích tooltips . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.5 Trình đơn chính của KDE . . . . . . . . . . . . . . . . . . . . . . . . 195
8.6 Tìm kiếm trong trình đơn chính của KDE . . . . . . . . . . . . . . . 196
8.7 Trình Thiết lập cá nhân của KDE . . . . . . . . . . . . . . . . . . . . 197
viii DANH SÁCH HÌNH VẼ
8.8 Cài đặt phông chữ mới . . . . . . . . . . . . . . . . . . . . . . . . . . 198
8.9 Chọn phông chữ dùng cho text, trình đơn, . . . . . . . . . . . . . . . . 198
8.10 Chọn phông chữ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
8.11 Cảnh báo khi có thay đổi chưa áp dụng . . . . . . . . . . . . . . . . . 199
8.12 Trình đơn của thanh panel . . . . . . . . . . . . . . . . . . . . . . . . 200
8.13 Trình đơn bối cảnh của nút . . . . . . . . . . . . . . . . . . . . . . . 200
8.14 Cấu hình các thanh panel . . . . . . . . . . . . . . . . . . . . . . . . 201
8.15 Thay đổi màn hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
8.16 Soạn thảo trình đơn chính . . . . . . . . . . . . . . . . . . . . . . . . 202
Danh sách bảng
1.1 Yêu cầu đối với phần cứng . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Cấu trúc của sector khởi động chính . . . . . . . . . . . . . . . . . . 20
2.2 Nhu cầu sử dụng không gian đĩa của HĐH . . . . . . . . . . . . . . 28
3.1 Những câu lệnh đơn giản của Linux . . . . . . . . . . . . . . . . . . 46
3.2 Những phím soạn thảo dòng lệnh . . . . . . . . . . . . . . . . . . . . 50
3.3 Tổ hợp phím điều khiển lịch sử lệnh . . . . . . . . . . . . . . . . . . 52
3.4 Các phần chính của trợ giúp man . . . . . . . . . . . . . . . . . . . . 54
3.5 Phím sử dụng để xem trang man . . . . . . . . . . . . . . . . . . . . . 55
4.1 Cấu trúc thư mục của Linux . . . . . . . . . . . . . . . . . . . . . . . 66
4.2 Những tập tin thiết bị chính . . . . . . . . . . . . . . . . . . . . . . . 71
4.3 Những tùy chọn chính của lệnh cp . . . . . . . . . . . . . . . . . . . 81
4.4 Tiêu chí tìm kiếm của câu lệnh find. . . . . . . . . . . . . . . . . . . 85
4.5 Những tùy chọn chính của tar . . . . . . . . . . . . . . . . . . . . . 89
4.6 Những tùy chọn chính của chương trình gzip . . . . . . . . . . . . 92
4.7 Những tùy chọn chính của chương trình bzip2 . . . . . . . . . . . . 94
4.8 Những tùy chọn chính của câu lệnh mount . . . . . . . . . . . . . . 99
5.1 Các câu lệnh bộ lọc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.2 Thay thế các tham biến đặc biệt . . . . . . . . . . . . . . . . . . . . . 111
5.3 Ký tự xác định dạng dấu nhắc . . . . . . . . . . . . . . . . . . . . . . 112
5.4 Các ký tự tạo mẫu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.1 Các tổ hợp phím di chuyển dùng chung . . . . . . . . . . . . . . . . . 131
6.2 Di chuyển trong trình xem tập tin . . . . . . . . . . . . . . . . . . . . 131
6.3 Di chuyển khi xem trợ giúp . . . . . . . . . . . . . . . . . . . . . . . 132
6.4 Các phím chức năng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.5 Các lệnh điều khiển dòng nhập vào . . . . . . . . . . . . . . . . . . . 148
Lời mở đầu
Trong tác phẩm nổi tiếng thế giới của nhà văn Nga Lev Tolstoi “Chiến tranh và
hoà bình” có đưa ra một ví dụ để minh hoạ cho suy nghĩ của tác giả về vai trò của
những người có tiếng (cụ thể là Napoleon và Alecxandr đệ nhất) và quần chúng
trong lịch sử nói chung cũng như trong chiến tranh ở châu Âu những năm đầu
thế kỷ XIX. Nhân vật chính trong ví dụ minh hoạ này là con ong. Đối với cậu bé
vừa bị ong cắn thì mục đích của con ong ở chỗ cắn người. Đối với một nhà thơ
thì mục đích của con ong là thu vào mình hương vị của những bông hoa. Đối với
người nuôi ong thì mục đích ong là thu thập mật ong. Người nuôi ong có cái nhìn
sâu hơn thì cho rằng ong thu thập bụi phấn hoa để nuôi ong con và tạo ong chúa,
như vậy mục đích của nó là duy trì nòi giống. Nhà sinh học khi quan sát thấy
ong thụ phấn cho hoa thì quyết định đây chính là mục đích của loài ong. Người
khác quan sát quá trình di cư của thực vật thì cho rằng ong tham gia vào quá
trình này và là mục đích của nó. Tất nhiên mục đích cuối cùng của ong không
phải là những cái trên nằm riêng biệt mà là tất cả chúng cộng lại, và còn cộng
thêm những gì mà tạm thời bộ óc quan sát hạn chế của con người còn chưa tìm
ra.
Microsoft nhìn thấy ở Linux khả năng cạnh tranh lớn và nhiều khi coi Linux
là kẻ thù của mình. Nhiều tổ chức chính phủ cũng như phi chính phủ nhìn thấy
ở Linux một hệ điều hành nhiều hứa hẹn và hỗ trợ cho Linux. Những nước còn
nghèo tìm thấy ở Linux một cách giải quyết cho vấn đề kinh tế. Một số công ty
đã thấy được ở Linux một nguồn lợi lớn và phát triển công việc kinh doanh của
mình từ hệ điều hành này. Đối với Linus Torvalds, Linux là niềm đam mê và
“Just for fun”. Các nhà lập trình nhân (kernel) tìm thấy ở Linux sự quyến rũ và
công việc phát triển của họ. Người dùng thì thấy ở Linux một hệ thống mạnh,
thuận tiện, có thể điều chỉnh theo ý muốn của mình v.v. . .
Linux là hệ điều hành phát triển mạnh. Những năm đầu thập kỷ thứ chín
của thế kỷ XX Linux mới chỉ là đứa con tinh thần chưa biết nói của Torvalds.
Chỉ trong vài năm gần đây đã có nhiều bản phân phối Linux chiếm lĩnh được môi
trường máy chủ cũng như máy để bàn của người dùng. Trên thị trường máy chủ
hiện thời chỉ có một