大家好,我是良许。

有使用过 Linux 系统的小伙伴,肯定会使用过 cat 这个命令。当然,在 Linux 下,此猫非彼猫,这里的 cat 并不代表猫,而是单词 concatenate 的缩写。

cat 命令是一个 Unix 或类 Unix 下文本的查看命令,同时也可以配合重定向实现合并与复制功能。它是 GNU Linux 和类 Linux 操作系统中最常用的命令之一,使用频率非常高。

但是对于编程人员来讲的话,cat 命令有个问题,就是它的输出不带有任何颜色标记。如果我们用 cat 命令去查看代码文件的话,关键字没有颜色标记真的非常不方便阅读。

为了解决这一个痛点,有大佬就开发出了 ccat 这个命令。ccatcat 非常相似,但是使用ccat命令,显示的代码内容会带有颜色,这对于码农来讲非常友好。目前,ccat 支持 JavaScript,Java,Ruby,Python,Go,C 和 JSON 语言。

下面良许就给大家详细介绍 ccat 的用法。

1. 安装Ccat

1)ccat 命令在 AUR 里直接可用,所以如果你的系统里有 AUR 助手的话,可以直接安装。比如 Arch 系统,直接使用 yay 命令就可以安装。

Arch 用户软件仓库 通常称为 AUR,AUR 助手是一个包装程序,允许用户从 AUR 存储库安装软件包,而无需手动干预。

$ yay -S ccat

2)在其他 Linux 发行版中,你需要编译并安装ccat,步骤如下所示:

  • 使用如下命令下载源码归档压缩包
$ wget https://github.com/jingweno/ccat/releases/download/v1.1.0/linux-amd64-1.1.0.tar.gz
  • 解压缩下载的归档文件
$ tar xfz linux-amd64-1.1.0.tar.gz
  • 将ccat可执行文件复制到系统 $PATH 中(例如,/usr/local/bin/)
$ sudo cp linux-amd64-1.1.0/ccat /usr/local/bin/
  • 最后,使用 chmod 为 ccat 命令添加可执行权限
$ sudo chmod +x /usr/local/bin/ccat

2. 如何使用ccat对cat命令进行着色

ccat 使用方法和 cat 命令非常相似,下面给大家举一些列子。

我们先用 cat 命令查看文本文件,例如 hello.c 。

$ cat hello.c

效果如下图

可以看出来代码没有任何颜色标记(大家应该对这个结果很熟悉)。现在,再使用 ccat 查看文本文件 hello.c ,并查看其如何显示输出。

$ ccat hello.c

效果如下图:

您注意到差异了吗?ccat 使用语法高亮显示输出,而 cat 命令仅以系统的默认主题颜色显示输出。

我们还可以一次显示多个文件的输出,如下所示。

$ ccat test.txt example.txt

由于某些原因,您可能希望以HTML格式显示输出。为此,只需在末尾添加“ –html”选项。

$ ccat test.txt --html

不仅是本地文件,我们还可以像下面这样直接在网络上显示文件的内容。

$ curl https://raw.githubusercontent.com/jingweno/ccat/master/main.go | ccat

要查看默认的代码颜色,运行如下命令。

$ ccat --palette

当然,您可以如下设置自己的颜色代码。

$ ccat -G String="_fuchsia_" -G Plaintext="darkteal" hello.c

ps:在下载步骤中可能会遇到如下错误

这是由于 github 升级了 openssl,停用了 tlsv1.1,你只需要更新本机的 openssl 以及 git 工具即可解决该问题。

3. 替换系统中的cat

如果您喜欢 ccat 并想用 ccat 替换默认的 cat 命令,则只需创建一个别名即可。

如果是从 Arch Linux 中的 AUR 安装的,请在 ~/.bashrc 文件中添加以下行。

alias cat=ccat

如果是从编译的二进制文件安装的,则在 ~/.bashrc 文件中添加以下行。

alias cat=/usr/local/bin/ccat

最后,运行以下命令以使更改生效。

$ source ~/.bashrc

要在整个系统范围内添加它(所有用户都可以使用这个命令),请在 /etc/bashrc (在基于RPM的系统上)或 /etc/profile(在Debian的系统上)文件中添加以上条目。


公众号:良许Linux

有收获?希望老铁们来个三连击,给更多的人看到这篇文章

Linux下一只五颜六色的「猫」的更多相关文章

  1. 一个只需要点 「下一步」就完成监控 Windows

    Cloud Insight 此前已然支持 Linux 操作系统,支持20多中数据库中间件等组件,多种操作,多种搭配,服务器监控玩的其乐无穷啊!但想想还有许多 Windows 的小伙伴没有体验过,所以在 ...

  2. linux下ifconfig只剩下lo的解决方法

    运行以下命令,删除旧的网络配置,重新让networkmanager自动配置即可 sudo service network-manager stop sudo rm /var/lib/NetworkMa ...

  3. Linux 小知识翻译 - 「i386」是什么?

    i386是指 *CPU* 的种类,也可以指 *CPU* 的架构(architecture). 现在的 CPU 一般都用 「Core 2 Duo」或者「Athlon」,「Xeon」,「Opteron」之 ...

  4. 每个程序员都可以「懂」一点 Linux

    提到 Linux,作为程序员来说一定都不陌生.但如果说到「懂」Linux,可能就没有那么多人有把握了.到底用 Linux 离懂 Linux 有多远?如果决定学习 Linux,应该怎么开始?要学到什么程 ...

  5. linux下vi命令的使用

    linux vi命令详解   刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单 ...

  6. Linux下Vi/Vim的使用方法

    本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特 ...

  7. linux下vim配置以及一些常用的快捷键

    一些常用的vim编辑器快捷键: h」.「j」.「k」.「l」,分别控制光标左.下.上.右移一格. 按「ctrl」+「b」:屏幕往“后”移动一页. 按「ctrl」+「f」:屏幕往“前”移动一页. 按「c ...

  8. Loj #3056. 「HNOI2019」多边形

    Loj #3056. 「HNOI2019」多边形 小 R 与小 W 在玩游戏. 他们有一个边数为 \(n\) 的凸多边形,其顶点沿逆时针方向标号依次为 \(1,2,3, \ldots , n\).最开 ...

  9. linux下通过iptables只允许指定ip地址访问指定端口的设置方法

    这篇文章主要介绍了linux下通过iptables只允许指定ip地址访问指定端口的设置方法,需要的朋友可以参考下. 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的 ...

随机推荐

  1. Spark文档阅读之二:Programming Guides - Quick Start

    Quick Start: https://spark.apache.org/docs/latest/quick-start.html 在Spark 2.0之前,Spark的编程接口为RDD (Resi ...

  2. root和sudo

    root用户是系统中唯一的超级管理员,它具有等同于操作系统的权限.一些需要root权限的应用,譬如广告阻挡,是需要root权限的.可问题在于root比windows的系统管理员的能力更大,足以把整个系 ...

  3. MFC时间简单比较方法

    MFC//时间简单比较方法 void CMFCsaveListTofileDlg::OnBnClickedButton6()//时间简单比较方法 { // TODO: 在此添加控件通知处理程序代码 C ...

  4. ca33a_demo_c++_新旧代码的兼容char数组与vector_string相互转换

    /*ca33a_demo_c++33_CppPrimer_新旧代码的兼容_txwtech旧代码:数组和c风格字符串新代码:vector和string相互转换:c风格字符串<- ->stri ...

  5. yum 安装JDK

    系统:CentOS 7 查看当前系统是否已安装JDK yum list installed |grep java 如果没有就选择yum库中的包进行安装,查看yum库中JDK列表 yum -y list ...

  6. Java XML文件解析

    四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例) 蓝色字体内容由上一篇博文中补充进来的,写作风格比较好,大家有兴趣可以去查看原文 众所周知,现在解析XML的方法越来越多,但主流的方法也就四 ...

  7. node+ajax实战案例(6)

    8.删除客户 8.1.发送id到后台 删除用户信息比较简单,只需要把对应行的id发送到后台就可以了 oTable.onclick = function (ev) { var ev = ev || ev ...

  8. Buy a Ticket 【最短路】

    题目 Musicians of a popular band "Flayer" have announced that they are going to "make t ...

  9. php抽奖功能

    在项目开发中经常会遇到花钱抽奖类型的需求.但是老板总是担心用户用小钱抽到大奖.这样会导致项目亏损.下边这段代码可以有效制止抽奖项目亏钱. 个人奖池: 语言:thinkphp redis mysql 表 ...

  10. 看源码,重新审视Spring Security中的角色(roles)是怎么回事

    在网上看见不少的博客.技术文章,发现大家对于Spring Security中的角色(roles)存在较大的误解,最大的误解就是没有搞清楚其中角色和权限的差别(好多人在学习Spring Security ...