在這篇文章中,我要寫的是為ls命令設置顏色。在Linux中,ls是我們日常管理任務中最基本也是最經常使用的命令之一,用來列出一個目錄的內容。
如果你注意到ls命令為目錄和文件顯示了不同的顏色,這就是我們在本文中要討論的為ls命令設置和改變所需的顏色。
一、默認的 ls 顏色方案
如果你使用的是Ubuntu或CentOS等任何Linux操作系統,默認的GUI終端和控制台shell提示符會以各種上下文顏色顯示文件。然而,如果一台機器默認使用ls --color不支持彩色目錄列表,你可能必須給ls命令添加顏色。
運行以下命令來顯示系統上任何目錄和文件的默認顏色。
$ ls
$ ls -al /tmp
$ ls -al --color /tmp
您也可以使用以下命令來檢查顏色是如何分配的。
$ dircolors
$ echo $LS_COLOR
在這里,你可以看到一個長長的文件類型和數字代碼的默認着色方案的列表,我們將解釋你如何自己創建。
默認顏色編碼方案
在組裝文件類型和顏色列表的過程中,我們需要在filetype=color表單中指定任意數量的文件類型和顏色,並用冒號(:)分隔它們。
下面是默認設置的着色方案列表。
Uncolored(白色):文件或非文件名文本(例如ls -l輸出中的權限)
藍色粗體:目錄
青色粗體:符號鏈接
綠色粗體:可執行文件
紅色粗體:存檔文件
加粗品紅:圖像文件、視頻、圖形等或門或插座
青色:音頻文件
黑色背景:pipe(又名FIFO)
黑體背景:塊設備或字符設備
黑體背景:孤立符號鏈接或丟失文件
未着色的紅色背景:設置用戶id文件
黑色背景:set-group-ID文件
黑色帶背景:有能力的文件
白色加藍色背景:粘性目錄
藍色加綠色背景:其他可寫目錄
黑色與綠色背景:粘性和其他可寫入目錄
要組合你自己的列表,我們需要知道顏色代碼和文件類型代碼的列表,它們使用相同的數字顏色代碼,就像你的Bash提示一樣。
你可以在下面找到前景文本的顏色代碼列表:
黑色:30
綠色:32
藍色:34
紫色:35
青色:36
白色:37
二、打開/關閉ls命令的顏色
ls命令的顏色在bash中定義為別名。運行以下別名和grep命令的組合,以查找用於彩色顯示的bash shell別名。
$ alias | grep ls
在輸出中,您將找到針對ls命令使用的別名列表。
現在,運行以下命令以使用unalias命令刪除別名。
$ unalias ls
或者只是運行以下ls來關閉顏色。
$ ls --color=none
您可以在屏幕截圖中看到,刪除別名后,ls命令的輸出為單色。
現在,要啟用顏色,請使用以下命令分配別名。
$ alias ls='ls --color=auto'
您可以在屏幕截圖中看到,刪除別名后,ls命令的輸出為單色。
現在,要啟用顏色,請使用以下命令分配別名。
$ alias ls='ls --color=auto'
三、設置自定義ls顏色
為了給ls命令設置自定義顏色,也可以通過更新~/.bash_profile或~/.bashrc文件的別名,使用vim等文本編輯器編輯該文件。
在對bashrc進行任何更改之前,請先通過將該文件的配置復制到任何其他文件來對該文件進行備份。
$ cp .bashrc .bashrc2
如果輸入有誤或遇到麻煩,可以通過鍵入以下內容來替換.bashrc文件:
$ cp .bashrc2 .bashrc
現在,使用vim命令打開bashrc文件。
$ vim .bashrc
對baschrc文件進行任何更改后,接下來保存該文件並運行以下命令以更新bash更改。
$ source .bashrc
讓我們來看一下以下步驟的工作方式。若要將目錄的顏色從默認的粗體藍色設置為粗體,請在終端中運行以下命令,如圖所示。
$ LS_COLORS=”di=1;33”
您可以在LS_COLORS環境變量的末尾添加新的鍵值對,也可以直接編輯特定鍵的值。
例如,di=0;33,這里di表示顏色將只影響到目錄,而0表示它是普通顏色,33表示顏色。
如果要為目錄保留粗體字體,則顏色代碼應為di = 1; 33,而1表示粗體字體。
四、更改ls顏色的更多示例
讓我們使用以下命令來改變您的文件夾和某些特定文件擴展名的顏色。
$ export LS_COLORS=$LS_COLORS:"*.txt=01;36":"*.mp3=01;31"
在這里,您可以看到我們已將.txt文件的顏色更新為Cyan,並將.mp3擴展名的文件顏色更新為。
讓我們在下面運行另一個命令,將目錄的顏色設置為“紫色”。
$ export LS_COLORS="di=0;35"
熟悉了設置自定義顏色后,就可以將這些更改添加到位於用戶主目錄中的dot bashrc文件中,以使這些更改永久生效。
在本教程的最后,您應該熟悉ls命令的顏色,它們代表的含義以及為方便起見我們如何啟用或禁用以及更改它們。設置LS_COLORS可以使ls列表看起來更漂亮,這有助於您在遍歷文件系統時識別文件。