比cat更好用的命令!
大家好,我是良许。
作为程序员,大家一定对 cat 这个命令不陌生。它主要的功能就是用来显示文本文件的具体内容。
但 cat 命令两个很重大的缺陷:1. 不能语法高亮输出;2. 文本太长的话无法翻页输出。正是这两个不足,使得 cat 只能用来查看行数不多的小文件。
为了解决 cat 命令这两个缺点,国外有大牛将 cat 命令进行了增强,强大到连 cat 亲妈都不认识!
它就是本文的主角:bat 命令。
bat 命令可以用来做啥呢?简单来说有下面这些:
- 语法高亮。它可以根据编程语言以及 markdown 语法将文本关键词高亮,可阅读性大大增强;
- 自动翻页。如果文本内容太长,超过一页的话,它会自动将内容通过管道传到
less命令,实现翻页的效果; - 集成Git。
bat命令跟 git 完美结合,将文本的修改部分在左侧展示,一眼就可以看出文件修改了啥。 - 显示不可打印字符。有些字符无法通过
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 命令不管文本长度如何,全部一股脑就给你显示出来,使得我们需要查看内容比较多的文本文件的时候,必须选择其它命令(比如 more 、less 等等)。
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 ,相信我,用完之后你就再也回不来了!
比cat更好用的命令!的更多相关文章
- linux中cat、more、less命令区别详解
众所周知linux中命令cat.more.less均可用来查看文件内容,主要区别有:cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况:m ...
- 更安全的rm命令,保护重要数据
更安全的rm命令,保护重要数据 网上流传的安全的rm,几乎都是提供一个rm的"垃圾"回收站,在服务器环境上来说,这实非良方. 我想,提供一个安全的rm去保护一些重要的文件或目录不被 ...
- linux中cat、more、less命令区别详解##less 最合适最好用,和vim一样好用
linux中cat.more.less命令区别详解 caoxinyiyi关注 0.0362018.07.02 15:46:17字数 641阅读 516 linux中命令cat.more.less均可用 ...
- linux中cat more less head tail 命令区别
1.cat 显示文件连接文件内容的工具: cat 是一个文本文件查看和连接工具.查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名. 比如:[root@localhost ~]# ca ...
- [转] linux中cat more less head tail 命令
1.cat 显示文件连接文件内容的工具: cat 是一个文本文件查看和连接工具.查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名. 比如: [root@localhost ~]# c ...
- IP地址更改小工具(bat命令)
为了方便切换IP地址,特编制bat命令代码来实现,将以下代码复制到txt文本中,然后保存为bat文件,双击bat文件运行即可. 通过bat命令运行,自动修改IP地址,代码如下: @echo off c ...
- fd - 更好的 find 命令
欢迎关注我的公众号 spider-learn fd(https://github.com/sharkdp/fd) 是 find 命令的一个更现代的替换. 对比一下 查找名字含有某个字符的文件 OLD ...
- 9 个让 JavaScript 调试更简单的 Console 命令
一.显示信息的命令 <!DOCTYPE html> <html> <head> <title>常用console命令</title> < ...
- linux中,使用cat、head、tail命令显示文件指定行
小文件可以用cat(也可以用head.tail) 显示文件最后20行:cat err.log | tail -n 20 显示文件前面20行:cat err.log | head -n 20 从20行开 ...
- Linux cat命令详解
本文主要内容源自网络,参考资料如下: 华夏名网,linux cat命令详解,http://www.sudu.cn/info/html/edu/20070101/290711.html 命令格式:cat ...
随机推荐
- 【Docker】---部署集群(2)
RocketMQ(2)-Docker集群部署RocketMQ =前言= 1.因为自己只买了一台阿里云服务器,所以RocketMQ集群都部署在单台服务器上只是端口不同,如果实际开发,可以分别部署在多台服 ...
- 测试 【子牙-writing】 大模型
参考:姜子牙大模型系列 | 写作模型ziya-writing开源!开箱即用,快来认领专属你的写作小助手吧 封神榜:https://github.com/IDEA-CCNL/Fengshenbang-L ...
- LinkedList的源码
LinkedList LinkedList是通过双向链表去实现的,他的数据结构具有双向链表的优缺点,既然是双向链表,那么的它的顺序访问效率会非常高,而随机访问的效率会比较低,它包含一个非常重要的私有内 ...
- 插入dp学习笔记
定义 插入 \(\text{dp}\) 适用于计数.求最优解且具有选择.排列元素过程等题目. 插入 \(\text{dp}\) 大致分为两类: 乱搞型:状态定义天马行空,但始终围绕着将新元素插入到旧元 ...
- 【忍者算法】从图书馆编目到数组搜索:探索缺失的第一个正整数|LeetCode 41 缺失的第一个正整数
从图书馆编目到数组搜索:探索缺失的第一个正整数 生活中的算法 想象你是一位图书馆管理员,正在整理一排连续编号的图书.这些书应该从1号开始按顺序排列,但是有些编号的书不见了.你的任务是找出第一个缺失的编 ...
- oracle数据库 关闭归档模式
-- 1. 连接到数据库 CONNECT / AS SYSDBA; -- 2. 确保数据库处于mount状态 SHUTDOWN IMMEDIATE; STARTUP MOUNT; -- 3. ...
- Doris建明细测试表,导入测试数据
分区.分桶.明细表 测试用户表 CREATE TABLE user_info( dt DATE, id varchar(36) NOT NULL DEFAULT '10', user_name var ...
- telegraf、influxdb和grafana
1 telegrafTelegraf 是一个开源的服务器代理,用于收集.处理和发送数据.它是 InfluxData 公司推出的 TICK 堆栈(Telegraf.InfluxDB.Chronograf ...
- MacOS环境配置Homebrew
Homebrew笔记 1. 介绍 官网:https://brew.sh/ 对于习惯了使用命令来完成一切的程序员来说,安装软件这种小事,自然是能够用命令解决,就不用图形界面选择.但是在 Linux 中, ...
- 无线路由器dBi越大越好吗?
无线路由器dBi越大越好吗? 目前,常见的无线路由器,通过查看参数可知,大多为3dBi.5dBi或7dBi,对于用户来说,这个数值到底是越大越好,还是越小越好呢?对于这个问题,其实通过下面这张天线增益 ...