乐趣区

关于java:比cat更好用的命令

大家好,我是良许。

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

cat 命令两个很重大的缺点:1. 不能语法高亮输入;2. 文本太长的话无奈翻页输入。正是这两个有余,使得 cat 只能用来查看行数不多的小文件。

为了解决 cat 命令这两个毛病,国外有大牛将 cat 命令进行了加强,弱小到连 cat 亲妈都不意识!

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

bat 命令能够用来做啥呢?简略来说有上面这些:

  1. 语法高亮。 它能够依据编程语言以及 markdown 语法将文本关键词高亮,可浏览性大大加强;
  2. 主动翻页。 如果文本内容太长,超过一页的话,它会主动将内容通过管道传到 less 命令,实现翻页的成果;
  3. 集成 Git。bat 命令跟 git 完满联合,将文本的批改局部在左侧展现,一眼就能够看出文件批改了啥。
  4. 显示不可打印字符。 有些字符无奈通过 cat 在屏幕上显示,但 bat 让它们无处遁形!

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

1. bat 命令的装置

当初很多 Linux 发行版的官网源曾经内置了这个命令,所以只需应用它们对应的装置工具就能够装置。

以 Ubuntu 为例,只须要运行以下命令就能够装置 bat

$ sudo apt-get install bat

这里要留神一下,因为名称的抵触,在 Ubuntu 下无奈间接通过敲 bat 这三个字母运行 bat 命令,而是须要敲 batcat。为了不便,咱们能够设置别名:

$ alias "bat=batcat"

2. bat 命令的应用

2.1 根本应用

bat 命令的用法跟 cat 大差不差的,咱们间接上图来看下比照。

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

如果行数比拟多,还能够应用 --line-range 来显示指定行数的内容。

而且,它还能够跟其它命令通过管道一起联合着用:

2.2 语法高亮

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

而且,你还能够通过应用 --list-languages 参数来显示所有反对的语言:

2.3 Git 集成

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

2.4 显示不可打印字符

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

2.5 主动翻页性能

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

因为 cat 命令不论文本长度如何,全副一股脑就给你显示进去,使得咱们须要查看内容比拟多的文本文件的时候,必须抉择其它命令(比方 moreless 等等)。

bat 命令很显著是冲着这个痛点来的。它在文本内容超过一屏可显示范畴时,就会将其发送到 less 命令,而后咱们就能够像应用 less 一样进行翻页操作,十分不便。

当然,如果你想不应用翻页性能的话,也能够应用 --paging=never 参数来敞开这个性能。但我预计没人这么做。

3. 主题定制

bat 命令反对多种格调的语法高亮主题,能够满足大部分程序员的需要。能够应用下列命令查看 bat 反对的所有主题:

$ bat --list-themes

如果你想指定主题为 GitHub,那么能够应用以下命令:

$ bat --theme=GitHub 文件名 

但这样做是长期的,当你敞开终端工具,或者零碎重启,主题就会复原默认。

能够通过设置 BAT_THEME 环境变量来选定主题。把 export BAT_THEME="GitHub" 增加到 shell 的启动脚本来获得永恒成果。

除此之外,你还能够自定义输入款式,甚至能够本人增加新的语言和语法,输入让本人称心的高亮款式。但我感觉零碎自带的那些款式其实曾经能够满足咱们大部分需要了,没必要把工夫花在这下面。有趣味的小伙伴能够去看它们的官网文档,有具体的教程。

4. 小结

bat 命令真的非常弱小,几乎是 cat 命令的完满代替品!特地是它的语法高亮、主动翻页性能,几乎是对 cat 的精准狙杀。

如果你常常查看文本,那么能够应用 bat 来代替 cat,置信我,用完之后你就再也回不来了!


学习编程,千万不要急于求成,肯定要多读一些经典书籍,多看源码,多下苦功夫去死磕代码,这样技术能力出息。给大家分享一些程序员必读经典书籍,肯定要多读几遍:

收费送给大家,只求大家金指给我点个赞!

程序员必读经典书单(高清 PDF 版)

有播种?心愿老铁们来个三连击,给更多的人看到这篇文章

举荐浏览:

  • 干货 | 程序员进阶架构师必备资源免费送
  • 刷题 | LeetCode 算法刷题神器,看完 BAT 随你挑!

欢送关注我的博客:良许 Linux 教程网,满满都是干货!

退出移动版