輸入下面命令:
bash
echo 'PS1="[\[\e[35;40m\]\u \w\[\e[0m\]]\\$ "' >> ~/.bashrc
source ~/.bashrc
zsh
echo 'autoload -U colors && colors' >> ~/.zshrc
echo 'PROMPT="%{$reset_color%}%n %{$fg[red]%}%# "' >> ~/.zshrc
echo 'RPROMPT="[%{$fg_bold[yellow]%}%?%{$reset_color%}]"' >> ~/.zshrc
source ~/.zshrc
bash
echo 'PS1="\[\e[37;m\][\[\e[34;01m\]\u\[\e[35;01m\]@\h \[\e[35;01m\]\w\[\e[0m\]]\\$ "' >> ~/.bashrc
source ~/.bashrc
zsh
echo 'autoload -U colors && colors' >> ~/.zshrc
echo 'PROMPT="%{$reset_color%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[green]%}%1|%~ %{$fg[red]%}%#
"' >> ~/.zshrc
echo 'RPROMPT="[%{$fg_bold[yellow]%}%?%{$reset_color%}]"' >> ~/.zshrc
source ~/.zshrc
效果:
最近在學習linux操作系統(CentOS 6 & CentOS 7)。覺得linux終端命令行全部為白色,會經常導致命令與輸出內容難以分辨。于是上網找到修改linux終端命令行顏色的方法,發現通過定義PS1環境變量即可實現,下面我以root用戶身份進行操作。
1.了解PS1
PS1是Linux終端用戶的一個環境變量,用來定義命令行提示符的參數。
在終端輸入命令:
# set | grep PS1
可得到當前PS1的定義值:
PS1='[\u@\h \W]$ '
PS1的常用參數以及含義:
\d :代表日期,格式為weekday month date,例如:"Mon Aug 1"
\H :完整的主機名稱
\h :僅取主機名中的第一個名字
\t :顯示時間為24小時格式,如:HH:MM:SS
\T :顯示時間為12小時格式
\A :顯示時間為24小時格式:HH:MM
\u :當前用戶的賬號名稱
\v :BASH的版本信息
\w :完整的工作目錄名稱
\W :利用basename取得工作目錄名稱,只顯示最后一個目錄名
# :下達的第幾個命令
$ :提示字符,如果是root用戶,提示符為 # ,普通用戶則為 $
所以linux默認的命令行提示信息的格式 PS1='[\u@\h \W]$ ' 的意思就是:[當前用戶的賬號名稱@主機名的第一個名字 工作目錄的最后一層目錄名]#
2.顏色設置參數
在PS1中設置字符顏色的格式為:[\e[F;Bm],其中“F“為字體顏色,編號為30-37,“B”為背景顏色,編號為40-47。
顏色對照表:
F B
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
只需將對應數字套入設置格式中即可。 比如要設置命令行的格式為綠字黑底([\e[32;40m]),顯示當前用戶的賬號名稱(\u)、主機的第一個名字(\h)、完整的當前工作目錄名稱(\w)、24小時格式時間(\t),可以直接在命令行鍵入如下命令:
PS1='[\[\e[32;40m\]\u@\h \w \t]$ '
經過多次測試后,最終確定了一個適合我自己的格式:
# PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
但注意這樣的設置只是臨時性的.
3.修改.bashrc文件,永久保存命令行樣式.
上面的設置的作用域只有當前終端的登陸有效,關閉終端或退出登錄即刻失效。要想永久性的保存設置,需要修改.bashrc配置文件。
鍵入命令:
1 # cd
2 # ls -la
現在可以看到.bashrc這個文件。
編輯.bashrc:
vim .bashrc
加入這一行:
PS1="\[\e[37;40m\][\[\e[36;40m\]\u@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
保存退出。 重新加載bash配置文件:
source .bashrc
即可立即并永久生效了。
效果如圖,再也不怕在茫茫字海中苦苦搜尋命令行的下落了.