Download miễn phí Tài liệu Cơ bản về chứng chỉ LPI





Mục lục
1 Trước khi bắt đầu 1
1.1 Về tài liệu này . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Về tác giả . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Cơ bản về Linux 3
2.1 Giới thiệu về bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Hệ vỏ (shell) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2 Có phải bạn đang chạy bash không? . . . . . . . . . . . . . . . . . 3
2.1.3 Về bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.4 Sử dụng cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.5 Đường dẫn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.6 Đường dẫn tuyệt đối . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.7 Sử dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.8 Ví dụ đường dẫn tương đối . . . . . . . . . . . . . . . . . . . . . . 6
2.1.9 Thế còn . là gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.10 cd và thư mục nhà . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.11 Thư mục nhà của những người dùng khác . . . . . . . . . . . . . . 7
2.2 Sử dụng các câu lệnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Giới thiệu ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2 Liệt kê chi tiết . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.3 Xem thư mục . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.4 liệt kê inode và liệt kê đệ qui (recursive) . . . . . . . . . . . . . . 8
2.2.5 Inode là gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.6 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.7 mkdir -p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.8 touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.9 echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.10 echo và sự chuyển hướng . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.11 cat và cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.12 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Tạo liên kết và xóa tệp tin . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1 Liên kết cứng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.2 Liên kết tượng trưng . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.3 Sâu hơn về liên kết tượng trưng . . . . . . . . . . . . . . . . . . . 14
2.3.4 rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.5 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.6 rm và thư mục . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Sử dụng các ký tự thay mặt (wildcard) . . . . . . . . . . . . . . . . . . . . 17
2.4.1 Giới thiệu về ký tự thay mặt . . . . . . . . . . . . . . . . . . . . . 17
2.4.2 Hiểu về không tương ứng . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.3 Cú pháp đại diện: * . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.4 Cú pháp đại diện: ? . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.5 Cú pháp đại diện: [] . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.6 Cú pháp đại diện: [!] . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.7 Sâu hơn về cú pháp thay mặt . . . . . . . . . . . . . . . . . . . . . 20
2.4.8 Ngoặc đơn "gặp" ngoặc kép . . . . . . . . . . . . . . . . . . . . . 20
2.5 Tổng kết và các nguồn tham khảo . . . . . . . . . . . . . . . . . . . . . . 21
2.5.1 Tổng kết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.2 Các nguồn tham khảo . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.3 Ý kiến độc giả . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.4 Thay cho lời kết cuốn 1 . . . . . . . . . . . . . . . . . . . . . . . 21
3 Cơ bản về quản trị Linux 23
3.1 Biểu thức chính quy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.1 Biểu thức chính quy là gì? . . . . . . . . . . . . . . . . . . . . . . 23
3.1.2 So sánh với ký tự thay mặt (glob) . . . . . . . . . . . . . . . . . . . 23
3.1.3 Chuỗi con đơn giản . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.4 Hiểu về chuỗi con đơn giản . . . . . . . . . . . . . . . . . . . . . 24
3.1.5 Ký tự mêta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.6 Sử dụng [] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.7 Sử dụng [ˆ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.8 Cú pháp khác . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.9 Ký tự mêta "*" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.10 Đầu và cuối dòng . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.11 Regex cho cả dòng . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 FHS và tìm tệp tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.1 FHS - Tiêu chuẩn hệ thống tập tin dạng cây . . . . . . . . . . . . . 27
3.2.2 Hai cấp bậc FHS độc lập . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.3 Hệ thống bậc hai tại /usr . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.4 Tìm tệp tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.5 Đường dẫn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.6 Sửa đổi PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.7 Tất cả về "which" . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.8 "which -a" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.9 whereis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.10 find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.11 find và ký tự thay mặt . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.12 Lờ đi kiểu chữ với find . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.13 find và biểu thức chính quy . . . . . . . . . . . . . . . . . . . . . 31
3.2.14 find và kiểu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.15 find và mtimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.16 Tùy chọn -daystart . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.17 Tùy chọn -size . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.18 Gia công tệp tin tìm thấy . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.19 locate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.20 Sử dụng updatedb . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.21 slocate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Quản lý tiến trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.1 Khởi động xeyes . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.2 Dừng một tiến trình . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.3 fg và bg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.4 Sử dụng "&" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.5 Nhiều tiến trình nền sau . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.6 Giới thiệu tín hiệu . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.7 SIGTERM và SIGINT . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.8 "Diệt tận gốc" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.9 nohup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.10 Sử dụng ps liệt kê tiến trình . . . . . . . . . . . . . . . . . . . . . 37
3.3.11 Hiển thị cây và rừng . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.12 Tùy chọn "u" và "l" . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.13 Sử dụng "top" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.14 nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.15 renice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4 Gia công văn bản . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.1 Ôn lại chuyển hướng . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.2 Một ví dụ ống . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.3 Ống giải nén . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.4.4 Một ống dài hơn . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.4.5 Gió lốc gia công văn bản bắt đầu . . . . . . . . . . . . . . . . . . 41
3.4.6 cat, sort, và uniq . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4.7 wc, head, và tail . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4.8 tac, expand, và unexpand . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.9 cut, nl, và pr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.10 tr, awk, và sed . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.11 od, split, và fmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4.12 Paste, join, và tee . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4.13 Gió lốc kết thúc! Chuyển hướng . . . . . . . . . . . . . . . . . . . 43
3.4.14 Sử dụng » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5 Môđun nhân . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.1 Làm quen với "uname" . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.2 Thêm về đầu ra uname . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.3 Bản phát hành nhân . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5.4 Nhân . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5.5 Giới thiệu môđun nhân . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5.6 Bản tóm tắt môđun nhân . . . . . . . . . . . . . . . . . . . . . . . 45
3.5.7 lsmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5.8 Liệt kê môđun . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.5.9 Môđun third-party . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.5.10 depmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.5.11 Làm thế nào để lấy môđun . . . . . . . . . . . . . . . . . . . . . . 46
3.5.12 Sử dụng depmod . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.5.13 Định vị môđun nhân . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.5.14 insmod và modprobe . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.5.15 Thực thi rmmod và modprobe . . . . . . . . . . . . . . . . . . . . 48
3.5.16 Túi khôn: modinfo và modules.conf . . . . . . . . . . . . . . . . . 48
3.5.17 modules.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6 Tổng kết và các nguồn tham khảo . . . . . . . . . . . . . . . . . . . . . . 48
3.6.1 Tổng kết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6.2 Tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.6.3 Ý kiến độc giả . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.6.4 Thay cho lời kết . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4 Quản trị hệ thống Linux 51
5 Quản trị hệ thống linux nâng cao 52
5.1 Hệ thống tập tin, phân vùng, và các thiết bị khối . . . . . . . . . . . . . . 52
5.1.1 Giới thiệu về thiết bị khối . . . . . . . . . . . . . . . . . . . . . . 52
5.1.2 Các lớp trừu tượng . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1.3 Phân vùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1.4 Giới thiệu về công cụ fdisk . . . . . . . . . . . . . . . . . . . . . . 53
5.1.5 Sử dụng fdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.1.6 Thiết bị khối và tổng quan về việc chia phân vùng . . . . . . . . . 54
5.1.7 Loại phân vùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.8 Sử dụng fdisk để thiết lập các phân vùng . . . . . . . . . . . . . . 54
5.1.9 Đĩa cứng sau khi được phân vùng sẽ thế nào . . . . . . . . . . . . 54
5.2 Khởi động hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2.1 About this sectin . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2.2 Bảng ghi khởi động chính - MBR . . . . . . . . . . . . . . . . . . 57
5.2.3 Qúa trình khởi động của hạt nhân . . . . . . . . . . . . . . . . . . 58
5.2.4 Chương trình /sbin/init . . . . . . . . . . . . . . . . . . . . . . . . 58
5.2.5 Digging in: LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.6 Digging in: GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.7 Thông tin dmesg . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.8 Thông tin trong /var/log/messages . . . . . . . . . . . . . . . . . . 59
5.2.9 Các thông tin khác . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.10 Cấp thựnc tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.11 Single-user mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.12 Understanding single-user mode . . . . . . . . . . . . . . . . . . . 59
5.2.13 Các cấp thực thi - Runlevels . . . . . . . . . . . . . . . . . . . . . 59
5.2.14 Công cụ telinit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.15 Runlevel etiquette . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.16 "Now" và halt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.17 Cấp độ thực thi ngầm định . . . . . . . . . . . . . . . . . . . . . . 59
5.2.18 Tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3 Cấp phép sử dụng hệ thống tập tin. . . . . . . . . . . . . . . . . . . . . . . 60
5.3.1 Giới thiệu về cấp phép . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.2 Hỗ trợ của hạt nhân . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.3 Hỗ trợ của hệ thống tập tin . . . . . . . . . . . . . . . . . . . . . . 60
5.3.4 Cấu hình hệ thống giấy phép . . . . . . . . . . . . . . . . . . . . . 60
5.3.5 Lệnh "quota" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.6 Viewing quota . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.7 edquota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.8 Understanding edquota . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.9 Making changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.10 Copying quotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.11 Group restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.12 The repquota command . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.13 Repquota options . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.14 Monitoring quotas . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.15 Modifying the grace period . . . . . . . . . . . . . . . . . . . . . 60
5.3.16 Kiểm tra qouta khi khởi động . . . . . . . . . . . . . . . . . . . . 60
5.4 Giới thiệu về syslogd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.4.1 Đọc thông tin nhật ký . . . . . . . . . . . . . . . . . . . . . . . . 60
5.4.2 Tailing log files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.4.3 Grepping logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.4.4 Ghi nhớ bảo mật . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4.5 Chủ đề nâng cao - klogd . . . . . . . . . . . . . . . . . . . . . . . 62
5.4.6 Chủ đề nâng cao - các chương trình ghi nhật ký khác . . . . . . . . 62
5.5 Tóm lược . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.6 Tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6 Biên dịch mã nguồn và quản lý gói phần mềm trong linux 65
7 Cấu hình và biên dịch hạt nhân 66
7.1 Giới thiệu hề hạt nhân Linux . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.1.1 Hạt nhân là . Linux . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.1.2 Giao tiếp với phần cứng . . . . . . . . . . . . . . . . . . . . . . . 67
7.1.3 Điều quản CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.1.4 Điều quản vào ra I/O . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.1.5 Trung tâm của hệ thống mạng . . . . . . . . . . . . . . . . . . . . 67
7.1.6 Ôn lại về quá trình khởi động linux . . . . . . . . . . . . . . . . . 67
7.1.7 Giới thiệu về mô đun . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.1.8 Vị trí của tập tin mô đun . . . . . . . . . . . . . . . . . . . . . . . 67
7.1.9 Modules – not for every process! . . . . . . . . . . . . . . . . . . 67
7.2 Tải mã nguồn của hạt nhân . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.2.1 Kernel phiên bản history . . . . . . . . . . . . . . . . . . . . . . . . 67
7.2.2 Getting new kernel sources . . . . . . . . . . . . . . . . . . . . . . 67
7.2.3 Unpacking the kernel . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3 Cấu hình hạt nhân . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3.1 Let’s talk configuration . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3.2 The new way to configure . . . . . . . . . . . . . . . . . . . . . . 67
7.3.3 Các mẹo khi cấu hình . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3.4 Code maturity level options . . . . . . . . . . . . . . . . . . . . . 67
7.3.5 Modules and CPU-related options . . . . . . . . . . . . . . . . . . 67
7.3.6 General and parallel port options . . . . . . . . . . . . . . . . . . 67
7.3.7 RAID and LVM . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3.8 Hệ thống mạng và các thiết bị liên quan . . . . . . . . . . . . . . . 67
7.3.9 IDE support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3.10 SCSI support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3.11 Miscellaneous character devices . . . . . . . . . . . . . . . . . . . 67
7.3.12 File systems and console drivers . . . . . . . . . . . . . . . . . . . 67
7.3.13 Biên dịch và cài đặt hạt nhân . . . . . . . . . . . . . . . . . . . . . 67
7.3.14 make dep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3.15 make bzImage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3.16 biên dịch mô đun . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.4 Cấu hình khởi động . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.4.1 Giới thiệu về Lilo . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.4.2 Cấu hình Lilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.5 Thiết bị PCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.5.1 Thiết bị PCI 101 . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.5.2 Các kía cạnh của thiết bị PCI . . . . . . . . . . . . . . . . . . . . 67
7.5.3 PCI device resources . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.6 Linux USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.6.1 Introducing Linux USB . . . . . . . . . . . . . . . . . . . . . . . 67
7.6.2 Enabling USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.6.3 UHCI, OHCI, EHCI – oh my! . . . . . . . . . . . . . . . . . . . . 67
7.6.4 The last few steps . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.6.5 Mounting usbdevfs . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.7 Tóm lược . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.7.1 Tóm lược . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.7.2 Tài nguyên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8 Hệ thống mạng 68
9 USB bảo mật hệ vỏ và chia sẻ tập tin 69



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

gshadow-
Bây giờ, điều gì sẽ xảy ra nếu bạn dùng một mẫu mà không có đối tượng nào tương ứng?
Không có cách kiểm ra nào tốt hơn là một ví dụ: chúng ta thử liệt kê tất cả các tệp tin trong
/usr/bin bắt đầu bằng asdf và kết thúc bằng jkl,, gồm cả tệp tin có thể có là asdfjkl:
$ ls -d /usr/bin/asdf*jkl
ls: /usr/bin/asdf*jkl: No such file or directory
Đó là cái đã xảy ra! Thường thì, khi chúng ta chỉ rõ một mẫu, mẫu đó tương ứng một hay
nhiều tệp tin trên hệ thống, và bash thay thế mẫu bởi một danh sách các vật thể tìm thấy,
cách nhau bởi khoảng trống. Tuy nhiên, khi mẫu không đưa ra không có một đối tượng nào
phù hợp, thì bash coi ký tự thay mặt như một ký tự bình thường. Kết quả là ls không thể tìm
thấy tệp tin /usr/bin/asdf*jkl, và đưa ra thông báo lỗi. Quy luật ở đây là mẫu toàn cầu chỉ
được khai triển nếu có đối tượng tương ứng trong hệ thống tập tin. Trong trường hợp ngược
lại chúng được đưa nguyên văn vào câu lệnh29.
27wildcard pattern
28nói chính xác hơn là trong đường dẫn chỉ ra trong dòng lệnh
29trong trường hợp này /usr/bin/asdf*jkl sẽ được đưa vào câu lệnh ls
2.4 Sử dụng các ký tự thay mặt (wildcard) 19
2.4.3 Cú pháp đại diện: *
Bây giờ, khi đã thấy cơ chế làm việc của globbing trong các trường hợp khác nhau, chúng
ta có thể xem xét đến cú pháp của nó. Ở trên đã có một vài ví dụ với *. Ở đây chúng ta tiếp
tục tìm hiểu sâu hơn về ký tự này. Xin được nhắc lại * sẽ tương ứng không hay nhiều ký
tự. Nó có nghĩa "bất kỳ thứ gì có thể vào đây, gồm cả không có gì". Tốt hơn hết chúng ta
xem xét các ví dụ sau, hy vộng chúng sẽ giúp bạn hiểu rõ hơn những điều chúng tui muốn
nói:
• /etc/g* tương ứng tất cả tệp tin trong /etc mà bắt đầu bằng g, hay một tệp tin hay thư
mục có tên g.
• /tmp/my*l tương ứng tất cả tệp tin trong /tmp mà bắt đầu bằng my và kết thúc bằng l,
bao gồm cả tệp tin myl
2.4.4 Cú pháp đại diện: ?
Khác với *, ? phù hợp bất kỳ ký tự đơn nào. Ví dụ:
• tepcuatoi? tương ứng bất kỳ tệp tin nào mà tên của nó là tepcuatoi theo sau là một ký
tự đơn30.
• /tmp/note?txt tương ứng cả /tmp/notes.txt và emph/tmp/notes_txt, tất nhiên nếu chúng
tồn tại.
2.4.5 Cú pháp đại diện: []
Cú pháp thay mặt này giống một ? ở chỗ cũng chỉ tương ứng với một ký tự đơn, nhưng đặc
trưng hơn, rồi bạn sẽ thấy tại sao lại đặc trưng hơn. Để sử dụng cú pháp này, đặt các ký tự
mà bạn muốn tìm tương ứng vào trong []. Biểu thức thu được sẽ tìm sự tương ứng với mỗi
ký tự nằm trong dấu ngoặc vuông này. Bạn có thể sử dụng - để chỉ rõ một chuỗi ký tự liên
tiếp, và thậm chí liên hợp các chuỗi này. Phù! Tốt hơn hết là xem xét các ví dụ. Hãy đọc kỹ
các ví dụ sau và động não một chút, nhất định bạn sẽ nắm chắc vấn đề:
• tepcuatoi[12] sẽ tương ứng tepcuatoi1 và tepcuatoi2. Cũng như * cú pháp thay mặt sẽ
được khai triển nếu ít nhất một trong những tệp tin này tồn tại trong thư mục hiện
thời.
• [Cc]hange[Ll]og sẽ tương ứng Changelog, ChangeLog, changeLog, và changelog.
Bây giờ thì chắc bạn đã rõ sự đặc trưng của cú pháp này. Ngoài ra, cú pháp này làm
phong phú thêm sự tương ứng:
• ls /etc/[0-9]* sẽ liệt kê tất cả các tệp tin trong /etc bắt đầu bằng một chữ số.
• ls /tmp/[A-Za-z]* sẽ liệt kê tất cả các tệp tin trong /tmp bắt đầu bằng một chữ cái hoa
hay chữ cái thường.
30ví dụ tepcuatoi1 tepcuatoi2 tepcuatoia tepcuatoix ...
20 Cơ bản về Linux
2.4.6 Cú pháp đại diện: [!]
Cấu trúc [!] giống với cấu trúc [], nhưng nó sẽ tương ứng bất kỳ ký tự nào, mà không được
liệt kê giữa [! và ]. Ví dụ:
• rm tepcuatoi[!9] sẽ xóa tất cả các tệp tin có tên tepcuatoi cộng với một ký tự đơn,
ngoại trừ tepcuatoi9.
2.4.7 Sâu hơn về cú pháp đại diện
Đây là một số điều cần để ý khi sử dụng các cú pháp đại diện. Đầu tiên, bash "đối xử" các
ký tự đại diện, ?, [, ], và *, một cách đặc biệt, bạn cần rất cẩn thận khi gõ trong đối số của
một câu lệnh những ký tự này. Ví dụ, nếu muốn tạo một tệp tin có chứa dòng [fo]*, thì câu
lệnh sau sẽ không làm cái bạn muốn:
$ echo [fo]* > /tmp/teptinmoi.txt
Vì mẫu [fo]* tương ứng (hay không tương ứng) với (các) tệp tin nào đó trong thư mục
hiện thời, nên bạn sẽ thấy tên của chúng, nếu có, trong /tmp/teptinmoi.txt, chứ không phải
là dòng [fo]* như bạn mong đợi. Giải pháp? Một cách giải quyết là đưa các ký tự đó vào
dấu ngoặc đơn, chúng (dấu ngoặc) ngăn chặn không cho bash thực hiện sự khai triển trên
ký tự:
$ echo ’[fo]*’ > /tmp/teptinmoi.txt
Sử dụng cách này, tệp tin mới của bạn sẽ chứa dòng chữ [fo]* như mong muốn. Một giải
pháp khác: sử dụng ký tự thoát (escape character) gạch ngược. Khi đó bash coi [, ], và * là
các ký tự thường chứ không phải ký tự đại diện:
echo \[fo\]\* > /tmp/teptinmoi.txt
Cả hai cách (ngoặc đơn và ký tự thoát) có cùng một tác dụng. Nhân khi đang nói về
ký tự gạch ngược, giờ là thời điểm tốt để nói rằng, nếu muốn dùng \ như một ký tự bình
thường, cần hay đưa nó vào ngoặc đơn, hay gõ \\, 31. Kết qủa là bash sẽ khai triển hai
biểu thức đó thành \.
2.4.8 Ngoặc đơn "gặp" ngoặc kép
Chú ý rằng ngoặc kép có tác dụng tương tự như ngoặc đơn, nhưng vẫn cho phép bash thực
hiện một số khai triển giới hạn nào đó. Ví dụ, ký tự thoát gạch ngược trong một vài trường
hợp vẫn có tác dụng dù nằm trong ngoặc kép. Hãy thử echo "\"! Bởi vậy, ngoặc đơn là
tốt nhất khi bạn thực sự muốn đưa nguyên văn đối số cho các câu lệnh. Để thêm thông tin
về sự khai triển globbing, gõ man 7 glob. Xem thêm thông tin về trích dẫn (quote), bằng các
dấu ngoặc, gõ man 8 glob rồi đọc phần QUOTING. Nếu bạn có dự định trả thi LPI, coi như
đây là bài tập về nhà.
31ngoặc đơn hay ký tự gạch ngược sẽ là dấu thoát cho \
2.5 Tổng kết và các nguồn tham khảo 21
2.5 Tổng kết và các nguồn tham khảo
2.5.1 Tổng kết
Đầu tiên xin chúc mừng: bạn tới điểm cuối cuốn ôn tập Linux - những điều cơ bản của
chúng tôi! Rất hy vọng nó giúp bạn nắm chắc những kiến thức sơ đẳng nhất về Linux. Các
chủ đề bạn đã học ở cuốn này, bao gồm cơ sở về bash, những câu lệnh Linux cơ bản, liên
kết, và đại diện, là nền móng cho cuốn hướng dẫn tiếp theo, quản trị cơ sở, trong đó chúng
tui sẽ đưa các chủ đề như biểu thức chính quy (regular expression), quyền sở hữu, quyền
hạn, quản lý tài khoản người dùng, và nhiều chủ để khác nữa.
Tiếp tục cuốn hướng dẫn này, bạn sẽ sớm chuẩn bị đạt tới chứng chỉ LPIC bậc 1 từ Linux
Professional Institute. Nói đến chứng chỉ LPIC, nếu đây là cái bạn quan tâm, thì chúng tôi
khuyên bạn nên đầu tư thời gian học các các tài liệu tham khảo ngay sau đây. Chúng tui đã
lựa chọn cẩn thận để bổ sung thêm cho cuốn hướng dẫn này.
2.5.2 Các nguồn tham khảo
Trong các bài báo "Bash qua ví dụ" ("Bash by example") trên developerWorks, Daniel cho
bạn biết cách sử dụng cấu trúc lập trình bash để viết script của mình. Ba bài báo này, và
nhất là phần 1 và phần 2, là cần thiết cho kỳ thi LPIC bậc 1:
• Bash qua ví dụ, Phần 1: Lập trình cơ sở trong hệ vỏ Bourne-again shell
• Bash qua ví dụ, Phần 2: Lập trình bash nâng c...
 
Các chủ đề có liên quan khác

Các chủ đề có liên quan khác

Top