比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
,相信我,用完之后你就再也回不来了!
学习编程,千万不要急于求成,一定要多读一些经典书籍,多看源码,多下苦功夫去死磕代码,这样技术才能长进。给大家分享一些程序员必读经典书籍,一定要多读几遍:
有收获?希望老铁们来个三连击,给更多的人看到这篇文章
推荐阅读:
- 干货 | 程序员进阶架构师必备资源免费送
- 刷题 | LeetCode算法刷题神器,看完 BAT 随你挑!
欢迎关注我的博客:良许Linux教程网,满满都是干货!
比cat更好用的命令!相关推荐
- git bash命令_更优雅地使用命令行
工欲善其事,必先利其器,通过武装自己的命令行工具,从而更优雅地使用命令行,可以使工作更加高效并且有趣.本文将以下几个方面来介绍命令行的使用技巧和提效工具 CLI 一键呼入呼出 iterm2 是一款完全 ...
- linux中cat、more、less命令区别详解
linux中cat.more.less命令区别详解 转自:https://blog.csdn.net/xyw_blog/article/details/16861681 众所周知linux中命令cat ...
- Linux查看DNS地址以及端口,nslookup命令以及更强大的dig命令
先说结论:DNS端口一般默认为53,默认采用UDP协议: 下面说查看方式: 一.使用nslookup命令查看 nslookup baidu.com 返回结果为: 可以看到,我的服务器DNS地址是100 ...
- 10 款更先进的开源命令行工具
Linux 诞生于 1991 年,我们熟知的 ls.cd.ps 等命令也出生于那个年代.虽然它们都是 30 年前的产物,但是我们现在依旧每天都在用这些命令. 也许是审美疲劳又或是好奇心作祟,你可曾好奇 ...
- 第七课 环境变量PATH,cp、mv及查看文档cat/more/less/head/tail命令
一.环境变量(PATH)echo $PATH 查看环境变量的目录PATH=$PATH:/tmp/ (目录)给一个目录赋值环境变量: 让以上环境变量永久生效: 编辑 vi /etc/profile/ 把 ...
- cat、tail、head命令
cat.tail.head命令 一.大杂烩 cat -n 文件路径|tail -n +5|head -n 6 // 显示 5 - 10 行的内容, 包括5 和10 tail -n +iLinNum / ...
- 使用cat,awk和sort命令从nginx访问日志中统计user-agent类型
业务场景描述如下: 我有一个Nginx的web服务器,需要从统计日志中统计有哪些类型的设备终端和浏览器访问了我的网站. 访问日志中的每条记录是这样的: 使用下面的命令得到user-agent所在的字段 ...
- linux中cat more less head tail 命令区别
1.cat 显示文件连接文件内容的工具: cat 是一个文本文件查看和连接工具.查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名. 比如: [root@localhost ~]# c ...
- Linux中cat、more、less命令区别
查看内容的几种操作 1. more指令 -- 分页显示文件内容 more指令会以一页一页的形式显示文件内容,按空白键(space)显示下一页内容,按Enter键会显示下一行内容,按 b 键就会往回(b ...
最新文章
- 【MATLAB】————拷贝指定文件路径下的有序文件(选择后),可处理固定规律的文件图片数据或者文件
- quartz集群调度机制调研及源码分析---转载
- micropython安装第三方库_【python操作】python安装第三方库的方法总结
- 初尝微信小程序2-基本框架
- 上传文件至数据库并下载
- 三菱电机宣布放弃液晶面板业务 2022年6月停止生产相关模组
- 数据分析常用的python包_量化投资数据分析之常用的python包(附代码)
- 安卓导航车机root方法_远程调试在Linux车机中的应用
- C++之父Bjarne Stroustrup:程序员在数学上付出的努力,永远也不会白费
- 那些年,我们解析过的前端异常
- WPF: WrapPanel 容器的数据绑定(动态生成控件、遍历)
- linux+ARM学习路线
- SVG之线条动画相关
- 浅谈CNN里的Lasso
- 最新emoji表情代码大全_2020最新霜降早上好祝福语动态表情图片大全带字 温馨的霜降问候语免打字图片...
- STM32CubeMX全部版本下载地址
- MIT 6.S965 韩松课程 05
- html之div整体缩小,如何整体放大或缩小div元素
- String的使用方法
- 考研复试英语自我介绍模板
热门文章
- C4D R23-R19 安装包(winmac)安装教程及资源文件
- python opencv-特征检测与描述
- [推荐]房地产信息化---一个房地产CRM实践者的思考 穆利堂-monvo1
- 2.知识表示与知识图谱笔记
- 萌妹也可以学会的浏览器安装油猴插件图文详细教程
- 对话Facebook人工智能实验室主任、深度学习专家Yann LeCun
- Github+Hexo+matery博客搭建
- 99%的面试官都会问的一个问题,这样答就能轻松过关
- ALT::CW2AEX无法访问private成员问题解决
- Spark2.1.0安装与配置(单机版)