終端顏色設置

轉載 命令行終端顏色設置html

 

Linux給人最大的享受就是能夠根據我的喜愛去定製令本身舒服的系統配置,像終端顏色的設置就是一個典型的例子。shell

圖1 系統默認狀態下的終端顯示
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
   
  在沒有通過自定義配置的終端下工做久了,不免容易疲勞,由於全部輸入輸出都是一個顏色,對查找一些命令的執行結果很不方便。除了顏色,默認終端配置下的長 長的路徑名也是一個讓人比較蛋疼的地方。通過網上一番資料查找,才知道,原來對終端的配置,能夠寫到不一樣的文件之中,例如:~/.bashrc、/etc /bash.bashrc、/etc/profile這幾個文件。可是,這些文件的做用又不盡相同,用戶在進行配置以前必須先了解 各個文件的做用時 機

      /etc/profile:此文件爲系統的每一個用戶設置環境信息,當用戶第一次登陸時,該文件被執行.並從/etc /profile.d目錄的配置文件中搜集shell的設置.此文件默認調用 /etc/bash.bashrc文件。
      /etc/bashrc:爲每個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.
     ~/.bash_profile:每一個用戶均可使用該文件輸入專用於本身使用的shell信息,當用戶登陸時, 該
文件僅僅執行一次!默認狀況下,他設置一些環境變量,執行用戶的.bashrc文件.
     ~/.bashrc:該文件包含專用於你的bash shell的bash信息。
     ~/.bash_logout:當每次退出系統(退出bash shell)時,執行該文件. 

     弄清楚幾個文件的相互關係以及各自做用後,咱們能夠明白的是:針對於用戶的配置,應該將配置信息寫入~/.bashrc文件。我我的認爲默認 終端配置的不足之處有兩個:1.沒有使用不一樣的顏色以突出不一樣的內容;2.路徑名太長致使有的時候輸入的命令須要在新的一行顯示。如下就經過解決這兩個問 題來完成本文。
 
 
1.顏色配置
    爲了設置終端顏色,咱們須要對 ~/.bashrc文件中的 PS1變量進行定製。首先經過「gedit ~/.bashrc「命令打開文件,找到PS1變量所在位置:
圖2 .bashrc文件中的PS1變量
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
        這幾句代碼相信你們不難理解吧,簡單地說就是:在顏色模式打開的狀況下,PS1變量表明的內容就是用戶名+主機名+路徑名(長路徑)+ $。
        如下對PS1變量的設置進行具體分析:

        首先咱們要知道以下幾張表: bash

  

 前景            背景             顏色 markdown

  --------------------------------------- app

  30                40               黑色 dom

  31                41               紅色 編輯器

  32                42               綠色 工具

  33                43               黃色 字體

  34                44               藍色 ui

  35                45               紫紅色

  36                46               青藍色

  37                47               白色

           1         透明色

 

  代碼             意義

  -------------------------

  0                 OFF

  1                 高亮顯示

  4                 underline

  5                 閃爍

  7                 反白顯示

  8                 不可見

 

 

序列說 明

\a ASCII響鈴字符(也能夠鍵入 \007

\d "Wed Sep 06"格式的日期

\e ASCII轉義字符(也能夠鍵入 \033

\h 主機 名的第一部分(如 "mybox"

\H 主機 的全稱(如 "mybox.mydomain.com"

\j 在此 shell中經過按 ^Z掛起的進程數

\l  shell的終端設備名 (如 "ttyp4"

\n 換行 符

\r 回車 符

\s shell的名稱(如 "bash"

\t 24小時制時間(如 "23:01:01"

\T 12小時制時間(如 "11:01:01"

\@ 帶有 am/pm 12小時制時間

\u 用戶 名

\v bash的版本(如 2.04

\V Bash版本(包括補丁級別) ?/td>;

\w 當前 工做目錄(如 "/home/drobbins"

\W 當前 工做目錄的「基名 (basename)」(如 "drobbins"

\! 當前 命令在歷史緩衝區中的位置

\# 命令 編號(只要您鍵入內容,它就會在每次提示時累加)

\$ 若是 您不是超級用戶 (root),則插入一個 "$";若是您是超級用戶,則顯示一個 "#"

\xxx 插 入一個用三位數 xxx(用零代替未使用的數字,如 "/007")表示的 ASCII 字符

\\ 反斜 槓

\[這個序列應該出現 在不移動光標的字符序列(如顏色轉義序列)以前。它使 bash可以正確計算自動換行。

\] 這個序列應該出如今非打印字符序列以後。


    在對以上知識有了基本瞭解以後,咱們就能夠進行實際操做了。首先在終端中使用命令「cp ~/.bashrc ~/.bashrc.backup」對配置文件進行備份(這裏提醒各位,在Linux中,若是須要對配置文件之類的東西進行修改的話,最好進行備份,以防 出錯以後致使系統沒法登陸之類的問題),而後「gedit ~/.bashrc"打開文件,找到PS1變量設置的代碼,註釋之(在每一行代碼前插入註釋符號」#「)。在文件的末尾加上」 PS1='\u@\h:\w\$ '「(這是終端的默認設置,即不加任何顏色):
Ubuntu終端顏色設置、路徑名設置以及ls命令設置

Ubuntu終端顏色設置、路徑名設置以及ls命令設置

    完成以上操做後保存並退出GEdit編輯器,回到終端後輸入「source ~/.bashrc」,發現顯示用戶信息的地方沒什麼變化,說明剛纔的設置與默認終端設置一致。

    而接下來,咱們就須要對顯示的信息的字體顏色進行設置,首先看一下顏色是如何設置的:

顏色的設置公式

顏色=\033[代碼;前景;背景m

 

如:\033[1;32;40m表示高亮顯示字體爲綠色,背景色爲黑色(顏色定義見本文前面的表格)

注意:

    要將所有非打印字符用專用的 bash 轉義序列 "\[" "\]"括起來。這兩個序列通知 bash,被括起來的字符不佔用行上的任何空間,這樣就使自動換行可以繼續正常工做。

這點很關鍵要否則等你設好了顏色,你的終端換行會亂七八糟


    如今對上邊的PS1變量進行顏色的設置,即在須要更改顏色的地方插入顏色值,好比咱們讓用戶名以紅色顯示的命令應該是:

PS1='\[\033[1;31;40m\]\u@\h:\w\$ '

    一樣對.bashrc文件進行修改後source一下,應該看到的結果以下:
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
    事實上咱們並非想要全部信息的顯示顏色都同樣,因此咱們要想辦法讓信息顯示以不一樣顏色展現。這裏你們可能會注意到,顏色設置的做用範圍是從當前設置命令 到下一顏色設置命令的,也就是說,若是咱們只在\u前設置了顏色,那麼終端的字體應該都是紅色的,就像下邊同樣,不只信息項是紅色的,就連輸入命令都是紅 色的:
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
    爲此,咱們須要在@符號前面插入新的顏色值以防止整個信息項以紅色顯示,修改後的PS1變量爲:
PS1='\[\033[1;31;40m\]\u\[\033[00m\]@\h:\w\$ '
    一樣source一下,結果出來了:
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
    明白了對PS1變量進行設置的原理以後,用戶就能夠根據本身的須要爲所欲爲地設置PS1變量了,好比在PS1變量中插入字符串,或者爲每一個信息項設置不一樣 的顏色,或者控制信息欄顯示的內容:
咱們可讓用戶名帶下劃線,路徑以白色顯示,而且美圓符號以綠色顯示,命令則以藍色顯示:
PS1='\[\033[4;31;40m\]\u\[\033[00m\]@\h:\[\033[37;40m\]\w\[\033[32;40m\]\$ \[\033[34;40m\]'
source一下,效果以下:
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
至此,終端的顏色設置問題已經解決,如下解決路徑名問題。

2.終端中長路徑名問題
    有時候在終端須要連續打開幾層的文件夾才能訪問到咱們所需的文件,而這個時候在終端中顯示的路徑名就像是一條長長的尾巴,有沒有什麼好的辦法使終端只顯示 用戶當前的工做目錄的名字呢?其實在前邊的序列說明中已經說起,咱們能夠在PS1變量設置終端只顯示工做目錄的基名,即將PS1變量中的\w的小寫的w換 成大寫的W,修改後的PS1變量爲:
PS1='\[\033[4;31;40m\]\u\[\033[00m\]@\h:\[\033[37;40m\]\W\[\033[32;40m\]\$ \[\033[34;40m\]'
下面經過圖片說明兩者的效果:
Ubuntu終端顏色設置、路徑名設置以及ls命令設置

Ubuntu終端顏色設置、路徑名設置以及ls命令設置
    能夠發現,通過修改PS1變量的值以後,終端將只顯示當前工做目錄的基名了~。
    最後,綜合以上所說,分享一下個人PS1變量,個人變量裏邊是設置爲不顯示主機名而且顯示短路徑名的:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;04;32m\]\u\[\033[00m\]:\[\033[01;37m\]\W\[\033[31m\]\$ \[\033[00m\]'
Ubuntu終端顏色設置、路徑名設置以及ls命令設置

    最後,可能各位還會發現,若是打開新的終端,用戶定義的配置並無顯示出來,而仍是顯示默認的配置。
    這個時候能夠經過source 命令去手動加載.bashrc文件,這時候,咱們所設置的配置又回來了。
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
    固然,終端做爲咱們在系統之中經常使用的工具之一,若是每次打開終端都要source一次,那豈不是蛋疼死了?回到文章開頭的地方,咱們說 /etc/profile 文件從 /etc/profile.d目錄的配置文件中搜集shell的設置.此文件默認調用/etc/bashrc文件,因而咱們能夠打開profile文件看一看:
「sudo gedit /etc/bashrc」(注意這裏須要加上sudo!)
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
    能夠看到,在文件中有一句調用/etc/bash.bashrc文件的代碼,因此能夠推斷,前文所說的profile文件自動加載bash.bashrc 文件,事實上就是由代碼實現的,因而咱們一樣地能夠在這裏添加一句新的代碼,以使profile自動加載用戶的.bashrc文件,以此實現咱們不需每次 打開終端都要source的需求。
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
    保存以後關閉編輯器,新打開一個終端,能夠發現,咱們以前的配置已經可以自動加載了。
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
 
3.ls命令設置
    在終端一個經常使用的命令就是ls命令了,咱們能夠經過在.bashrc文件中設置alias以實現ls命令的一些自定義設置:
Ubuntu終端顏色設置、路徑名設置以及ls命令設置
    alias實際上是至關於一個命令引用的東西,例如最後一句,每當你在終端裏邊輸入ls命令,終端會根據.bashrc文件中的alias的設置查找到引用 的命令:ls --color=auto,因此你每次輸入「ls」其實就至關於輸入了「 ls --color=auto」,而這句命令的做用是顯示當前目錄的可見文件,而且以顏色區分不一樣類型的文件,好比文件夾和普通文件。
Ubuntu終端顏色設置、路徑名設置以及ls命令設置

    最後一個值得一提的就是一個小建議了,以前看到的個人終端都是黑底的,其實用戶能夠直接在終端中設置首選項以實現半透明背景,或者是以一張圖片做爲背景也 能夠:

Ubuntu終端顏色設置、路徑名設置以及ls命令設置
Ubuntu終端顏色設置、路徑名設置以及ls命令設置

相關文章
相關標籤/搜索