Bạn có từng nhận thấy các tiện ích tiêu chuẩn trên Linux thật nhàm chán không? Chức năng của chúng thì thiết yếu, nhưng giao diện lại đơn điệu. Sẽ tuyệt vời hơn biết bao nếu chúng có thể làm đẹp đầu ra bằng những màu sắc rực rỡ, hoặc thậm chí tăng tốc độ xử lý? Các tiện ích dòng lệnh (terminal utilities) hiện đại dưới đây sẽ mang đến cho bạn điều đó và nhiều hơn thế nữa, biến trải nghiệm làm việc với Linux trở nên thú vị và hiệu quả hơn bao giờ hết.
Trong thế giới công nghệ phát triển không ngừng, việc tối ưu hóa quy trình làm việc là chìa khóa để đạt được năng suất cao. Đối với những người dùng Linux chuyên nghiệp như lập trình viên, quản trị viên hệ thống hay các nhà phát triển, dòng lệnh (terminal) là môi trường làm việc chính. Tuy nhiên, các lệnh Linux truyền thống như cat
, grep
, find
, ls
dù mạnh mẽ nhưng lại thiếu đi sự trực quan và tốc độ cần thiết trong môi cảnh hiện đại. Bài viết này sẽ giới thiệu cho bạn những công cụ thay thế vượt trội, giúp nâng tầm trải nghiệm terminal của bạn lên một tầm cao mới, từ việc hiển thị file, tìm kiếm thông tin cho đến quản lý lịch sử lệnh. Hãy cùng tincongngheso.com khám phá!
bat: Lệnh cat
Đã Được “Tô Màu” Và Thông Minh Hơn
Màn hình terminal hiển thị code với tính năng highlight cú pháp màu sắc, minh họa output của lệnh bat.
cat
là một trong những lệnh đầu tiên mà nhiều người học khi bắt đầu với Linux, và nó vẫn là một trong những lệnh được sử dụng thường xuyên nhất. Tuy nhiên, nó đang bộc lộ những hạn chế của mình vì chỉ hiển thị văn bản thuần túy, không định dạng. Điều này gây khó khăn đáng kể khi đọc các file phức tạp như file cấu hình, mã nguồn, JSON, hoặc YAML.
bat
chính là một phiên bản nâng cấp của cat
, và nó hoạt động tốt hơn rất nhiều. bat
giải quyết vấn đề khả năng đọc bằng cách highlight cú pháp các file phức tạp với màu sắc đẹp mắt, giúp các phần và ranh giới trong file trở nên rõ ràng, dễ đọc hơn rất nhiều.
Ngoài ra, bat
còn có một số tính năng bổ sung hấp dẫn, như tích hợp với Git để đánh dấu các dòng đã thay đổi. Nó cũng có thể hoạt động cùng với các công cụ khác như fzf
hoặc find
để hiển thị các cửa sổ xem trước có màu. bat
có sẵn rộng rãi và bạn có thể tìm thấy nó trong hầu hết các kho lưu trữ của các bản phân phối Linux phổ biến.
ripgrep: Sức Mạnh Vượt Trội Của grep
Được “Tiêm Steroid”
Cửa sổ terminal hiển thị danh sách kết quả tìm kiếm với từ khóa được highlight màu đỏ, thể hiện hiệu quả của ripgrep.
Tương tự như các tiện ích khác được đề cập trong bài viết này, ripgrep
là một bản nâng cấp đáng giá cho đối tác tiêu chuẩn của nó là grep
. Điểm nổi bật chính của ripgrep
là tốc độ: nó thực hiện nhiều tìm kiếm song song, điều mà grep
truyền thống không làm được. ripgrep
tận dụng sức mạnh của các CPU hiện đại bằng cách phân chia công việc trên tất cả các lõi CPU, mang lại hiệu suất tìm kiếm vượt trội.
ripgrep
không chỉ cực kỳ nhanh mà còn có một danh sách dài các tính năng hữu ích, bao gồm phát hiện chữ hoa thông minh (smart case detection), bỏ qua các file và thư mục cụ thể, và tích hợp với các ứng dụng khác.
Tính năng phát hiện chữ hoa thông minh là một cải tiến đơn giản nhưng tinh tế, đáng lẽ nên có trong mọi chức năng tìm kiếm. Nó có nghĩa là nếu bạn sử dụng chữ cái viết hoa trong từ khóa tìm kiếm của mình, thì tìm kiếm sẽ trở thành phân biệt chữ hoa/thường. Đây là một tính năng “chất lượng cuộc sống” thường bị thiếu.
ripgrep
cũng có thể bỏ qua các file và thư mục cụ thể theo chỉ dẫn từ file .gitignore
hoặc ignore
của bạn. Ví dụ, file sau đây sẽ khiến ripgrep
bỏ qua tất cả các hình ảnh có tên foo.jpg
hoặc các thư mục có tên ignored_dir
.
ignored_dir/**/foo.jpg
ripgrep
có khả năng tích hợp tuyệt vời với các ứng dụng khác. Emacs, Vim, Neovim và fzf
đều có các tiện ích mở rộng của bên thứ ba cung cấp tích hợp ripgrep
, cho phép các ứng dụng này tận dụng trực tiếp khả năng tìm kiếm mạnh mẽ của ripgrep
. fzf
(một tiện ích khác) cung cấp các tính năng nâng cao hoạt động rất tốt với ripgrep
, như bạn sẽ thấy sau.
Chưa hết, ripgrep
còn có thể tìm kiếm trong các file nén bằng cách sử dụng cờ -Z
. Nếu bạn có một thư mục chứa nhiều file văn bản và file nén, ripgrep
có thể “xuyên thủng” tất cả mà không cần giải nén thủ công. Mặc dù nó không cung cấp nhiều chi tiết về kết quả khớp, nhưng điều đó giúp tiết kiệm rất nhiều thời gian và sự bất tiện.
ripgrep
có sẵn trong hầu hết các kho lưu trữ của các bản phân phối, vì vậy hãy tham khảo hướng dẫn của bản phân phối của bạn để cài đặt gói.
delta: ripgrep
Với Màu Sắc Và Ngữ Cảnh Dành Cho Lập Trình Viên
delta
thường dành cho các lập trình viên và nó là một trong những tiện ích yêu thích của tôi. ripgrep
làm rất tốt công việc “xuyên thủng” các file để tìm chính xác những gì bạn cần; nó có các tính năng hiện đại và cú pháp tìm kiếm nâng cao. Tuy nhiên, đầu ra của nó khá đơn điệu vì thiếu màu sắc và ngữ cảnh. Mặc dù một số người có thể cho rằng nó đơn giản và chỉ tập trung vào từ khóa tìm kiếm, nhưng tôi nhận thấy mình cần nhiều hơn thế. Khi tìm kiếm mã nguồn, tôi muốn thấy ngữ cảnh xung quanh và màu sắc, vì cả hai đều giúp phân biệt “vàng thau lẫn lộn” một cách dễ dàng.
Đối với những bạn là lập trình viên (hoặc mới bắt đầu), delta
áp dụng tính năng highlight cú pháp cho đầu ra của ripgrep
. Nó cũng cung cấp các tính năng bổ sung để tích hợp với Git, một hệ thống quản lý tài liệu. Ví dụ, nó cung cấp một chế độ xem song song đẹp mắt về các thay đổi đối với tài liệu (còn gọi là diff, viết tắt của difference).
Git có thể quản lý bất kỳ loại tài liệu văn bản nào, và mọi người thường sử dụng nó để lưu các dotfile
của họ (còn gọi là các file cấu hình bắt đầu bằng dấu chấm). Nếu bạn quan tâm đến việc lưu các dotfile
của mình, tôi thực sự khuyên bạn nên lưu chúng bằng Git. Trong trường hợp đó, delta
cũng rất đáng xem xét, ngay cả khi chỉ vì chế độ xem diff
của nó.
Bạn có thể cài đặt delta
thông qua các kho lưu trữ chính thức cho Debian, Ubuntu, Fedora, Arch Linux và một vài bản phân phối khác, dưới tên git-delta
. Nó cũng có sẵn qua Homebrew và Nix.
fd: find
Nhanh Chóng Với Màu Sắc Đẹp Mắt Hơn
Màn hình terminal hiển thị hàng loạt đường dẫn file được tìm thấy, minh họa kết quả nhanh chóng của lệnh fd.
Đúng như tiêu đề đã nêu, fd
rất giống với find
, nhưng nó nhanh hơn đáng kể và có màu sắc đẹp mắt hơn. Màu sắc, như đã đề cập trước đó, giúp kết quả tìm kiếm dễ đọc và phân biệt hơn. fd
mã hóa màu sắc cho các loại file và đường dẫn thư mục khác nhau.
Ngoài việc sử dụng màu sắc, fd
còn duyệt qua nhiều cây thư mục song song, tận dụng lợi thế của nhiều lõi trong CPU hiện đại. Khả năng này không chỉ mở rộng ra việc duyệt thư mục mà còn áp dụng cho cả việc thực thi lệnh. Khi bạn sử dụng cờ -X
, fd
chạy một lệnh song song với mọi kết quả khớp.
fd foo.txt -x bat --color=always
Giống như ripgrep
, fd
cũng hỗ trợ tìm kiếm chữ hoa thông minh (smart case searches) và tuân thủ file .gitignore
, giúp việc tìm kiếm thuận tiện hơn và loại bỏ nhiễu theo mặc định.
fd
có sẵn cho hầu hết mọi bản phân phối Linux, vì vậy để cài đặt nó, hãy tham khảo trình quản lý gói hoặc hướng dẫn của bản phân phối của bạn.
eza: Một Thay Thế Hiện Đại Cho Lệnh ls
eza
là một phiên bản hiện đại của lệnh ls
tiêu chuẩn, và các tính năng chính của nó là hỗ trợ màu sắc tốt hơn cùng với các biểu tượng (icons). Mặc dù không thiết yếu, tôi thấy các biểu tượng là một điểm nhấn thú vị, nhưng đối với tôi, màu sắc là điều cần thiết.
eza
có một số tính năng hay khác, như chế độ xem cây thư mục (tree view) và siêu liên kết (hyperlinks). Ví dụ, cờ hyperlinks
sẽ chuyển đổi tất cả tên file và thư mục thành các liên kết có thể nhấp được bằng cách sử dụng định dạng OSC 8. Hầu hết các terminal đều hỗ trợ các liên kết này, nhưng để chắc chắn, bạn có thể tham khảo danh sách không chính thức các terminal hỗ trợ siêu liên kết OSC 8. Mỗi terminal khác nhau và bạn có thể cần kích hoạt nó thủ công.
Điều tuyệt vời nhất là các siêu liên kết cũng hoạt động với chế độ xem cây, có nghĩa là bạn có thể nhanh chóng điều hướng các thư mục lớn. Tuy nhiên, một vấn đề tôi nhận thấy là chế độ xem cây của eza
chậm hơn nhiều so với lệnh tree
tiêu chuẩn: tree
sẽ hiển thị kết quả theo dạng streaming khi chúng được tìm thấy, trong khi eza
sẽ điều hướng toàn bộ (đôi khi rất lớn) thư mục và hiển thị tất cả cùng một lúc – điều này có thể mất một chút thời gian, nhưng bù lại nó có màu sắc đẹp mắt và các liên kết có thể nhấp!
Điểm cuối cùng là việc gõ eza --icons
mỗi lần thật phiền toái, vì vậy bạn có thể muốn tạo một alias để tiết kiệm thời gian.
eza
có sẵn cho hầu hết các bản phân phối phổ biến, vì vậy bạn có thể tham khảo trình quản lý gói của bản phân phối của mình. Tuy nhiên, việc cài đặt trên Debian và Ubuntu yêu cầu một kho lưu trữ APT tùy chỉnh, nhưng trang chủ của eza
đã hướng dẫn chi tiết về điều này.
fzf History Search: Terminal Khó Sử Dụng Nếu Thiếu Tìm Kiếm Lịch Sử Mờ
Cửa sổ terminal hiển thị danh sách các lệnh đã thực thi, minh họa chức năng tìm kiếm lịch sử hiệu quả của fzf History Search.
Cho dù bạn là người mới bắt đầu hay một người dùng kỳ cựu, việc sử dụng công cụ tìm kiếm mờ (fuzzy search) cho lịch sử shell của bạn là điều cần thiết – đó là công cụ quan trọng nhất mà tôi có. Việc gõ các lệnh ra rất tẻ nhạt, vì vậy tôi chỉ muốn làm điều đó một lần. Việc tìm kiếm các lệnh trước đó cũng tẻ nhạt, vì việc sử dụng các phím lên và xuống làm chậm quy trình làm việc của tôi đến mức bò. Một công cụ tìm kiếm mờ giải quyết cả hai vấn đề này.
Nếu bạn chưa biết tìm kiếm mờ là gì, nó đơn giản có nghĩa là tìm kiếm một sự xấp xỉ gần đúng. Ví dụ, gõ “emp” hoặc “xpe” sẽ khớp với “example”. Tại sao điều đó quan trọng? Bởi vì tôi không thể nhớ một lệnh mà tôi đã gõ hai tháng trước, hoặc việc nhanh chóng chuyển đổi giữa một vài lệnh gây ảnh hưởng đến trí nhớ của tôi. Tôi chỉ cần nhớ một vài ký tự trong lệnh, và công cụ tìm kiếm mờ nhanh chóng thu hẹp tìm kiếm trong thời gian thực.
Trong nhiều năm, tôi đã tin tưởng vào plugin fzf History Search
cho zsh. Ngoài ra, có một công cụ độc lập có tên Atuin gần như giống hệt. Cả hai đều thực hiện một công việc đơn giản nhưng hiệu quả.
Hãy tham khảo kho lưu trữ GitHub của fzf History Search
để biết hướng dẫn cài đặt. Bạn cũng có thể muốn làm theo các hướng dẫn về cách cài đặt Oh-My-Zsh và cách cài đặt fzf
. Một cách tiếp cận thay thế và dễ dàng hơn là đọc hướng dẫn về cách cài đặt và sử dụng Atuin.
Script Bonus: Bí Quyết Tìm Kiếm File Chuyên Nghiệp (Kết Hợp fzf, ripgrep, bat)
Cửa sổ terminal chia đôi hiển thị code với highlight cú pháp ở trên và danh sách đường dẫn file ở dưới, minh họa script tìm kiếm file chuyên nghiệp.
Nếu bạn cài đặt fzf
, ripgrep
và bat
, bạn có thể sử dụng lệnh tuyệt vời sau để tìm kiếm mờ hệ thống file của mình và mở các dòng khớp trong trình soạn thảo văn bản yêu thích của bạn. Đặt lệnh sau vào file .bashrc
của bạn và sau đó tải lại nó bằng source ~/.bashrc
. Tham khảo hướng dẫn về cách hoạt động của file .bashrc
để biết thêm thông tin.
s () {
fzf --ansi --disabled
--bind "change:reload:command
rg --line-number --no-heading --color=always --smart-case {q}
|| :"
--bind "enter:execute(${EDITOR:-nano} +{2} {1})"
--delimiter ":"
--preview "command bat -p --color=always {1} --highlight-line {2}"
--preview-window 'up:80%,border-bottom,~3,+{2}+3/3'
}
Lệnh trên mặc định sẽ mở file bằng nano
, nhưng bạn có thể thiết lập nó để sử dụng Vim, Neovim, Emacs và một vài trình soạn thảo khác. Chỉ cần đặt biến EDITOR
trong file .bashrc
của bạn và tải lại nó:
export EDITOR=nvim
Để sử dụng script, bạn chỉ cần chuyển đến một thư mục chứa các file văn bản và gõ chữ “s”. Mặc dù lệnh này sẽ chấp nhận các từ thông thường cho các thuật ngữ tìm kiếm, bạn có thể tăng đáng kể độ chính xác của nó nếu bạn làm theo hướng dẫn của chúng tôi về Regex, một cú pháp tìm kiếm nâng cao mà bạn có thể học trong một giờ.
Kết Luận
Nếu không có fzf History Search
, ripgrep
và delta
, tôi cảm thấy lạc lõng, và vì vậy chúng thường là những công cụ đầu tiên mà tôi cài đặt trên một hệ thống mới. Không có eza
, bat
và fd
, terminal sẽ trở nên đơn điệu và khó đọc. Chúng không chỉ giúp tăng tốc độ làm việc mà còn cải thiện đáng kể khả năng đọc hiểu và tương tác với dòng lệnh.
Đây không phải là một danh sách đầy đủ, và có rất nhiều tiện ích terminal khác để khám phá. Tuy nhiên, 7 công cụ được giới thiệu ở trên là những điểm khởi đầu tuyệt vời để bạn nâng cấp trải nghiệm dòng lệnh Linux của mình, biến nó từ một công cụ đơn điệu thành một môi trường làm việc mạnh mẽ, trực quan và đầy màu sắc. Hãy bắt đầu cài đặt và trải nghiệm sự khác biệt ngay hôm nay. Bạn nghĩ sao về những công cụ này? Hay bạn có tiện ích dòng lệnh yêu thích nào khác muốn chia sẻ? Hãy để lại bình luận của bạn bên dưới!