删除 Linux cat 命令,改为使用 bat
Linux 上的命令cat
将文件连接在一起。它通常用于将一个文件连接到空文件,以将单个文件的内容打印到终端。这是一种快速预览文本文件内容的方法,而无需在大型应用程序中打开文件。
这样做并没有错cat
,但是多年来人们已经开发出了类似的命令,其中功能最多的命令是bat
。
语法高亮
开发人员称 为bat
“带翅膀的克隆”,该版本根据 MIT 许可证或 Apache 许可证 2.0(您选择)的条款提供cat
。关于这些翅膀是什么,可能存在着激烈的争论,但对我来说,它是语法突出显示和行号。这是一个高度可视化的功能,在浏览文件时非常有用。
因为您可能会将bat
输出用作第二个命令的输入,所以您可以使用该--plain
选项停用行号等额外数据。支持的终端保留语法高亮显示。
该--plain
选项是 的别名--style=plain
,它暗示了您可以自定义命令输出的方式。以下是我最喜欢的一些选项--style
:
- plain:不包括在输出中添加额外字符的样式
- header:在文件内容之前打印文件名
- header-filesize:在文件内容之前打印文件大小
- grid:添加网格线以分隔输出
- numbers:打印行号
这并不是所有的样式选项,只是我经常使用的选项。
Git 集成
我说过语法高亮是我最喜欢的功能吗?我的意思是 Git 集成是我最喜欢的功能。bat
默认情况下,该命令支持 Git。当您在 Git 存储库中时,您可以使用该--diff
选项仅查看文件自上次提交以来的更改。
例如,假设我在僵尸末日游戏的 Git 存储库中。我最近更新了一些代码,但我记不清更新了多少内容。
$ bat --diff Zombie.java
1 public class Player {
2
3 private BufferedImage image;
4+ private Position pos;
5 private Health health;
6-
7 public Zombie() {
8 loadImage();
[...]
如果自上次提交以来添加了一行,则+
边缘会出现一个加号 ( ),而如果更改或删除了一行,-
则会出现一个减号 ( )。
该--diff
选项仅适用于 Git。它不是通用的diff 工具。
突出显示任意行
您可以突出显示文件中的一系列行。这不是语法突出显示,语法突出显示bat
会自动执行。相反,这会用实心框标记每一行,就像模仿您在纸上使用的荧光笔一样。
$ bat --highlight-line=20:26 ZombieCruncher.java
您的结果可能会因此效果而有所不同。在某些屏幕上,我感觉这种效果不是突出显示,而是由于对比度下降而变得模糊。不过,它是一种视觉标记,对某些人来说可能很有用。
安装bat
中的功能比我在这里介绍的要多bat
,但这些是我最常用的功能。命令bat
并非绝对必要。诸如cat
和more
,甚至sed
或 之类的命令awk
在紧急情况下,执行的功能基本相同,但bat
有意识地以更多风格执行。如果您喜欢彩色输出和一些额外上下文的视觉辅助,那么这很重要。
要在 Fedora 上安装 bat,请使用包管理器:
$ sudo dnf install bat
在其他系统上,您可以从 bat Git 存储库下载二进制版本或使用命令构建它crate
。