1. 程式人生 > 實用技巧 >Linux下一隻五顏六色的「貓」

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

大家好,我是良許。

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

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