3 công cụ dòng lệnh hiện đại đã thay thế ps, df và curl đối với tôi

Tác giả T-X, T.M.Hai 31, 2025, 09:00:10 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Khám phá những lựa chọn mới mẻ thay thế cho các lệnh *nix cũ kỹ và lỗi thời.

Có lẽ bạn đã sử dụng ps, df và curl trong nhiều năm, nhưng luôn có chỗ để cải tiến. Tôi biết tôi luôn tìm kiếm những công cụ mới, và có lẽ bạn cũng vậy? Nếu vậy, tôi có ba công cụ thay thế hiện đại cho những công cụ này mà bạn có thể thích.


Các công cụ GNU rất phong phú; có hàng trăm công cụ được cài đặt trên mọi hệ thống cơ bản. Chúng đã tồn tại từ thuở sơ khai (đúng là hơi phóng đại), và thường thì chúng chỉ cần được làm mới về mặt giao diện—và có lẽ thêm một hoặc hai tính năng. Các công cụ sau đây đáp ứng được yêu cầu đó, với giao diện người dùng đầy màu sắc và một số cải tiến cơ bản giúp người dùng dễ dàng sử dụng hơn, điều mà các phiên bản cũ hơn còn thiếu.

1. procs: Một bản nâng cấp cho chiếc PS đã cũ kỹ

Lệnh đầu tiên cần thay thế là lệnh trông cũ kỹ ps, đã tồn tại trên Linux từ năm 1992, và điều đó thể hiện rõ. Mặc dù khó có thể mở rộng thêm tiện ích của nó, nhưng nó rất cần một bản cập nhật hiện đại, và đó là điều mà procs mang lại.

Những nâng cấp của nó tuy đơn giản nhưng rất đáng hoan nghênh. Bắt đầu với giao diện người dùng đầy màu sắc, tôi không thể phủ nhận sự hữu ích của màu sắc khi đọc các kết quả đầu ra phức tạp. Từ các tệp nhật ký đến mã nguồn, văn bản thông thường (không màu) rất khó phân biệt với nhau. Nghe có vẻ đơn giản, nhưng điều đầu tiên tôi tìm kiếm ở một lệnh là giao diện hiển thị đầy màu sắc, bởi vì chúng dễ đọc hơn nhiều.


Tiếp theo trong danh sách là hỗ trợ trình đọc trang — đúng vậy, tính năng này đã có từ đầu những năm 90, và không, pskhông có tính năng này. Tôi đã bị hội chứng ống cổ tay (RSI) ở ngón tay út bên trái do sử dụng quá nhiều phím Shift+|. Trình đọc trang được ưa chuộng cho procslà less, nhưng nó cũng có thể sử dụng thêm. Để tập trung vào một tiến trình cụ thể, bạn không cần phải dùng grep nữa; bạn chỉ cần cung cấp tên tiến trình: procs bash. Nếu bạn cần nhiều từ khóa, bạn có thể sử dụng procs --or bash zsh. Ngoài ra, nó còn hỗ trợ các cờ --and, --nand, và --nor.

Ngoài ra, procsnó còn hỗ trợ thiết lập các cột tùy chỉnh, thông qua cờ hoặc tệp cấu hình đầy đủ. Có hàng tá tùy chọn cột, bao gồm vùng chứa Docker, TCP/UDP, bộ nhớ, v.v.

À, tôi quên chưa nói là nó cũng hỗ trợ Windows và macOS nữa đấy?

Ứng dụng này có sẵn trên Debian Trixie trở lên:

Mã nguồn [Chọn]
sudo apt install procs
Arch Linux:

Mã nguồn [Chọn]
sudo pacman -S procs
Fedora:

Mã nguồn [Chọn]
sudo dnf install procs
Snap:

Mã nguồn [Chọn]
sudo snap install procs
Windows:

Mã nguồn [Chọn]
winget install procs
Mac (thông qua MacPorts):

Mã nguồn [Chọn]
sudo port install procs
Và bia tự nấu:

Mã nguồn [Chọn]
brew install procs
2. duf: df nhưng với màu sắc đẹp mắt

Lệnh duf rất đơn giản. Nó không có nhiều tính năng nhưng giải quyết được một vấn đề đơn giản: khả năng đọc hiểu. dfLệnh này là một lệnh khác đã tồn tại từ những ngày đầu của Linux và vẫn giữ giao diện người dùng đen trắng cổ xưa. Vâng, màu sắc là chủ đề ở đây (cố ý chơi chữ), và duflà một lệnh siêu hiện đại khác hỗ trợ tới 256 màu sắc khác nhau.

Tuy nhiên, màu sắc không phải là tất cả; việc sắp xếp thông tin thành các nhóm có liên quan là một nguyên tắc cơ bản của thiết kế UX tốt—được gọi là Quy luật Gần gũi. Não bộ của chúng ta liên kết các mục nằm gần nhau. Chỉ cần nhìn thoáng qua, điều này giúp việc giải mã chi tiết dễ dàng hơn.


Do kết quả được hiển thị dưới dạng bảng, có lẽ bạn đang tự hỏi làm thế nào để lọc chúng. Rất đơn giản: hãy cung cấp các đường dẫn dưới dạng danh sách các tham số.

Mã nguồn [Chọn]
duf /dev /dev/shm

Bạn cũng có thể sắp xếp, định dạng, tạo chủ đề và ẩn các phần tử, nhưng tính năng nổi bật nhất đối với tôi là đầu ra JSON. Tôi rất thích lệnh jq vì nó cho phép tôi chỉ chọn ra các trường cần thiết và kết hợp các lệnh phức tạp lại với nhau.

Mã nguồn [Chọn]
duf --json | head -n 17

Mã nguồn [Chọn]
duf --json | jq '.[].device' | sort -u

Ứng dụng này có sẵn trên Ubuntu 22.04 trở lên và Debian 12 trở lên:

Mã nguồn [Chọn]
sudo apt install duf
Arch Linux:

Mã nguồn [Chọn]
sudo pacman -S duf
Fedora:

Mã nguồn [Chọn]
sudo dnf install duf
Windows (thông qua Chocolatey):

Mã nguồn [Chọn]
choco install duf
Windows (qua Scoop):

Mã nguồn [Chọn]
scoop install duf
Mac (thông qua Homebrew):

Mã nguồn [Chọn]
brew install duf
Mac (thông qua MacPorts):

Mã nguồn [Chọn]
sudo port install duf
3. HTTPie: giống curl nhưng dễ sử dụng hơn

Curl từng là một công cụ không thể thiếu trong bộ công cụ dòng lệnh của tôi, nhưng tôi nghĩ có lẽ nó cần phải nhường chỗ cho một lệnh mạnh mẽ hơn. Tôi thường xuyên sử dụng curl để truy vấn một API REST. Đối với những người chưa biết, API REST là một giao diện dựa trên văn bản mà các nhà phát triển web sử dụng để lấy dữ liệu. Bạn còn nhớ đầu ra JSON trong phần trước không? Đó chính là giao diện của một API REST.

Mỗi URL đều được tạo thành từ các phân đoạn, và một phân đoạn cụ thể được dùng để truyền thông tin đến máy chủ—được gọi là tham số GET (hay còn gọi là chuỗi truy vấn ). Nếu chúng ta xem xét cấu trúc của một URL điển hình:

Mã nguồn [Chọn]
https://www.example.com/?foo=bar&baz=foobar
Bạn có thấy hai đoạn "foo=bar" và "baz=foobar" không? Đó là các tham số GET, và chúng thường điều khiển cách máy chủ tạo ra trang web.

Khi bạn thực hiện yêu cầu bằng curl, bạn cần phải gõ toàn bộ URL, nhưng hãy so sánh điều đó với một yêu cầu HTTPie :

Mã nguồn [Chọn]
https GET example.com foo=bar baz=foobar
Không có ký tự khó hiểu nào, và ý định ("GET") rất rõ ràng. Nó cũng hỗ trợ JSON (API REST) mà không cần chỉ định các tiêu đề HTTP thích hợp, và tôi có thể nói với bạn rằng, việc gõ những thứ này sẽ trở nên cực kỳ nhàm chán sau vài chục lần.

Mã nguồn [Chọn]
curl 'https://example.com/?foo=bar&baz=foobar' -H 'Content-Type: application/json'
Kết quả cũng được hiển thị bằng màu sắc! Điều này giúp việc đọc dễ dàng hơn nhiều, bởi vì JSON đặc biệt khó đọc khi không có màu:


Đó chưa phải là tất cả; HTTPie hỗ trợ tải lên tập tin nhiều phần, gửi biểu mẫu, phiên làm việc và thậm chí cả một --downloadtính năng tiện dụng:

Mã nguồn [Chọn]
https --download ash-speed.hetzner.com/10GB.bin

Để cài đặt nó trên Debian, Ubuntu và tất cả các bản phân phối dựa trên Debian khác, trước tiên bạn cần thêm kho lưu trữ HTTPie:

Mã nguồn [Chọn]
curl -SsL https://packages.httpie.io/deb/KEY.gpg \
  | sudo gpg --dearmor -o /usr/share/keyrings/httpie.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/httpie.gpg] https://packages.httpie.io/deb./" \
  | sudo tee /etc/apt/sources.list.d/httpie.list > /dev/null
sudo apt update
sudo apt install httpie

Fedora:

Mã nguồn [Chọn]
sudo dnf install httpie
Arch Linux:

Mã nguồn [Chọn]
sudo pacman -S httpie
Snap:

Mã nguồn [Chọn]
sudo snap install httpie
Windows (thông qua Chocolatey):

Mã nguồn [Chọn]
choco install httpie
Mac (thông qua Homebrew):

Mã nguồn [Chọn]
brew install httpie
Mac (thông qua MacPorts):

Mã nguồn [Chọn]
sudo port install httpie
Đó là ba lựa chọn hàng đầu của tôi mà có lẽ bạn chưa từng nghe đến. Phải thừa nhận rằng, lựa chọn cuối cùng (HTTPie) hữu ích hơn cho các nhà phát triển web, nhưng nó cũng phù hợp với bất kỳ ai viết kịch bản giao tiếp với API REST — điều này không quá hiếm.

Tôi cũng cần nói thêm rằng các công cụ GNU sẽ không biến mất. Chúng có mặt trên mọi hệ thống cơ bản và curlkhá phổ biến. Chúng là những công cụ tuyệt vời và mọi người đều biết cách sử dụng chúng. Chỉ là giao diện hơi lỗi thời một chút, và các công cụ được đề xuất sẽ mang lại sự đổi mới cần thiết.