Linux-自定義命令行提示符


漂亮的Linux命令提示符

每天面對着白底黑字(黑底白字)的命令行是否枯燥泛味呢?生活應給是五彩繽紛的,何不為單調無味的生活增添一抹色彩?
下面一起體驗一下Linux命令行提示符驚險的整容之旅

驚鴻一瞥

整容前

整容后

神奇吧!下面就讓我們拿起手術刀...

牛刀小試

首先到家目錄下

[cofear@localhost ~]$

打開.bash_profile文件

[cofear@localhost ~]$ vi .bash_profile

我們會看的

 1 # .bash_profile
 2 
 3 # Get the aliases and functions
 4 if [ -f ~/.bashrc ]; then
 5         . ~/.bashrc
 6 fi
 7 
 8 # User specific environment and startup programs
 9 
10 PATH=$PATH:$HOME/bin
11 
12 export PATH

我們只需在最后一行加export PS1="\e[36m\u\e[0m@\e[32m\h\e[0m: \e[34m\W\e[0m\$ "

  1 # .bash_profile
  2 
  3 # Get the aliases and functions
  4 if [ -f ~/.bashrc ]; then
  5         . ~/.bashrc
  6 fi
  7 
  8 # User specific environment and startup programs
  9 
 10 PATH=$PATH:$HOME/bin
 11 
 12 export PATH
 13 
 14 export PS1="\e[36m\u\e[0m@\e[32m\h\e[0m: \e[34m\W\e[0m\$ " 

保存退出,使文件生效

[cofear@localhost ~]$ . .bash_profile

我們就會看到整容成功

庖丁解牛

下面看看大師是如何操刀的

先看這條命令export PS1="\e[36m\u\e[0m@\e[32m\h\e[0m: \e[34m\W\e[0m\$ "

什么是PS1

PS1是Linux用來設置命令提示符的環境變量

"\h、\u、\W"是什么鬼

\u :當前用戶的賬號名稱
\H :完整的主機名稱
\h :主機名
\w :完整的工作目錄名稱
\W :當前工作目錄名稱
\$ :提示字符,root為# ,普通用戶為$

其它

\d :日期
\t :顯示時間為24小時格式
\T :顯示時間為12小時格式
\A :顯示時間為24小時格式

"\e[36m、\e[0m"又是什么鬼

\e[36m 是ANSI控制碼,又叫VT100系列控制碼,用於在字符顯示系統中控制光標移動和字符色彩等

ANSI控制碼開始的標志都為ESC[,ESC對應ASCII碼表的033(八進制),\033來輸入ESC,\033[36m即為ESC[36m

在Linux里\033[等同於\e[,故用\e[36m

顏色代碼

背景色 字體色
40: 黑 30: 黑
41: 紅 31: 紅
42: 綠 32: 綠
43: 黃 33: 黃
44: 藍 34: 藍
45: 紫 35: 紫
46: 深綠 36: 深綠
47: 白色 37: 白色

ANSI控制碼

控制碼 說明
\033[30m -- \033[37m 設置前景色
\033[40m -- \033[47m 設置背景色
\033[0m 關閉所有屬性
\033[1m 設置高亮度
\033[4m 下划線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱

到這兒大家都以為整容之旅結束了,說好的驚險呢?

奇幻之旅

其實冒險才剛剛開始

假設我的命令足夠長

再長點,說好的換行呢?

再長點,為何覆蓋了前面的東西?

再長點,好吧,你嚇到我了!

額,好吧整容貌似失敗,看來操刀大師浪得虛名!

走的太急,忽略了什么?

export PS1="\[\e[36m\]\u\[\e[0m\]@\[\e[32m\]\h\[\e[0m\]: \[\e[34m\]\ W\[\e[0m\]\$ "
凡事都應該收斂\[\e[36m\]\e[36m這是一個整體,應該[]起來。

完美謝幕

當我們以為冒險結束時,才是真正的開始


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM