Linux中國

ls 命令輸出的顏色:它們意味著什麼?

想知道 ls 命令輸出中的顏色是什麼?它們從何而來,又該如何設置?本文將為您一一解答。

相信你一定使用過 ls 命令來 列出目錄的內容。在 Ubuntu 和許多其他發行版中,你將看到不同顏色的 ls 命令輸出。

如果你沒有看到過,你可以這樣獲得如下所示的彩色輸出:

ls --color=auto

但是你有沒有想過這些顏色在 ls 命令輸出中意味著什麼?

我將回答本文中的問題。如果你的終端默認情況下不顯示它,我還將展示如何使用 ls 命令獲取彩色輸出

Ubuntu 中 ls 命令中使用的顏色的含義

? ls 命令輸出的顏色沒有固定的標準。不同的終端和發行版使用不同的顏色編碼,你也可以根據自己的喜好進行修改。換句話說,不要依賴顏色。

我在本節中使用默認的 Ubuntu 終端及其顏色配置文件。

當你 使用 ls 命令列出文件 時,它會使用不同的顏色來指示不同類型的文件。

大多數終端都會以不同的顏色顯示可執行文件、鏈接、常規文件和目錄,以便你可以輕鬆區分它們。

有些終端(例如 Ubuntu 中的默認終端)將其提升到一個新的水平,並為音樂文件、圖像和視頻添加更多顏色。

為了演示,我列出了來自不同目錄的文件,這些文件在 Ubuntu 中用不同的顏色填充了我的終端窗口:

different colors used by the ls command

看起來很混亂? 讓我一一為你解密吧!

顏色 描述
粗體藍色 目錄
無色 文件或硬鏈接
粗體青色 指向文件的符號鏈接。
粗體綠色 可執行文件(.sh 擴展名的腳本)
粗體紅色 歸檔文件(主要是 tarball 或 zip 文件)
洋紅色 表示圖像和視頻文件
青色 音頻文件
黃色配黑色背景 管道文件(稱為 FIFO)
粗體紅色配黑色背景 損壞的符號鏈接
無色(白色)配紅色背景 表示設置用戶 ID 文件
黑色配黃色背景 表示設置組 ID 文件
白色與藍色背景 顯示粘滯位目錄
藍色配綠色背景 指向其他可寫目錄
黑色配綠色背景 當目錄同時具有粘滯位和其他可寫目錄的特徵時

? 再次強調,上述顏色數據基於終端的默認設置,如果更改調色板,將不會得到類似的結果。

但是如果你的終端不顯示任何顏色怎麼辦? 好吧,這是有原因和解決方案的。

如果 ls 命令不顯示彩色輸出怎麼辦?

事情是這樣的。默認情況下,ls 命令不應在輸出中顯示顏色。如果你使用 --color=auto 標誌,它將顯示顏色。

ls --color=auto

那麼為什麼 ls 命令在 Ubuntu 和其他一些發行版中默認添加顏色呢? 這是因為你的發行版為 ls 命令設置了別名,以便在執行 ls 命令時使用 --color=auto 標誌:

alias

因此,如果 ls 命令未顯示彩色輸出,則是因為默認情況下沒有設置別名。

現在,每當你使用 ls 命令時,你都可以使用 --color=auto 標誌。

Use  --color=auto flag with the ls command to get the colored output

但這不太方便。相反,你應該創建別名並將其添加到 .bashrc 中,以便 ls 命令默認顯示顏色。

為 ls 創建一個永久別名來顯示顏色

要創建永久別名,首先,使用以下命令打開 .bashrc 文件:

nano ~/.bashrc

使用 Alt + / 跳到文件末尾粘貼如下行到終端:

alias ls='ls --color=auto'

完成後,保存更改並退出 nano 文本編輯器。

要使你剛剛所做的更改生效,請 源引 source .bashrc 文件:

source ~/.bashrc

就是這樣! 從現在開始,你可以使用彩色輸出。

ls 命令從哪裡獲取顏色?

現在有趣的部分來了。ls 命令的顏色在哪裡定義? 答案是 LS_COLORS 環境變數。

是的。這是名為 LS_COLORS 的特殊環境變數,它定義 ls 命令使用的顏色。

Value of the LS_COLORS env variable in Ubuntu

這很好,但是誰定義了這個變數呢? 如果你想做出一些改變怎麼辦? 我也來回答一下這些問題。

實際上,你有一個專門的 dircolors 命令來為 ls 命令設置顏色。

不同的 Shell 有不同的顏色配置文件格式。這就是為什麼在使用此命令時應指定 Shell。

dircolors command output for bash

如你所見,它定義了 LS_COLORS 環境變數並將其導出,以便該變數可用於子 Shell。

現在,如果你想使用它,你可以將其複製粘貼到你的 .bashrc 文件或像這樣重定向輸出:

dircolors -b >> .bashrc

源引 source 該文件,以便效果立即可見。你只需要做一次。

理解顏色配置文件

LS_COLORS 包含由冒號(:)分隔的鍵值對數據。如果該值有多個部分,則它們之間用分號(;)分隔。

鍵通常是預定義的。值部分代表顏色。

因此,如果顯示 ln=01;36,則表示對於符號鏈接,字體為粗體,顏色(36)為青色。

00 為正常,01 為粗體,4 為下劃線。31 代表紅色,32 代表綠色等。顏色代碼遵循 ANSI 轉義代碼

另一個例子。or=40;31;01 表示鏈接到不存在的文件(鍵為 or),使用黑色背景(顏色代碼 40)、紅色(31)和粗體字體(代碼 01)。

我認為順序並不重要,因為代碼不重疊。31 是前景色紅色的代碼,41 是背景紅色的顏色。因此,如果使用 41,你就知道它用於背景顏色。

使用 ls 命令執行更多操作

ls 命令可以做更多的事情,為此,我們製作了有關如何使用 ls 命令的詳細教程:

在 Linux 中使用 ls 命令

Abhishek Prakash 提供資料。

(題圖:MJ/4d0f1f66-259f-4671-a3a8-158f61a38b10)

via: https://itsfoss.com/ls-color-output/

作者:Sagar Sharma 選題:lkxed 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    4 Comments

    1. nordvpn coupons 350fairfax
      This site was… how do you say it? Relevant!! Finally I’ve found something that helped me.
      Thanks a lot!

    2. Hello everybody, here every one is sharing these kinds of know-how,
      so it’s nice to read this weblog, and I used to pay a visit this website
      every day.

      Feel free to surf to my web page: nordvpn coupons inspiresensation [https://t.co]

    3. Thanks for sharing your thoughts about nordvpn coupons inspiresensation special coupon code 2024.
      Regards

    4. I’m extremely inspired with your writing skills and also with the layout in your weblog.

      Is this a paid subject matter or did you customize it yourself?

      Anyway stay up the excellent high quality writing, it’s uncommon to see a nice
      weblog like this one these days..

      Also visit my blog :: nordvpn coupons inspiresensation

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國