13/01/2019, 00:04

10 tool làm tăng sức mạnh cho Command line

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ôi đã 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. z, jump ...

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ôi đã 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.

z, jump around

Jump Around

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ự.

Cài đặt z

  • Cài đặt phiên bản bash, trên macOS (Homebrew): brew install z
  • Cài đặt phiên bản fish shell, trên macOS (Fisher): fishing add jethrokuan / z

fzf, một công cụ tìm mờ nhanh

Sau 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:

fzf

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

Cài đặt fzf

  • Trên macOS (Homebrew): brew install fzf
  • Ràng buộc cho fish: fisher add jethrokuan/fzf

bat, xem các file với cú pháp highlighting

- - - - - - - - - - - - - - - - - - - - Được tài trợ - - - - - - - - - - - - - - - - - - - -

Nế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.

bat

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í!”

Cài đặt bat

  • Trên macOS (Homebrew): brew install bat

bench, kiểm chuẩn code của bạn

bench (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.

bench

Đâ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.

Cài đặt bench

  • Trên macOS sử dụng Homebrew: 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:

  • Chất lượng hoàn hảo kể cả khi zoom
  • Chúng ta có thể đặt chúng trong các tệp Markdown như mọi hình ảnh khác
  • Kích thước file nhỏ hơn so với format video và gif
  • SVG animation thú vị hơn video

Để 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.

asciinema_example

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:

Cài đặt asciinema & svg-term

  • Cài đặt asciinema trên macOS: brew install asciinema
  • Cài đặt 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):

wrk

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).

Cài đặt wrk

  • Trên macOS sử dụng Homebrew: 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.

Exa

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!

Cài đặt exa

  • Trên macOS sử dụng Homebrew: 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!

fd

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 convert command, bạn có thể chạy:

Cài đặt fd

  • Trên macOS sử dụng Homebrew: brew install fd

rg (ripgrep), tìm chuỗi trong file

rg (GitHub) là một sự thay thế cho grep nhanh hơn (nhiều)

rg

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.

Cài đặt ripgrep

  • Trên macOS sử dụng Homebrew: brew install ripgrep

Kết luận

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.

Techtalk via dev.to

0