Bạn có bao giờ cảm thấy các tiện ích tiêu chuẩn trên Linux thật tẻ nhạt không? Chức năng của chúng là thiết yếu, nhưng chúng lại thiếu đi sự hấp dẫn. Sẽ thế nào nếu bạn có thể “thổi hồn” vào các đầu ra đó bằng những màu sắc rực rỡ, hay thậm chí tăng tốc độ xử lý? Các tiện ích dòng lệnh (terminal utilities) được giới thiệu dưới đây sẽ làm được điều đó và hơn thế nữa, giúp bạn biến terminal Linux nhàm chán trở thành một môi trường làm việc mạnh mẽ và trực quan hơn. Từ việc tô màu cú pháp, tìm kiếm siêu tốc, đến quản lý lịch sử lệnh thông minh, những công cụ này sẽ cách mạng hóa trải nghiệm của bạn với hệ điều hành Linux.
bat: Thay Thế cat Với Tô Màu Cú Pháp Vượt Trội
Cửa sổ terminal hiển thị mã nguồn được tô màu cú pháp bởi tiện ích bat, giúp đọc code dễ dàng hơn trên Linux.
Lệnh cat
là một trong những lệnh đầu tiên mà nhiều người dùng Linux học và sử dụng thường xuyên. Tuy nhiên, nó đang dần lỗi thời 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 khi đọc các tệp phức tạp như tệp cấu hình (config files), mã nguồn (code), JSON hay YAML, khiến việc nắm bắt cấu trúc và nội dung trở nên kém hiệu quả.
bat
chính là một phiên bản nâng cấp hoàn hảo của cat
. Nó giải quyết triệt để vấn đề khả năng đọc bằng cách tô màu cú pháp (syntax highlighting) cho các tệp phức tạp. Nhờ đó, các phần và ranh giới trong tệp trở nên rõ ràng hơn, giúp người dùng dễ dàng đọc và hiểu nội dung.
Ngoài tính năng tô màu, bat
còn sở hữu nhiều ưu điểm khác, tăng thêm sự hấp dẫn cho tiện ích này. Nó có khả năng tích hợp với Git để đánh dấu các dòng đã thay đổi, cực kỳ hữu ích cho các nhà phát triển. Hơn nữa, bat
còn có thể làm việc với các công cụ khác như fzf
hay find
để hiển thị cửa sổ xem trước có màu sắc. bat
có mặt rộng rãi trên hầu hết các kho lưu trữ của bản phân phối Linux, giúp việc cài đặt trở nên dễ dàng.
ripgrep: grep Phiên Bản Tăng Tốc Với Tìm Kiếm Thông Minh
Kết quả tìm kiếm từ ripgrep trên terminal, từ khóa tìm kiếm được làm nổi bật màu đỏ, chứng tỏ tốc độ tìm kiếm hiệu quả.
Tương tự như các tiện ích khác trong danh sách này, ripgrep
là một bản nâng cấp mạnh mẽ của người tiền nhiệm grep
chuẩn. Điểm nổi bật nhất của ripgrep
chính là tốc độ vượt trội. Nó thực hiện nhiều tìm kiếm song song, trong khi grep
truyền thống thì không. ripgrep
tận dụng sức mạnh của các CPU hiện đại bằng cách phân tán công việc trên tất cả các lõi CPU, mang lại hiệu suất đáng kinh ngạc.
Không chỉ nhanh chóng, ripgrep
còn được trang bị một loạt các tính năng hữu ích:
- Phát hiện chữ hoa thông minh (Smart case detection): Một tính năng đơn giản nhưng vô cùng tinh tế. Nếu bạn sử dụng chữ hoa trong cụm từ tìm kiếm, quá trình tìm kiếm sẽ tự động trở thành phân biệt chữ hoa/thường. Đây là một tiện ích nhỏ nhưng nâng cao chất lượng trải nghiệm người dùng.
- Bỏ qua các tệp và thư mục cụ thể:
ripgrep
có thể bỏ qua các tệp và thư mục theo chỉ dẫn từ tệp.gitignore
hoặcignore
. Ví dụ, một tệp cấu hình như sau sẽ khiếnripgrep
bỏ qua tất cả các hình ảnh có tênfoo.jpg
hoặc thư mụcignored_dir
:ignored_dir/**/foo.jpg
- Tích hợp tốt 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 khả năng tích hợpripgrep
. Điều này 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ủaripgrep
.fzf
(một tiện ích khác) còn cung cấp các tính năng nâng cao hoạt động rất hiệu quả vớiripgrep
. - Tìm kiếm trong tệp nén:
ripgrep
có thể tìm kiếm thông qua các tệp nén bằng cờ-Z
. Nếu bạn có một thư mục chứa nhiều tệp văn bản và tệp nén,ripgrep
có thể xử lý tất cả mà không cần giải nén thủ công, giúp tiết kiệm đáng kể thời gian và công sức.
ripgrep
có sẵn trong hầu hết các kho lưu trữ của bản phân phối Linux, bạn có thể tham khảo hướng dẫn của bản phân phối để cài đặt.
delta: Biến Output ripgrep Thành Nghệ Thuật Với Diff Đẹp Mắt
delta
là một công cụ đặc biệt hữu ích cho các lập trình viên và nhanh chóng trở thành một trong những tiện ích yêu thích. ripgrep
thực hiện công việc tuyệt vời trong việc tìm kiếm nhanh chóng các tệp để tìm chính xác những gì bạn cần, với 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ó đôi khi 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 điều này đơn giản và chỉ tập trung vào cụm từ 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, việc xem ngữ cảnh xung quanh và màu sắc là rất quan trọng, vì cả hai yếu tố này giúp phân biệt thông tin cần thiết khỏi những nhiễu loạn.
Đối với những lập trình viên, delta
áp dụng tô màu 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ý phiên bản tài liệu. Ví dụ, delta
cung cấp một chế độ xem song song đẹp mắt về các thay đổi trong tài liệu (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 dotfiles
(các tệp 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 trữ dotfiles
của mình, tôi thực sự khuyên bạn nên sử dụng Git. Trong trường hợp đó, delta
cũng rất đáng để xem xét, chỉ riêng với tính năng xem diff.
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 số 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: Tìm Kiếm File Nhanh Hơn find, Đẹp Hơn Với Màu Sắc
Danh sách đường dẫn file được trả về bởi lệnh fd trong terminal Linux, thể hiện khả năng tìm kiếm file nhanh và hiệu quả.
Đúng như tiêu đề, fd
hoạt động tương tự như find
nhưng với tốc độ nhanh hơn đáng kể và màu sắc trực quan hơn. Màu sắc, như đã đề cập, giúp kết quả tìm kiếm dễ đọc và phân biệt hơn. fd
mã hóa màu cho các loại tệp và đường dẫn thư mục khác nhau, giúp bạn nhanh chóng nhận diện chúng.
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 các lõi CPU hiện đại. Khả năng này không chỉ giới hạn ở việc duyệt thư mục; nó còn áp dụng cho việc thực thi lệnh. Khi bạn sử dụng cờ -X
, fd
sẽ chạy một lệnh song song với mỗi kết quả tìm kiếm. Ví dụ:
fd foo.txt -x bat --color=always
Giống như ripgrep
, fd
cũng hỗ trợ tìm kiếm smart case và tuân thủ tệp .gitignore
, giúp các tìm kiếm thuận tiện hơn và tự động loại bỏ các kết quả không mong muốn.
fd
có sẵn cho hầu hết các bản phân phối Linux, vì vậy để cài đặt, 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 bạn đang sử dụng.
eza: Nâng Cấp Lệnh ls Với Icon, Màu Sắc và Hyperlink
eza
là một phiên bản hiện đại của lệnh ls
tiêu chuẩn trên Linux, với các tính năng chính là hỗ trợ màu sắc và biểu tượng (icon) tốt hơn. Mặc dù biểu tượng có thể không quá cần thiết, nhưng tôi thấy chúng là một điểm nhấn thú vị; còn đối với tôi, màu sắc là yếu tố thiết yếu.
eza
còn có một số tính năng hấp dẫn 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 tệp 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 là khác nhau và bạn có thể cần kích hoạt chúng theo cách thủ công.
Điều tuyệt vời nhất là các siêu liên kết này cũng hoạt động với chế độ xem cây thư mục, cho phép bạn nhanh chóng điều hướng qua các thư mục lớn. Tuy nhiên, một vấn đề nhỏ mà tôi đã nhận thấy là chế độ xem cây thư mục của eza
chậm hơn đáng kể so với lệnh tree
tiêu chuẩn. tree
sẽ hiển thị kết quả theo thời gian thực khi chúng được tìm thấy, trong khi eza
sẽ duyệt toàn bộ thư mục (đôi khi rất lớn) 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 bạn sẽ có màu sắc đẹp mắt và các liên kết có thể nhấp!
Một lưu ý cuối cùng là việc gõ eza --icons
mỗi lần khá phiền phức, vì vậy bạn có thể tạo một alias để rút ngắn lệnh.
eza
có sẵn cho hầu hết các bản phân phối phổ biến. Bạn có thể tham khảo trình quản lý gói của bản phân phối. Tuy nhiên, việc cài đặt trên Debian và Ubuntu yêu cầu thêm một kho APT tùy chỉnh, nhưng trang chủ của eza
(eza.rocks) đã hướng dẫn chi tiết về vấn đề này.
fzf History Search: Tìm Kiếm Lịch Sử Lệnh Mờ Không Thể Thiếu
Cửa sổ terminal hiển thị danh sách các lệnh đã gõ trước đó, được tìm kiếm bằng fzf History Search giúp quản lý lịch sử lệnh dễ dàng.
Dù bạn là người mới bắt đầu hay một “lão làng”, 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 thiết yếu—đó là công cụ quan trọng nhất đối với tôi. Gõ lại các lệnh là một việc tẻ nhạt, vì vậy tôi chỉ muốn làm điều đó một lần. Tìm kiếm các lệnh trước đó cũng tẻ nhạt không kém, vì việc sử dụng phím lên và xuống làm chậm đáng kể quy trình làm việc của tôi. 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à một tìm kiếm xấp xỉ gần đúng. Ví dụ, gõ “emp” hoặc “xpe” có thể khớp với “example”. Tại sao điều này quan trọng? Bởi vì tôi không thể nhớ một lệnh mà tôi đã gõ cách đây hai tháng, hoặc việc nhanh chóng chuyển đổi giữa nhiều lệnh sẽ làm suy giảm 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ờ sẽ nhanh chóng thu hẹp kết quả tìm kiếm theo 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 tên là Atuin gần như tương tự. Cả hai đều thực hiện một công việc đơn giản nhưng hiệu quả.
Bạn có thể tham khảo kho GitHub của fzf History Search
để biết hướng dẫn cài đặt. Bạn cũng có thể muốn tìm hiểu thêm 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 Thưởng: Tìm Kiếm Và Mở File Chuyên Nghiệp Với fzf, ripgrep, bat
Terminal Linux chia đôi màn hình, phần trên hiển thị mã nguồn với tô màu cú pháp từ bat, phần dưới là danh sách file tìm được bởi fzf và ripgrep.
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 tệp 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. Hãy đặt lệnh sau vào tệp .bashrc
của bạn và sau đó tải lại nó bằng source bashrc
.
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 mở các tệp bằng nano
, nhưng bạn có thể thiết lập để sử dụng Vim, Neovim, Emacs và một số trình soạn thảo khác. Đơn giản chỉ cần đặt biến EDITOR
trong tệp .bashrc
của bạn và tải lại:
export EDITOR=nvim
Để sử dụng script, bạn chỉ cần chuyển đến một thư mục chứa các tệp 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ụm từ tìm kiếm, bạn có thể tăng đáng kể độ chính xác của nó nếu bạn tìm hiểu về Regex, một cú pháp tìm kiếm nâng cao mà bạn có thể học trong vòng một giờ.
Nếu không có fzf History Search
, ripgrep
và delta
, tôi cảm thấy mình như “mất phương hướng” khi làm việc với dòng lệnh, và vì vậy chúng thường là những công cụ đầu tiên mà tôi cài đặt. Tương tự, thiếu eza
, bat
và fd
, terminal trở nên đơn điệu và khó đọc. Đây không phải là một danh sách đầy đủ, và có rất nhiều tiện ích terminal khác để bạn khám phá. Hãy bắt đầu trải nghiệm những công cụ này ngay hôm nay để nâng tầm năng suất và biến terminal Linux của bạn thành một môi trường làm việc mạnh mẽ, trực quan hơn bao giờ hết!