彩色 shell 設定 - Linux

Ida avatar
By Ida
at 2006-08-13T04:07

Table of Contents


大部分的 Linux 發行版的 bash shell 登入後都是長這樣的「dbtsai@ubuntu:~$」,也
就是「帳號@hostname:目錄$」,或許這樣您會嫌太單調。其實這個是可以調的唷!整個
設定的環境變數放在 PS1 裡面。

原始的 Ubuntu PS1 環境設定可以透過以下指令來得知。

######################################################################
dbtsai@ubuntu:~$ echo $PS1
\u@\h:\w\$ # \u 代表 username,\h 代表 hostname,\w 代表目錄
######################################################################

所以依照上面的邏輯,您就可以很簡單的去修改看看啦!
######################################################################
dbtsai@ubuntu:~$ PS1="[\u@\h \W \$] "
[dbtsai@ubuntu ~ $]
######################################################################

所以您應該發現了,在宣告環境變數時,它只會把整個環境變數的控制指令取代掉,其他
的都照常顯示出來。

那麼現在要進階一點,加上顏色控制功能。我們從一個很簡單的範例開始,先告訴讀者,
這有點像打 BBS 的 ANSI 控制碼,例如『\[\033[1;33m\]』這樣的控制碼,就是定義從
這之後所有文字全部都是黃色!而那個 33m 就是定義黃色。我們還可以使用紅色 (31m)
,綠色 (32m),藍色 (34m),紫色 (35m),青色 (36m) 和白色 (37m)。當然還有其他可
以用的顏色碼,如背景等等,如果又興趣的讀者可以去查詢 bash 相關資料。

所以我們試試看下面範例的效果吧!
#############################################################################
dbtsai@ubuntu:~$ PS1='\[\033[1;33m\]\u@\h\w$ '
#############################################################################

讀者會發現,全部都變成黃色了耶!連打的字都是黃色的!真 Orz 阿!其實這是因為最
後我們沒有把它在變回成白色字,所以我們最後再加上白色的控置碼吧!
#############################################################################
dbtsai@ubuntu:~$ PS1='\[\033[1;33m\]\u@\h\w$\[\033[1;37m\] '
#############################################################################

這時候看起來正常多了!只有前面那串 shell 部份是黃色的,打出來的字是正常的白色
!各位駭客一定不會那麼容易滿足吧!筆者提供我花俏的設定給讀者嘗試看看吧!礙於印
刷的關係,無法讓讀者直接看到效果,讀者一定要試試看唷!您將會愛上您的 shell 的


#############################################################################
PS1='\[\033[1;33m\]\u\[\033[1;37m\]@\[\033[1;32m\]\h\[\033[1;37m\]:
\[\033[1;31m\]\w\[\033[1;36m\]\$ \[\033[0m\]'
#############################################################################


那麼每次用 shell 都要設定,啟不是煩死了。若您要個人使用的話,可以加到
~/.bashrc 裡面的最後一行!所謂的 ~/ 就是您讀者個個人家目錄啦! 您可以如以下這
樣打,也就是在 shell 裡面,打 ~/ 會直接用家目錄取代,這樣是不是方便多了吶!

若是您希望所有人預設都看到,很對不起,筆者還沒找到方法!因為若您把設定寫在
/etc/bash.bashrc 裡面,雖然這是每個 user 登入都會讀取的,但是 PS1 在 Ubuntu 內
每個使用者的 ~/.bashrc 都在再重新定義一次,所以設定還是會被最後讀取的
~/.bashrc 蓋過去而失效!所以建議自己改想要用的使用者吧!強迫中獎也不是 Linux
的精神哩。

您最後的辦法是修改 /etc/skel/.bashrc,新建的使用者都會以它為範本拷到自己的目錄
下,所以您可以把 PS1 加到上面,那新建使用者預設就有彩色 shell 的功能。

--
Tags: Linux

All Comments

compizthemer

Adele avatar
By Adele
at 2006-07-22T20:58
哈哈 昨天不經意的看到了這個東西,gcompizthemer 是一個compiz用的小工具,可以改變compiz的視窗邊框 目前還沒有辦法改變按鈕的位置(就是改成像蘋果那樣)不過功能很多囉 以下是我的安裝方法(ubuntu 6.06)-假設xgl和compiz已經安裝完成 在sources.lis ...

請問vmware的問題

Victoria avatar
By Victoria
at 2006-07-21T16:22
※ 引述《sacanner (Sam)》之銘言: : 按ctrl+alt+f1~f6切換螢幕, : 請問在vmware中, vmware的hotkey卡到了.. edit-andgt;preferences-andgt;hot keys 原本是設ctrl+alt(跳出vmware)..把他改成 ...

在Ubuntu底下編deb檔的kernel

Lauren avatar
By Lauren
at 2006-07-19T23:20
在Ubuntu底下編deb檔的kernel 1. 安裝編譯相關軟體 code: apt-get build-dep linux-image-386 apt-get install kernel-package 其中xxx可以從apt-catch search linux-image查到,隨便選一個就好了。 ...

在ibook上裝Ubuntu Dapper Linux

Cara avatar
By Cara
at 2006-07-19T23:19
在最新的Dapper flight以經可以用airport wireless 54g, 而我桌機也用Ubuntu, 所以 決定把我的ibook換成Linux啦...而我的環境為ibook g4 1.2g 一些功能介紹 ImageCD下載 記得要下載PowerPC版 1. 開機時, 案住C, 用光碟 ...

在 Ubuntu 播放有區碼的 DVD

Yedda avatar
By Yedda
at 2006-07-19T23:18
由於萬惡的八大影業,為了防止盜版影片的流行,所以把DVD區碼分成1到6, 而台灣屬於 區碼3的地方。然而在在Linux底下的播放軟體不能解DVD CSS(版權因素), 所以導致市面 上原版的DVD影片反而在Linux上不能播放,當然這件事早就被造福人群的駭客破解了 ..XD, 以下我是在ubuntu 下操作心 ...