The Art of Command Line: Hướng Dẫn Dòng Lệnh
The Art of Command Line là một trang markdown duy nhất tổng hợp mẹo và thủ thuật dòng lệnh, không phải một khoá học tương tác hay một công cụ để cài đặt. Hãy đọc hết một lượt nếu bạn đã viết Bash hàng ngày và muốn lấp đầy khoảng trống kiến thức thật nhanh; bỏ qua nếu bạn cần một lộ trình chậm rãi, thực hành từng bước cho người mới, vì tài liệu này mặc định bạn sẽ tự tra cứu thêm khi đã biết tên lệnh.
The Art of Command Line là gì?
The Art of Command Line là một repository trên GitHub do jlevy duy trì, tổng hợp các ghi chú và mẹo về cách dùng dòng lệnh, viết chủ yếu cho Linux với các phần riêng chỉ dành cho macOS và chỉ dành cho Windows. README mô tả đây là một trang cố tình ngắn gọn: mọi thứ trên trang đều có giá trị, còn những gì bạn có thể dễ dàng tự tra cứu ở nơi khác thì bị lược bỏ.
Vì sao cần thành thạo dòng lệnh?
Phần lớn kỹ sư học dòng lệnh theo kiểu rời rạc, từ bất kỳ câu trả lời Stack Overflow nào giải quyết được vấn đề hôm qua, nên cùng một người có thể rành xargs nhưng chưa từng đụng tới process substitution hay chế độ chạy nghiêm ngặt của Bash. Các tác giả của tài liệu này xem sự thành thạo đó là một kỹ năng bị đánh giá thấp chứ không phải thứ gì cao siêu, và họ xây trang này để gom những mẹo Unix rời rạc mà dân dùng lâu năm đã biết thành một tài liệu tham khảo duy nhất, thay vì để tản mát trong hàng loạt bài blog và trang man.
Tài liệu này dành cho ai?
Tài liệu này hợp với các nhà phát triển và quản trị hệ thống đã làm việc hàng ngày trên terminal và muốn lấp những lỗ hổng cụ thể: người đã quen với cd và ls nhưng còn yếu về job control, xargs, hay các chế độ script nghiêm ngặt của Bash. Đây không phải một bài học nhập môn. Bỏ qua nếu bạn chưa từng mở terminal, vì các ghi chú mặc định bạn đã biết cách tra cứu một lệnh ngay khi biết tên của nó.
Các chủ đề chính trong tài liệu
- ✓Kiến thức nền tảng Bash: đọc trang man, quản lý job (ctrl-z, jobs, fg, bg), chuyển hướng input/output với >, >>, và |, cùng sự khác biệt giữa stdout và stderr.
- ✓Thói quen dùng shell hàng ngày: hoàn tất lệnh bằng Tab, tìm lịch sử lệnh bằng ctrl-r, các phím tắt readline của Bash (ctrl-w, ctrl-u, alt-b/alt-f), và cách sửa lệnh dài trong một trình soạn thảo ngoài.
- ✓Cách viết script: các cờ chế độ nghiêm ngặt (set -e, set -u, set -o pipefail), trap trên ERR/EXIT, subshell, brace expansion, và here document.
- ✓Xử lý văn bản và dữ liệu: sort, uniq, cut, paste, join, wc, và tee, cùng các công cụ tìm kiếm mới hơn như ripgrep và công cụ theo định dạng như jq cho JSON, shyaml cho YAML, csvkit cho CSV.
- ✓Làm việc qua mạng và từ xa: kiến thức cơ bản về ssh, port tunneling, một file ~/.ssh/config mẫu để giữ kết nối và ghép kênh, cùng tmux/screen để duy trì phiên làm việc.
- ✓Các phần riêng chỉ dành cho macOS và chỉ dành cho Windows, bên cạnh nội dung cốt lõi tập trung vào Linux.
- ✓Quản lý tiến trình: pgrep/pkill, xem cây tiến trình bằng pstree, và gửi tín hiệu như kill -STOP.
Điểm mạnh
- ✓Mọi thứ nằm trên một trang markdown, nên dùng ctrl-f tìm mẹo nhanh hơn nhiều so với lục tìm trong một khoá học nhiều chương.
- ✓Các mẹo cụ thể: phần lớn gạch đầu dòng đưa ra lệnh và cờ thật (kill -STOP, IFS=$'\n', set -euo pipefail) thay vì mô tả khái niệm chung chung.
- ✓Kết hợp cả lệnh Unix quen thuộc lẫn công cụ mới đáng cài thêm, như ripgrep, fzf, jq, datamash, nên cũng dùng được như một danh sách công cụ để thử.
- ✓Dự án đã thu hút nhiều tác giả và dịch giả theo thời gian, theo ghi nhận trong AUTHORS.md và các liên kết ngôn ngữ ở đầu README.
- ✓Miễn phí và được duy trì công khai trên GitHub, có quy trình đóng góp rõ ràng qua CONTRIBUTING.md.
Phạm vi và cách tiếp cận của tài liệu
- △Tài liệu mặc định viết cho Linux; chỉ những phần được gắn nhãn riêng cho macOS và Windows mới đề cập nền tảng khác, nên phần lớn mẹo giả định bạn dùng máy Linux hoặc môi trường kiểu WSL2.
- △Nội dung cố tình cô đọng. Các ghi chú chỉ nêu tên lệnh và mong bạn tự chạy man hoặc tra Explainshell, thay vì trình bày ví dụ đầy đủ.
- △Không có số phiên bản hay ngày cập nhật gần nhất trong dữ liệu hiện có, nên chỉ nhìn trang này khó biết một mẹo cụ thể còn mới so với phiên bản công cụ hiện tại hay không.
- △Ghi chú ở đầu README cho biết người duy trì đang tìm đồng tác giả để mở rộng tài liệu, cho thấy nội dung hiện tại được cố tình giữ hẹp và nông hơn mức có thể.
- △Đây là một trang tài liệu tham khảo duy nhất, không phải khoá học có lộ trình, nên không có bài tập hay các bước nâng dần cho người bắt đầu từ số không.
Cách khác để học kỹ năng dòng lệnh
Câu Hỏi Thường Gặp
The Art of Command Line viết mặc định cho Linux, với README ghi rõ có các phần riêng chỉ dành cho macOS và chỉ dành cho Windows để xử lý lệnh đặc thù từng nền tảng; phần lớn mẹo cũng áp dụng được cho các hệ Unix khác, kể cả Cygwin, theo README.
The Art of Command Line tự nêu trong phần phạm vi rằng tài liệu nhắm tới cả người mới lẫn người đã có kinh nghiệm, ưu tiên độ bao quát và sự ngắn gọn hơn là một hướng dẫn từng bước, nên người lần đầu dùng terminal sẽ cần thêm tài nguyên khác để bù kiến thức nền mà tài liệu này mặc định đã biết.
The Art of Command Line tập trung vào Bash tương tác, dù README ghi rằng nhiều mẹo trong đó cũng áp dụng được cho shell khác và cho việc viết script Bash nói chung.
README hướng người đóng góp tới file CONTRIBUTING.md để sửa lỗi hoặc bổ sung mẹo, và tới một form Airtable riêng để gửi câu hỏi liên quan tới dòng lệnh.
README của The Art of Command Line có liên kết tới bản dịch ở nhiều ngôn ngữ khác, gồm tiếng Trung, tiếng Nhật, tiếng Hàn, tiếng Nga, tiếng Pháp, và tiếng Tây Ban Nha, bên cạnh bản gốc tiếng Anh.
Một số mẹo gốc trong The Art of Command Line đến từ các thảo luận trên Quora về những lệnh Unix ít người biết nhưng hữu ích, trước khi dự án chuyển sang GitHub, nơi README ghi nhận nhiều người đóng góp ngoài tác giả gốc đã mở rộng thêm nội dung.
Trường hợp sử dụng tốt nhất
- •Đọc lướt lại mỗi năm một lần như cách ôn lại phím tắt và cờ lệnh từng tra rồi quên, như tìm lịch sử bằng ctrl-r hay brace expansion.
- •Giữ mở làm tài liệu tham khảo khi viết script Bash, để nhớ các cờ chế độ nghiêm ngặt và quy tắc đặt dấu ngoặc dễ sai.
- •Hướng dẫn nhập môn cho một nhà phát triển quen giao diện đồ hoạ nhưng còn mới với server, trỏ họ vào phần Basics để học trang man, ssh, và job control.
- •Khám phá các công cụ dòng lệnh mới đáng cài thêm, như ripgrep, fzf, hay jq, mà thói quen cũ có thể chưa có.
Repo liên quan
Vẫn đang phân vân về the-art-of-command-line?
Một cú bấm sẽ gửi câu hỏi kèm trang này cho AI — xem AI nói gì về the-art-of-command-line.
