Featured image of post bat – 經典 Linux cat 命令的現代替代品

bat – 經典 Linux cat 命令的現代替代品

bat 是一個用 Rust 語言寫的 cat 替代品,支援顏色、行號、Git、標籤、JSON、Markdown、顯示非印刷字元、自動分頁、自動語法高亮、自動 git diff 等等。

最後更新
約 505 字

前言

bat 是一個用 Rust 語言寫的 cat 替代品,支援顏色、行號、Git、標籤、JSON、Markdown、顯示非印刷字元、自動分頁、自動語法高亮、自動 git diff 等等。

安裝

Debian 和 Ubuntu

bat 在 Ubuntu 20.04 (“Focal”) 和 Debian 11 (“Bullseye”) 之後可用。 如果你的 Ubuntu/Debian 版本足夠新的,你可以直接執行:

1
sudo apt install bat

如果你這樣安裝 bat,請注意執行檔可能會安裝為 batcat 而不是 bat (因為與另一個套件名稱衝突)。

可以設置一個 bat -> batcat 的符號連結或別名來防止因此而出現的任何問題,並與其他發行版保持一致。

設置符號連結

1
2
mkdir -p ~/.local/bin
ln -s /usr/bin/batcat ~/.local/bin/bat

取代 cat

1
alias cat='batcat' --save

列出所有高亮樣式

1
bat --list-themes

列出所有語法高亮

1
bat --list-languages

配合 fzf 使用,選擇喜歡的主題樣式

1
bat --list-themes | fzf --preview="bat --theme={} --color=always /path/to/file"

整合其他工具

fzf

您可以使用 bat 作為 fzf 的預覽器。 為了做到這點,使用 bat --color=always 選項來強制彩色輸出。 您也可以使用 --line-range 選項來縮短長檔案的加載時間:

1
fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"

findfd

您可以使用 find-exec 選項來用 bat 預覽所有搜尋結果:

1
find … -exec bat {} +

如果您剛好使用 fd,您可以使用 -X / --exec-batch 選項來實現相同的功能:

1
fd … -X bat

tail -f

bat 可以與 tail -f 結合使用,以語法高亮的方式持續監控指定的檔案。

1
tail -f /var/log/pacman.log | bat --paging=never -l log

請注意,我們必須關閉分頁才能讓這個功能正常運作。我們也明確指定了語法(-l log),因為在這種情況下無法自動檢測。

Licensed under CC BY-NC-SA 4.0
最後更新 2024-09-26 10:35:22

使用 Hugo 建立
主題 StackJimmy 設計