简介
bat - a cat clone with wings,这里直译就是 “有翅膀的克隆猫” 😄。
有人翻译为 “一只会飞的猫”。
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。即用于创建、查看、连接文件。
bat 是一个 cat 的克隆,支持语法高亮显示和 Git 集成。是用于替代 cat 和增强型的 cat 命令 (sysin)。
项目主页:https://github.com/sharkdp/bat
语法高亮
bat
支持大量编程和标记语言的语法高亮(具体参看 changelog,也可以自定义语法支持或者向作者提交请求):
Git 集成
bat
可以与 git
通信显示对索引的修改(见左侧栏):
显示不可打印的字符
您可以使用 -A
/--show-all
选项来显示和突出显示不可打印的字符:
自动分页
默认情况下,如果输出对于一个屏幕显示太大,bat
将控制自己的输出管道(例如 less
)。如果你希望 bat
一直像 cat
一样工作(从不页面输出),你可以在命令行或配置文件中设置 --paging=never
作为一个选项。如果你打算在你的 shell 配置中将 cat
别名为 bat
,你可以使用 alias cat='bat --paging=never'
来保留默认行为 (sysin)。
文件连接
即使设置了分页选项,您仍然可以使用 bat
来连接文件😉。每当 bat
检测到非交互式终端(即,当你通过管道进入另一个进程或文件时),bat
将作为 cat
的替代品并回退到打印纯文件内容,不管 --pager
选项的值。
安装
macOS
1 | brew install bat |
FreeBSD
1 | pkg install bat |
和绝大多数情况一样,Unix 上自带的软件包往往版本是很新的,Linux 却常常是旧版或者没有自带。
Ubuntu
可以访问 Release 页面获取最新版:
1 | wget https://github.com/sharkdp/bat/releases/download/v0.21.0/bat_0.21.0_amd64.deb |
apt 方式安装不推荐:
1 | apt install bat |
CentOS
1 | wget https://github.com/sharkdp/bat/releases/download/v0.21.0/bat-v0.21.0-x86_64-unknown-linux-musl.tar.gz |
更多的二进制格式和源码安装参看项目主页。
使用说明
可以配置别名直接用 bat
替代 cat
。
- bash
1 | echo 'alias cat="bat"' >> ~/.bashrc |
- zsh
1 | echo 'alias cat="bat"' >> ~/.zshrc |
以下是一些示例:
- 在终端上显示单个文件
1 | bat README.md |
- 一次显示多个文件
1 | bat src/*.rs |
- 从 stdin 读取, 自动检测语法
1 | curl -s https://sh.rustup.rs | bat |
- 从 stdin 读取, 明确指定语言
1 | yaml2json .travis.yml | json_pp | bat -l json |
- 显示并高亮不可打印的字符:
1 | bat -A /etc/hosts |
- 作为
cat
的替代品:
1 | bat > note.md # 创建一个新文件 |
下载仅供下载体验和测试学习,不得商用和正当使用。
下载体验