发现 
命令行工具开发者工具
bat:带语法高亮的 cat 替代品
一个支持语法高亮与 Git 集成的 cat 替代命令行工具,适合开发者在终端中查看文件。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v0.26.1
- 平台
- Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。
详细介绍
项目简介
bat 是一个用 Rust 编写的 cat(1) 替代品,在输出文件内容的同时提供语法高亮、Git 修改标记、非可打印字符显示和自动分页。它兼容 cat 的用法,可以直接在终端里查看单个或多个文件,也可以处理标准输入。

主要功能
-
语法高亮:支持大量编程语言和标记语言。
-
Git 集成:与
git通信,在左侧栏显示相对于索引的修改标记。
-
显示不可打印字符:使用
-A/--show-all选项显示并高亮非可打印字符。
-
自动分页:输出超过一屏时默认交给分页器(如
less);可用--paging=never关闭,或在配置文件中设置。 -
兼容
cat:检测到非交互终端(管道或重定向)时,无论--pager如何设置,都会退化为直接输出纯文件内容,因此可作为cat的直接替代。
安装与使用
各平台安装方式(节选):
brew install bat # macOS / Linux via Homebrew
sudo apt install bat # Ubuntu / Debian
pacman -S bat # Arch Linux
dnf install bat # Fedora
apk add bat # Alpine Linux
winget install sharkdp.bat # Windows
choco install bat # Windows via Chocolatey
基本用法:
bat README.md # 显示单个文件
bat src/*.rs # 一次显示多个文件
curl -s https://sh.rustup.rs | bat # 从 stdin 读取并自动判断语法
yaml2json .travis.yml | json_pp | bat -l json # 显式指定语言
bat -A /etc/hosts # 显示并高亮非可打印字符
bat -n main.rs # 只显示行号
与其他工具组合:
# 作为 fzf 的预览器
fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"
# 配合 find / fd
find … -exec bat {} +
fd … -X bat
# 持续监控日志
tail -f /var/log/pacman.log | bat --paging=never -l log
# 查看 Git 历史版本
git show v0.6.0:src/main.rs | bat -l rs
# 作为 man 的着色分页器
export MANPAGER="bat -plman"
man 2 select
给帮助信息着色:
alias bathelp='bat --plain --language=help'
help() {
"$@" --help 2>&1 | bathelp
}
注意事项
- 部分较旧的 Ubuntu/Debian 发行版中可执行文件名为
batcat(与另一个包重名),若bat --version不可用可尝试batcat --version,或建立软链接/别名:ln -s /usr/bin/batcat ~/.local/bin/bat。 - 若希望在 shell 中把
cat别名为bat并保留原有行为,可使用alias cat='bat --paging=never'。 - 需要在 Windows 上预先安装 Visual C++ Redistributable。
- 从标准输入读取时,只有在能从首行(通常是 shebang,如
#!/bin/sh)判断出语言时才会高亮,也可用-l显式指定。 - 行号和 Git 标记会影响复制文件内容,此时可用
-p/--plain或直接管道输出,bat会自动输出纯文本。
本作品整理自 GitHub 开源项目 sharkdp/bat,原作者 @sharkdp,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.26.1当前版本
为 -h 与 --help 输出增加分页;修复 --list-themes 配合显式分页器时卡住、行范围负值解析、管道时装饰误用、--help 读取配置等问题,并更新多项语法定义。
评论