The Linux Command Line của William Shotts: nền shell cho FDE trước khi SSH vào máy chủ của khách
Lúc bạn đăng nhập vào máy chủ của khách hàng, không có giao diện đồ hoạ nào đỡ cho bạn. Cuốn sách miễn phí này dạy đúng phần nền bạn cần cho khoảnh khắc đó.

Tóm tắt nhanh
- Tác giả cho tải PDF miễn phí theo giấy phép Creative Commons BY-NC-ND. Bản in thứ ba dày 544 trang, do No Starch Press phát hành.
- Sách viết cho người chưa biết gì về dòng lệnh. Tutorial đi kèm có các phần Permissions, Job Control, I/O Redirection và Expansion.
- Bốn thói quen nên giữ: ghép lệnh thay cho click chuột, xem trước wildcard sẽ mở rộng thành gì, đọc quyền file trước khi xin sudo, giữ tiến trình sống khi rớt SSH.
Thử hình dung: bạn SSH vào máy ảo của khách hàng để xem vì sao pipeline dữ liệu ngừng chạy. Máy đó không có IDE của bạn, không có alias quen tay, còn người phía khách thì đang chờ trên cuộc gọi.
Những phút đầu tiên của phiên đó phụ thuộc vào việc bạn dùng shell thạo đến đâu. The Linux Command Line của William Shotts dạy đúng phần nền ấy, và bạn có thể tải bản PDF miễn phí ngay trên trang của tác giả, LinuxCommand.org.
Một cuốn sách cho người bắt đầu từ số không
Bài điểm sách trên Linux Pro Magazine nhận xét rằng cuốn sách không giả định người đọc biết gì từ trước. Theo bài viết, đây có lẽ là cuốn dễ đọc nhất về chủ đề này, dù vẫn bao quát đủ rộng và đủ sâu.
Nhà xuất bản thì hứa hẹn nhiều hơn: một khoá học trọn vẹn về cách Linux thực sự vận hành. Sách đi qua điều hướng hệ thống file, pipeline, tiến trình, Vim và shell scripting.
Cũng nên biết giới hạn từ đầu. Shotts nói rõ tập Adventures with the Linux Command Line, phần bổ sung cho sách, không phải cẩm nang quản trị hệ thống, chỉ là những chủ đề thú vị như Midnight Commander, terminal multiplexer, AWK, Vim và SQL.
Với một FDE, đọc log, chuyển file hay chạy job là việc cần trước; vận hành máy chủ ở mức sâu có thể học từ nguồn khác sau.
Bốn thói quen nên giữ lại sau khi gấp sách
Ghép lệnh thay cho click chuột. Tutorial Learning the Shell mở đầu bằng nhận xét rằng giao diện đồ hoạ có ích cho nhiều việc nhưng không hợp với mọi việc. Ở chỗ khách, câu đó thành chuyện rất cụ thể.
Thử một ca giả định: khách báo đĩa đầy. Bạn gõ df -h để biết phân vùng nào đầy, rồi du -sh /var/log/* | sort -h | tail -5 để ra năm thư mục log lớn nhất. Hai dòng lệnh, và bạn có câu trả lời ngay trên cuộc gọi.
Xem trước shell sẽ biến dòng lệnh thành gì. I/O Redirection và Expansion là hai trong mười phần của tutorial, và cả hai đều có thể gây lỗi đắt giá trên máy của người khác. Muốn gửi log cho đồng đội, lệnh > ketqua.txt 2>&1 ghi cả output lẫn lỗi vào một file; thiếu 2>&1, file gửi đi có thể thiếu đúng dòng báo lỗi.
Expansion còn nguy hiểm hơn. Trước khi chạy rm với wildcard trên máy của khách, hãy chạy echo với đúng wildcard đó để xem nó sẽ thành danh sách file nào.
Đọc quyền file trước khi xin sudo. Permissions cũng là một phần của tutorial. Gặp “Permission denied” trong thư mục dữ liệu của khách, hãy đọc ls -l để biết file thuộc user và group nào trước khi nhờ đến khách; hỏi đúng chỗ thì đội IT phía khách nể bạn hơn.
Giữ tiến trình sống khi rớt SSH. Job Control cứu bạn khi lệnh import chạy dở thì phiên SSH rớt. Cách an toàn nhất là tách nó khỏi phiên từ đầu, ví dụ nohup ./import.sh > import.log 2>&1 &, rồi theo dõi bằng tail -f import.log.
Nếu lỡ chạy ở tiền cảnh, bấm Ctrl+Z, gõ bg rồi disown. Với việc kéo dài hàng giờ, mở tmux trước khi chạy là thói quen tốt; terminal multiplexer cũng là một chủ đề trong tập Adventures.
Nên đọc theo thứ tự nào?
Người mới với dòng lệnh, hoặc kỹ sư quen làm trên macOS và IDE, nên bắt đầu bằng mười phần của Learning the Shell. Hãy gõ lại từng lệnh trên một máy ảo sạch, đừng chỉ đọc.
Sau đó đọc sách để hiểu sâu, và để Adventures lại cuối, khi các lệnh cơ bản đã thành phản xạ. Nếu bạn đã viết bash script hằng ngày, có thể đọc lướt và chỉ dừng ở những chương bạn còn ngập ngừng khi gõ.
Về chuyện xin việc, khi đọc tin tuyển FDE, hãy để ý xem công việc có đòi làm trên hạ tầng của khách không; nếu có, nền shell là thứ đáng chứng minh. Thay vì ghi “thành thạo Linux” trong CV, hãy kể một sự cố cụ thể: máy của ai, bạn đã gõ gì, mất bao lâu.
Bạn đã sẵn sàng SSH vào máy của khách chưa?
Thử trả lời ba câu sau trước khi xem đáp án, rồi chạy lại trên máy ảo.
Câu một: lệnh 2>&1 > out.txt và lệnh > out.txt 2>&1 khác nhau ở đâu? Đáp án: shell đọc redirection từ trái sang phải. Ở cách viết đầu, lỗi được trỏ về chỗ output đang trỏ lúc đó, tức màn hình, nên file chỉ có output; cách viết sau mới gom cả hai vào file.
Câu hai: trong thư mục có a.tmp, b.tmp và config.yaml, echo rm *.tmp in ra gì? Đáp án: rm a.tmp b.tmp. Nếu dòng in ra có file bạn không muốn mất, bạn vừa tránh được một sự cố.
Câu ba: script đã chạy ở tiền cảnh được 40 phút và mạng đang chập chờn. Bạn làm gì để không mất job nếu phiên SSH rớt? Đáp án: Ctrl+Z, bg, disown. Lỗi hay gặp nhất là bấm Ctrl+C theo phản xạ, và job đã chạy 40 phút mất trắng.
Trả lời trôi chảy cả ba câu thì bạn đã có phần nền mà cuốn sách hứa hẹn. Nếu còn vấp, hãy quay lại đúng phần tương ứng của tutorial.
Trước khi tải hoặc mua
Bản miễn phí trên LinuxCommand.org là Seventh Internet Edition, dày 596 trang, phát hành theo giấy phép Creative Commons BY-NC-ND. Bản in thứ ba của No Starch Press dày 544 trang, ISBN 9781718504523, được nhà xuất bản giới thiệu có gần 40 trang nội dung mới.
Ngày phát hành khác nhau tuỳ định dạng: Apple Books ghi bản ebook ngày 17/2/2026, còn Penguin Australia ghi bản bìa mềm ngày 3/3/2026. Bản nào cũng được, miễn là bạn gõ lệnh trên máy ảo trước khi phải gõ trên máy của khách.
Bài này có hữu ích không?
Cảm ơn bạn đã góp ý!