1

比Cat更好用的命令!

 2 years ago
source link: https://developer.51cto.com/article/707013.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
比Cat更好用的命令!-51CTO.COM
比Cat更好用的命令!
作者:良许 2022-04-20 12:17:50
Bat 命令真的十分强大,简直是 cat 命令的完美代替品!特别是它的语法高亮、自动翻页功能,简直是对 cat 的精准狙杀。

作为程序员,大家一定对 cat 这个命令不陌生。它主要的功能就是用来显示文本文件的具体内容。

但 cat 命令两个很重大的缺陷:

  • 不能语法高亮输出;
  • 文本太长的话无法翻页输出。

正是这两个不足,使得 cat 只能用来查看行数不多的小文件。

为了解决 cat 命令这两个缺点,国外有大牛将 cat 命令进行了增强,强大到连 cat 亲妈都不认识!

b4ca8b1156571f9d0a419415377c764294da77.jpg

它就是本文的主角:bat 命令。

bat 命令可以用来做啥呢?简单来说有下面这些:

  • 语法高亮。它可以根据编程语言以及 markdown 语法将文本关键词高亮,可阅读性大大增强;
  • 自动翻页。如果文本内容太长,超过一页的话,它会自动将内容通过管道传到 less 命令,实现翻页的效果;
  • 集成Git。bat 命令跟 git 完美结合,将文本的修改部分在左侧展示,一眼就可以看出文件修改了啥。
  • 显示不可打印字符。有些字符无法通过 cat 在屏幕上显示,但 bat 让它们无处遁形!

bat 的这些特性,真的是分分钟让 cat 打下神坛!(怪不得人家是以 b 开头的,牛 B 的 B !)

一、bat命令的安装

现在很多 Linux 发行版的官方源已经内置了这个命令,所以只需使用它们对应的安装工具就可以安装。

以 Ubuntu 为例,只需要运行以下命令就可以安装 bat :

$ sudo apt-get install bat

这里要注意一下,由于名称的冲突,在 Ubuntu 下无法直接通过敲 bat 这三个字母运行 bat 命令,而是需要敲 batcat 。为了方便,我们可以设置别名:

$ alias "bat=batcat"

二、bat命令的使用

1. 基本使用

bat 命令的用法跟 cat 大差不差的,我们直接上图来看下对比。

f12861c316832dd0127448adae9f9d51186e45.jpg

可以看到,bat 命令除了输出与 cat 一样的文本内容之外,还输出了包括行数、文件名、表格外框等元素,看起来信息会更多。

如果行数比较多,还可以使用 --line-range 来显示指定行数的内容。

b42d68a7249b9b3d1468276cbe1607198ce1ea.jpg

而且,它还可以跟其它命令通过管道一起结合着用:

047169e093b6dac5909507ac7c9a90eb329813.jpg

2. 语法高亮

bat 对大部分编程语言和标记语言提供语法高亮,这样阅读起来就更方便了,可读性更强。

55c5f6836d3519455c466658dfc2d795a99d81.jpg

而且,你还可以通过使用 --list-languages 参数来显示所有支持的语言:

85bc405720efb7afcd83698f8651aea824206e.jpg

3. Git 集成

bat 能从 git 中获取文件的修改并展示在边栏(见下图):

3488ac55833bb35fe6e5914d4aca24868f22cc.jpg

4. 显示不可打印字符

有时候文本里有一些不可显示的字符,如果使用 cat 命令查看的话,将看不到这些字符。但如果使用 bat 命令,这些字符就无处遁形。这里需要加上 -A/--show-all 参数。

921a6456350a566376c4644783495fecb800f7.jpg

5. 自动翻页功能

这应该是直戳 cat 命令痛点的功能。

由于 cat 命令不管文本长度如何,全部一股脑就给你显示出来,使得我们需要查看内容比较多的文本文件的时候,必须选择其它命令(比如 more 、less 等等)。

bat 命令很明显是冲着这个痛点来的。它在文本内容超过一屏可显示范围时,就会将其发送到 less 命令,然后我们就可以像使用 less 一样进行翻页操作,非常方便。

b58174d78137fb56266570a98f4975081384ed.jpg

当然,如果你想不使用翻页功能的话,也可以使用 --paging=never 参数来关闭这个功能。但我估计没人这么做。

三、主题定制

bat 命令支持多种风格的语法高亮主题,可以满足大部分程序员的需求。可以使用下列命令查看 bat 支持的所有主题:

$ bat --list-themes

a2e141a17faf9e96bff850250e2d663ac11d45.jpg

如果你想指定主题为 GitHub ,那么可以使用以下命令:

$ bat --theme=GitHub 文件名

但这样做是临时的,当你关闭终端工具,或者系统重启,主题就会恢复默认。

可以通过设置 BAT_THEME 环境变量来选定主题。把 export BAT_THEME="GitHub" 添加到 shell 的启动脚本来取得永久效果。

除此之外,你还可以自定义输出样式,甚至可以自己添加新的语言和语法,输出让自己满意的高亮样式。但我觉得系统自带的那些样式其实已经可以满足我们大部分需求了,没必要把时间花在这上面。

bat 命令真的十分强大,简直是 cat 命令的完美代替品!特别是它的语法高亮、自动翻页功能,简直是对 cat 的精准狙杀。

如果你经常查看文本,那么可以使用 bat 来替代 cat ,相信我,用完之后你就再也回不来了!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK