比 cat 更好用的命令了解一下?

2018-06-04 08:46:49 +08:00
 AaronWxt

作为程序员经常使用命令行来进行一些文件的处理,比如常见的:gitvim ,以及不同语言下的一些命令等。那么这么多的命令中,相信你肯定有用过cat命令用来查看文件的内容,但是这个命令仅仅只能将文本展示出来,并不会很好的辅助我们阅读和理解里面的内容,尤其是文件中内容为 代码时,看起来就特别的痛苦了。那么这篇文章就要介绍更好命令来替代 cat命令,它就是bat命令。(不是 windows 中的那个脚本哟)

bat 介绍

bat 是一个语法高亮显示和Git集成的cat高级版本,也就是说,batcat的所有功能,且已经集成了代码高亮,和git版本管理的工具,并且会对过长的文件进行自动分页,不会像 cat 一样全部一次打印,先来看张效果图:

bat 安装

安装的方法也是超级的简单,具体安装如下:

git clone https://aur.archlinux.org/bat.git
cd bat
makepkg -si
brew install bat

安装完成后,输入bat -help 看下是否会出现相关的提示信息,来确认是否安装成功。

bat 使用

使用与 cat 类似,在 bat 后面紧跟文件 就行了, 也可以同时打开过个,但结果是以一个接一个展示出来。

如打开一个有 git 管理的文件,会展示出文件中添加与删除的部分,如下图所示:

如果需要制定文件中高亮的语言,可以使用 -l 参数来制定语言,例如: bat ./test.json -l json 则指定文件中高亮为 json 模式,当然不指定也没有问题,默认会自动识别。 总之使用还是比较简单,一点都不复杂。

总结

如果有了这个命令,我想一般都不会再用 cat命令了,但每次敲命令都习惯使用 cat 了, 那么建议将 cat 命令使用 alias cat= 'bat' 将其指定为 bat 这样就可以使用cat 命令,而达到 bat 的使用效果。

希望大家能够喜欢这篇文章,喜欢就分享出去吧。 如果你有更好的命令,欢迎留言交流。

欢迎大家关注我的公众号:

7436 次点击
所在节点    程序员
46 条回复
fan123199
2018-06-04 10:02:56 +08:00
@LeungV2 在 github 里,找到用 binary 的方式安装,我是 ubuntu,用的 deb
xwhxbg
2018-06-04 10:31:24 +08:00
这货替代 less 可以,替代不了 cat
wklken
2018-06-04 10:41:55 +08:00
ccat +1

alias cat=ccat 使用一年多了
SingeeKing
2018-06-04 12:11:05 +08:00
单纯代码高亮可以使用 ccat,不过加上了分页那么还不错


@xwhxbg #22 请问为什么无法替代 cat ?
iyaozhen
2018-06-04 12:16:02 +08:00
感觉平常也不用 cat 看文件呀,看日志用 less,看代码用 vim
akillcool
2018-06-04 12:49:23 +08:00
cat head tail 一起用,而且 cat 直接按行传文本文件到管道很方便,如果看文本的话,更倾向于直接 vim
dahvlh
2018-06-04 12:51:09 +08:00
ubuntu 上 缺少 makepkg
AaronWxt
2018-06-04 12:53:05 +08:00
@LeungV2 这个只是把项目源码拉下来。
congeec
2018-06-04 12:57:14 +08:00
我用 highlight 做语法高亮
平时 cat 就那么几个用法
cat -e or cat -a to display non-printable characters
cat file > new-file to copy a file with file attributes set by default mask
cat << EOF
没用 bat 的需求呐
sakura111
2018-06-04 13:03:29 +08:00
说吧,bat 三家公司给了你多少钱?我今日头条出三倍!
ACSuperChen
2018-06-04 13:20:14 +08:00
我一般用 cat 复制东西。。。
楼主这个东西是好,只是复制还是有行号,很麻烦。。。
xwhxbg
2018-06-04 13:35:30 +08:00
@SingeeKing 比如我用 cat 拼接文件,但是并不需要行号和高亮
nekoyaki
2018-06-04 13:40:08 +08:00
cat 的命令本来就不是给你输出人类可读的文本的……很多程序要用 cat 来把某些文件给管道到其他输出里去,这些文件甚至有可能是二进制文件。
如果把系统里的 cat 给替代了,到时候死都不知道怎么死的……
乖乖用 less 和 vim 不好吗。
kiwi95
2018-06-04 13:54:43 +08:00
这是楼主自己写的工具吗,如果不是,一个冷门命令行工具写下用法就贴一个自己公众号的推广,这算什么?
hiahia
2018-06-04 14:08:50 +08:00
看标题还以为要讲 ccat 呢
muziki
2018-06-04 14:25:35 +08:00
楼上一堆连 readme 都读不懂的说管道,文件拼接
tuding
2018-06-04 15:10:30 +08:00
麻烦问下, ccat demo.txt 提示 "Enter decryption key: "是什么意思
@hiahia
@twor2
dorentus
2018-06-04 16:23:21 +08:00
还以为要讲 lolcat 呢
jorneyr
2018-06-04 16:30:33 +08:00
挺好的,用上了
EPr2hh6LADQWqRVH
2018-06-04 16:33:58 +08:00
cat -- ConcATenate and print files

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/460103

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX