
Thực hành tổng hợp Linux Essentials: dữ liệu, script và quyền
Thực hành Linux với ticket giả lập: tạo script đếm, kiểm tra lỗi, giới hạn dữ liệu, phục hồi TAR và xác minh báo cáo HTTP loopback bằng so sánh byte.

Tìm trợ giúp Linux qua Bash help, man và tài liệu gói; nhận diện phiên bản, đọc synopsis và phân biệt thiếu manual với thiếu chương trình trên máy.
Bạn thấy một hướng dẫn dùng tùy chọn --help, nhưng một công cụ khác chỉ in lỗi hoặc hiểu -h theo nghĩa hoàn toàn khác. Không phải mọi chương trình chia sẻ cùng cú pháp. Kỹ năng tìm trợ giúp bắt đầu từ việc nhận diện lệnh nào đang được gọi, tài liệu thuộc phiên bản nào và ví dụ đó áp dụng cho môi trường nào.
Bài thuộc mục tiêu 2.2 của Linux Essentials 010-160, liên hệ 012.2 của 010-200. Mốc biên tập: 23/10/2026. Sau bài, bạn biết chọn help của Bash, trang man hoặc tài liệu gói; đọc được phần cú pháp và lưu một tham chiếu có thể kiểm tra lại. Lab ưu tiên lệnh chỉ đọc trên Ubuntu 26.04 LTS. Image tối giản có thể thiếu man hoặc tài liệu, đây là khác biệt cần ghi nhận chứ chưa phải lỗi hệ thống.
Một tên có thể trỏ đến builtin, alias, function hoặc executable. Trang man của executable không nhất thiết mô tả đúng alias hoặc function đang chạy trong phiên. Ví dụ, cd thường là builtin của Bash; các tùy chọn của nó phải được xem trong tài liệu Bash. Một tiện ích có cùng tên ở nhiều hệ điều hành cũng có thể hỗ trợ các cờ khác nhau.
type cd
type ls
type -a printf
Ghi lại loại lệnh trước khi chọn nguồn. Nếu type cho thấy một alias thêm sẵn tùy chọn, đừng dùng đầu ra đó để kết luận chương trình gốc mặc định như vậy. Với vấn đề ở script, xem script gọi tên thường hay đường dẫn cụ thể. Một đường dẫn tuyệt đối giảm ảnh hưởng tìm kiếm qua PATH nhưng vẫn cần kiểm tra bản chương trình và môi trường.
Không chạy một tên lệnh lạ chỉ để xem nó có trợ giúp hay không trên máy công việc. Tùy chọn không được nhận biết có thể được diễn giải theo cách khác. Trước hết xác định công cụ qua nguồn hoặc package đã tin cậy; lab này chỉ dùng tiện ích đã có trong môi trường riêng.
Trong Bash, dùng help với tên builtin để xem cách dùng trong phiên đang chạy. Lệnh sau chỉ hiển thị tài liệu. Nếu bạn đang ở zsh hoặc shell khác, chuyển sang đúng môi trường bài học trước khi so sánh kết quả.
help cd
help pwd
help export
Phần đầu thường mô tả cú pháp, sau đó là tùy chọn và hành vi. Hãy đọc cả trạng thái trả về nếu có. Một builtin thất bại có thể trả mã khác không dù không sinh tệp lỗi riêng. Các bài script sẽ dùng mã thoát để quyết định bước tiếp theo, nên đây là thông tin vận hành, không phải chi tiết chỉ dành cho người viết tài liệu.
Đừng lấy trang manual của pwd executable để mặc định mọi shell builtin pwd giống hệt. Trong bài đường dẫn trước, chúng ta dùng các chế độ logic và vật lý của Bash. Khi cần so sánh, ghi rõ builtin hay bản GNU standalone để người khác tái kiểm tra được.

Nhiều tiện ích GNU hỗ trợ --help và --version. Chúng cung cấp bản tóm tắt hữu ích khi bạn cần nhớ một cờ. Tuy nhiên, -h có thể mang nghĩa khác; một chương trình cũng có thể không hỗ trợ cả hai. Đọc nguồn chính thức thay vì suy từ một công cụ sang mọi công cụ còn lại.
ls --help
ls --version
Trong image Ubuntu 26.04.1 đã kiểm tra, ls báo uutils coreutils 0.10.0, không phải GNU ls. Đầu ra giúp nhận diện phiên bản và các nhóm tùy chọn. Trên hệ khác dùng implementation khác, số phiên bản hoặc tập cờ sẽ khác. Khi làm theo hướng dẫn Linux trên macOS host, sự khác biệt này cần được xét trước khi kết luận lệnh đã thay hành vi.
Nếu đầu ra dài hơn màn hình, dùng khả năng cuộn terminal hoặc một pager đã có sẵn. Không thay nội dung cấu hình terminal chỉ để xem hết trợ giúp. Bài sau có thể dùng less, trong đó q thường thoát; kiểm tra tài liệu pager nếu nó được thay bằng công cụ khác trong môi trường của bạn.
man tìm và trình bày các trang manual có trên hệ thống hoặc trong đường tìm được cấu hình. Các số mục giúp phân biệt loại tài liệu: mục 1 thường cho lệnh người dùng, mục 5 thường cho định dạng tệp, mục 8 thường cho công cụ quản trị. Cùng tên có thể có nhiều trang thuộc các mục khác nhau, vì vậy số mục là một phần hữu ích của tham chiếu.
command -v man
man 1 man
Trên hệ đã có trang tương ứng, bạn có thể đọc tên, synopsis, description, options và see also. Trong pager thông dụng như less, / đi cùng từ khóa giúp tìm, n chuyển kết quả tiếp theo và q thoát. Đây là điều khiển của pager, không phải cú pháp của ls. Một môi trường cấu hình pager khác có thể cần phím khác.
Ví dụ này mở trang hướng dẫn của chính man; với lệnh khác, cần có trang tương ứng trong máy. Image Ubuntu tối giản đã kiểm tra còn có một script thông báo hệ thống bị rút gọn thay cho man thật. Vì vậy tìm thấy tên man chưa chứng minh đã đọc được manual.
Nếu command -v man không có kết quả hoặc man báo không có trang, ghi thông báo và kiểm tra gói tài liệu theo chính sách môi trường. Đừng thêm một chuỗi cài đặt hàng loạt vào máy sản xuất chỉ vì container học tập thiếu manual. Bạn vẫn có thể dùng trợ giúp builtin, --help và kho Ubuntu Manpages để đối chiếu đúng bản phát hành.
Tài liệu thường đặt phần tùy chọn trong ngoặc vuông và dùng tên như FILE hoặc DIRECTORY để chỉ chỗ bạn điền dữ liệu. Dấu ba chấm có thể diễn tả phần lặp; dấu gạch đứng có thể chỉ lựa chọn theo quy ước tài liệu. Bạn cần đọc phần giải thích của manual thay vì nhập tất cả ký hiệu theo nghĩa chữ.
Ví dụ khi một cú pháp ghi command [OPTION] FILE, người học phải thay FILE bằng một tên thật và chỉ thêm tùy chọn cần dùng. Dấu ngoặc vuông mô tả tính tùy chọn trong tài liệu đó, không phải yêu cầu tạo tệp tên [OPTION]. Các mẫu code hoàn chỉnh trong bài thực hành sẽ được tách riêng để tránh nhầm với sơ đồ cú pháp.
Tìm cả mặc định, điều kiện thất bại và tác động ghi dữ liệu. Một tùy chọn “force” hoặc “recursive” có thể làm phạm vi thao tác lớn hơn nhiều. Đừng chỉ tìm một dòng ví dụ rồi bỏ qua phần nói về ghi đè, symlink hoặc quyền, nhất là trước khi xử lý thư mục của người dùng khác.

Nhiều gói Debian/Ubuntu đặt tài liệu tại /usr/share/doc với tên gói tương ứng. Nội dung có thể gồm README, changelog, ví dụ cấu hình và copyright, một số tệp được nén. Đây là nguồn giúp biết cách bản phân phối đóng gói phần mềm, bổ sung cho tài liệu upstream. Image tối giản có thể cố ý loại phần tài liệu để giảm kích thước.
dpkg-query -L bash
ls -ld -- /usr/share/doc/bash
Danh sách gói giúp tìm đường dẫn thực tế thay vì đoán. Một thư mục ví dụ không có nghĩa cấu hình đó đã được áp dụng cho service. Nếu bạn đọc một tệp mẫu, ghi đường dẫn nguồn và giải thích cần thay gì trước khi dùng trong lab. Không copy tệp cấu hình vào /etc chỉ để chứng minh đã tìm thấy nó.
Với tài liệu nén, chọn công cụ đọc phù hợp đã có trong môi trường và không ghi đè bản gốc. Bạn chưa cần giải nén toàn bộ /usr/share/doc. Thói quen giới hạn phạm vi giúp bài học giữ nguyên trạng thái hệ thống trong khi vẫn lấy được thông tin cần thiết.
PDF 1.6 còn nhắc Info và locate. Info là hệ tài liệu có cấu trúc nút và liên kết, thường dùng cho manual GNU dài hơn trang man. Nếu chương trình và tài liệu đã có, info đi cùng tên chủ đề là một cách mở; thiếu nội dung Info không chứng minh chương trình chính chưa được cài. Bạn không cần cài thêm mọi hệ tài liệu để hoàn thành phép tra cứu đang có.
locate thường tìm qua cơ sở dữ liệu tên đường dẫn được lập trước, nên kết quả có thể chưa phản ánh thay đổi vừa xảy ra hoặc phạm vi bị loại khỏi index. Không thấy tên trong locate chưa chứng minh tệp không tồn tại. Với mục tiêu hiện hành 012.3, find đã được đưa vào bài đường dẫn để tìm trực tiếp trong cây lab có giới hạn. Không cập nhật index toàn hệ thống chỉ để sửa một ví dụ tìm tên.
Một trang online mới nhất có thể mô tả tính năng chưa có trong bản bạn cài. Ngược lại, một hướng dẫn cũ có thể nhắc tiện ích đã không còn mặc định. Khi lưu tham chiếu, ghi tên phần mềm, phiên bản hoặc dòng phát hành, URL và ngày đọc. Với nguồn có lịch sử phiên bản, ưu tiên nhánh khớp môi trường đang làm việc.
Kết quả tìm kiếm là điểm vào, không thay nội dung tài liệu. Một đoạn trích ngắn có thể thiếu điều kiện hoặc phạm vi áp dụng. Nếu trang chính thức bị chặn hoặc timeout, giữ trạng thái đó trong ghi chú, tìm bản tài liệu gói hoặc bản chính thức khác; không báo đã đọc một trang chỉ vì thấy tiêu đề trong kết quả.
Tài liệu cũng có thể chứa câu lệnh thay đổi hệ thống. Đọc chúng như dữ liệu tham khảo rồi quyết định theo nhiệm vụ và quyền đã có. Một trang hướng dẫn không tự trở thành yêu cầu bạn phải chạy toàn bộ lệnh lên máy đang mở, đặc biệt khi phần cài đặt không thuộc câu hỏi cần giải quyết.
Hãy chọn một tùy chọn ls chỉ đọc, chẳng hạn hiển thị chính thư mục thay vì nội dung. Ghi bốn dòng: lệnh thực tế, loại lệnh do type báo, ý nghĩa cờ theo tài liệu và kết quả quan sát trong cây lab. Sau đó viết thêm một điều kiện khiến ví dụ không thể áp dụng nguyên xi, như implementation khác hoặc thư mục chưa tồn tại.
Tự kiểm tra 1: Muốn biết cú pháp cd trong Bash, dùng trang nào trước? Help hoặc manual Bash, vì cd là builtin trong trường hợp này. Tự kiểm tra 2: Thiếu man có chứng minh thiếu chính lệnh cần dùng không? Không; phần chương trình và tài liệu có thể được đóng gói khác nhau.
Tự kiểm tra 3: --help có luôn là phép quan sát an toàn cho một executable không rõ nguồn? Không nên chạy executable chưa tin cậy chỉ để thử cờ. Tự kiểm tra 4: Manual online mới nhất có luôn đúng với máy cũ? Không; cần khớp phiên bản. Bạn đạt bài khi tìm được câu trả lời bằng nguồn phù hợp và ghi rõ phần đã kiểm chứng, thay vì chỉ lưu một câu lệnh không có bối cảnh.

Thực hành Linux với ticket giả lập: tạo script đếm, kiểm tra lỗi, giới hạn dữ liệu, phục hồi TAR và xác minh báo cáo HTTP loopback bằng so sánh byte.

Hiểu thư mục tạm và tệp đặc biệt Linux; thử mktemp, sticky bit, hard link và symlink, kiểm tra đích sau di chuyển và phân biệt liên kết với backup.

Đọc quyền tệp Linux, owner và group; thử chmod, chown, search thư mục và umask bằng tài khoản không root, phân biệt ghi nội dung với xóa tên tệp.

Tạo người dùng Linux và nhóm trong lab riêng; kiểm tra home, skeleton, nhóm bổ sung, khóa mật khẩu và phạm vi xóa tài khoản trước khi áp dụng thực tế.