Linux下一隻五顏六色的「貓」

来源:https://www.cnblogs.com/yychuyu/archive/2020/07/15/13307661.html
-Advertisement-
Play Games

大家好,我是良許。 有使用過 Linux 系統的小伙伴,肯定會使用過 cat 這個命令。當然,在 Linux 下,此貓非彼貓,這裡的 cat 並不代表貓,而是單詞 concatenate 的縮寫。 cat 命令是一個 Unix 或類 Unix 下文本的查看命令,同時也可以配合重定向實現合併與複製功能 ...


大家好,我是良許。

有使用過 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

效果如下圖

cat

可以看出來代碼沒有任何顏色標記(大家應該對這個結果很熟悉)。現在,再使用 ccat 查看文本文件 hello.c ,並查看其如何顯示輸出。

$ ccat hello.c

效果如下圖:

ccat

您註意到差異了嗎?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:在下載步驟中可能會遇到如下錯誤

ccat_error

這是由於 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

有收穫?希望老鐵們來個三連擊,給更多的人看到這篇文章


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近才接觸js的模板引擎聽說相比以前使用的js foreach載入後臺返回的json數據簡便很多而且效率方面也很不錯。今天自己玩了一下 後臺使用的是.net mvc,資料庫腳本就不提供了,返回的JsonResult,將數據存放在data中,前臺通過ajax配合模板引擎進行一個調用然後以表格的形式顯示 ...
  • 介面與抽象類的區別: 介面支持多繼承;抽象類不能實現多繼承。 介面可以用於支持回調;抽象類不能實現回調,因為繼承不支持。 介面只包含方法、屬性、索引器、事件的簽名,但不能定義欄位和包含實現的方法;抽象類可以定義欄位、屬性、包含有實現的方法。 介面可以作用於值類型和引用類型;抽象類只能作用於引用類型。 ...
  • 一、前言 在之前的使用Swagger做Api文檔中,我們已經使用Swagger進行開發介面文檔,以及更加方便的使用。這一轉換,讓更多的介面可以以通俗易懂的方式展現給開發人員。而在後續的內容中,為了對api資源的保護,我們引入了認證授權方案,利用HTTP提供了一套標準的身份驗證框架,服務端可以用來針對 ...
  • 首先,要知道.Net Core和.Net Framework兩個環境下很多東西是不同的,接下來要說的這個就是其中一個。 Encoding.Default,在 .NET Framework 中,Default屬性始終獲取系統的活動代碼頁,並創建對應於它的 Encoding對象。 而在 .NET Cor ...
  • 1、執行單條cmd命令public static string ExecuteCmd(string command) { Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute ...
  • 跨工作薄複製Sheet,並不是單純的將Sheet的數據複製到新Sheet中,需要將數據、公式等包括數據格式(DataFormat),單元格的風格(CellStyle)等等都複製到新Sheet中。NPOI目前的版本為2.5.1,其Excel處理已經可以較好的支持XSSF(2007及以上)與HSSF(2 ...
  • 通常我們在項目開髮結束後向伺服器部署站點後,站點的動態頁面未能按照預期進行訪問,這很有可能是IIS沒有註冊動態頁面相應的“可執行文件”導致。這裡所說的動態頁面例如:訪問MVC視圖、WebAPI、aspx、ashx等,也就是頁面會對應有dll文件的情況。 動態頁面訪問失敗的幾種場景 ashx(一般處理 ...
  • 上次課程我們完成了項目基本的UI風格配置。 現在就開始進入我們的需求開發,我們先捋一下需求。 一、總體需求說明 項目背景第一篇文章已有介紹,我們回顧一下。 這是一個數據管理"工具類"的系統,計劃有三個核心功能: 1、數據查詢 通過界面配置相關連接字元串,查詢資料庫的表數據。 2、數據採集 配置相關模 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...