Bài này là bài đầu tiên trong series các bài giới thiệu một số tool command line phi tiêu chuẩn tốt nhất mà tác giả đã phát hiện ra gần đây. Nếu bạn từng sử dụng command line, có thể bạn sẽ thấy rằng ít nhất một mục trong bài post này sẽ giúp cuộc sống của bạn dễ dàng hơn.
Một trong những tính năng tiện lợi của thanh địa chỉ trên browser đã được tích hợp vào command line. Bạn muốn nhanh chóng truy cập Twitter? Nhập “tw” vào thanh địa chỉ và nhấn enter là xong.
Cách thông thường để điều hướng các hệ thống file thông qua command line (sử dụng cd
) dường như rất lạc hậu. May mắn là, z
(GitHub) mang điều hướng kiểu trình duyệt này đến command line.
Sau một thời gian học ngắn, z
sẽ cho phép bạn chuyển đến một thư mục từ bất cứ đâu, chỉ sử dụng một chuỗi con của tên thư mục đích. Thư mục mà z
sẽ đưa bạn đến được xác định bởi đối số chuỗi bạn đã đưa ra, tần suất bạn truy cập thư mục và cách bạn truy cập thư mục gần đây như thế nào. Họ gọi đó là “tần số”.
z
không chỉ tăng tốc độ bạn có thể điều hướng hệ thống file của mình, mà nó còn làm giảm tải cognitive load khi điều hướng. Với cd
, bạn cần nhớ chính xác vị trí thư mục đích nằm ở đâu và tìm ra đường dẫn đến đó. Với z
, chỉ cần biết tên của thư mục là đủ.
Các port từ z
đến các shells (như fish và zsh) cũng có sẵn. autojump
(GitHub) là một dự án tương tự.
z
bash
, trên macOS (Homebrew): brew install z
fish
shell, trên macOS (Fisher): fishing add jethrokuan / z
fzf
, một công cụ tìm mờ nhanhSau khi cài đặt fzf
(GitHub), bạn có thể nhấn Ctrl + T
bất cứ lúc nào để mở giao diện tìm kiếm mờ tương tác, nó sẽ tìm kiếm các tệp trong thư mục hiện tại liên tục. Bạn có thể nhập cụm từ tìm kiếm và nhấn phím lên / xuống để di chuyển kết quả. Nếu bạn nhấn phím enter, kết quả đã chọn sẽ được chèn vào terminal của bạn:
Trong ví dụ trên, tôi đã gõ bat
(đây có thể là bất kỳ command nào, chẳng hạn như less
, cd
, v.v.), sau đó nhấn Ctrl + T
. Tôi gõ five
, nhấn enter và đường dẫn src / five.rs
được chèn vào vị trí con trỏ của tôi. Điều này giúp thay thế các đường dẫn dài hoặc khó nhớ như (đại khái): gõ src
, nhấn tab, gõ fi
, nhấn tab
fzf
brew install fzf
fisher add jethrokuan/fzf
bat
, xem các file với cú pháp highlightingNếu bạn muốn nhanh chóng xem một file nguồn với cú pháp highlighting đầy đủ, bat
(GitHub) sẽ giúp bạn. bat
có thể được sử dụng như là một sự thay thế cho cat
.
Nếu output đủ lớn (như trong ví dụ trên), bat
sẽ chuyển đầu ra của nó thành less
, có nghĩa là chúng ta “được” đánh số trang “miễn phí!”
bat
brew install bat
bench
, kiểm chuẩn code của bạnbench
(GitHub) là một công cụ cực kỳ hữu ích benchmark code của bạn. Nó được viết bằng Haskell, Bạn có thể chuyển bất kỳ command nào bạn có thể chạy từ terminal của mình đến nó (trong dấu ngoặc kép) và nó sẽ đo thời gian thực hiện bằng cách chạy command liên tục. Khi hoàn thành, nó sẽ xuất các số liệu thống kê đến terminal của bạn.
Đây là một phương tiện đo lường thời gian thực thi code tốt hơn hẳn so với lệnh time
tích hợp.
Có thể bạn quan tâm rằng hyperfine
(GitHub) là một tool thay thế cho bench
được viết bằng Rust.
bench
brew install bench
asciinema
& svg-term
, ghi terminal dưới dạng SVG animation
Các clip terminal phiên bản của bài đăng này trên blog cá nhân của tôi là SVG animation (không may là dev.to không hỗ trợ tải lên SVG)! Bạn sẽ nhận thấy rằng chúng sắc nét hơn nhiều so với các gif trên trang này. Sử dụng SVG thay vì format video hoặc gif có một số lợi ích to lớn:
Để ghi lại terminal, tôi sử dụng asciinema
. Bắt đầu ghi với asciinema
rec. Khi bạn kết thúc, nhấn Ctrl + D
và bạn sẽ được cung cấp các option hoặc là lưu bản ghi cục bộ hoặc là tải nó lên asciinema.org.
Nếu bạn muốn tạo SVG animation từ bản ghi của mình bằng cách sử dụng svg-term
(GitHub), bạn sẽ cần chọn option để tải lên bản ghi của mình, sau đó công khai bằng cách truy cập link kết quả.
Để chuyển đổi bản ghi thành SVG animation, bạn phải cung cấp ID của cast (có sẵn trên trang asciinema sau khi đặt ở chế độ công khai – ID nằm trong URL), file output và nhiều đối số tùy chọn khác. Ví dụ: để lưu bản ghi terminal tại https://asciinema.org/a/219486
thành file SVG, tôi đã sử dụng:
1
2
3
|
svg-term --cast=219486 --out ~/somewhere/out.svg --padding 18 --height 8 --width 80
|
asciinema
& svg-term
asciinema
trên macOS: brew install asciinema
svg-term
trên macOS: npm install -g svg-term-cli
wrk
, kiểm chuẩn API HTTP của bạnĐây là một công cụ rất tiện dụng để kiểm tra hiệu năng API của bạn. Để chứng minh, tôi đã có một máy chủ API HTTP Python tối giản với một điểm cuối duy nhất (GET / hello
) chạy trên máy cục bộ tại cổng 8001. Chúng ta có thể kiểm tra xem /hello
endpoint thực hiện tốt như thế nào khi sử dụng wrk
(với 12 luồng, 200 kết nối, trong 5 giây):
Bạn có thể điều chỉnh số lượng threads, connections và thời lượng thử nghiệm để kiểm tra hiệu suất theo các load khác nhau. Nó không phải là sự thay thế cho các công cụ kiểm tra hiệu suất như Locust và JMeter, nhưng nó rất nhẹ và sẽ đủ dùng trong nhiều tình huống.
Thật không may là, giao diện command line cho wrk
làm cho việc thực hiện các yêu cầu POST hơi khó xử. Nếu bạn muốn làm điều đó, bạn sẽ cần viết một script Lua nhỏ và cung cấp nó cho command dưới dạng đối số (có thêm thông tin trong tài liệu).
wrk
brew install wrk
exa
, một tool thay thế cho ls
exa
là một sự thay thế hiện đại cho ls
với output code có màu giúp chúng ta dễ nhìn hơn một chút và một loạt các option lớn hơn để kiểm soát cách trình bày đầu ra.
Nó hỗ trợ các tính năng như giữ các tệp .gitignore thông qua cờ --git-ignore
và in
ra một thư mục dưới dạng cấu trúc cây với cờ -T
(xem bên trên). Nó thậm chí còn hiển thị trạng thái git của các file!
exa
brew install exa
fd
, tìm file và thư mục
Nếu bạn đang tìm kiếm một file hoặc thư mục, bạn thường sử dụng command find
để thực hiện tìm kiếm dựa trên biểu thức thông thường. fd
(GitHub) là một giải pháp thay thế cho find được viết bằng Rust, cung cấp giao diện thuận tiện hơn bằng cách sử dụng các default hợp lý và khởi động nhanh hơn!
Nó sẽ giữ các file .gitignore và nó hỗ trợ thực thi lệnh song song, cho phép bạn thực thi terminal command (song song) cho mọi file hoặc thư mục được trả về cho tìm kiếm. Ví dụ: (từ tài liệu fd
), để tìm tất cả các file .jpg và chuyển đổi chúng thành các file .png song song sử dụng Unix conver
t command, bạn có thể chạy:
1
2
3
|
fd -e jpg -x convert {} {.}.png
|
fd
brew install fd
rg
(ripgrep), tìm chuỗi trong filerg
(GitHub) là một sự thay thế cho grep
nhanh hơn (nhiều)
rg
được viết bằng Rust và nó hỗ trợ chức năng tìm kiếm bên trong trình soạn thảo văn bản VS Code. Nó luôn vượt trội hơn so với các tool tương tự trong kiểm chuẩn.
brew install ripgrep
Hy vọng bạn tìm thấy một điều gì đó hữu ích trong bài viết này! Nếu bạn quan tâm đến nhiều nội dung như thế này, hãy theo dõi tôi trên Twitter và DEV.
Via Techtalk