\d :表明日期,格式爲weekday month date,例如:"Mon Aug 1"
\H :完整的主機名稱。例如:個人機器名稱爲:fc4.linux,則這個名稱就是fc4.linux
\h :僅取主機的第一個名字,如上例,則爲fc4,.linux則被省略
\t :顯示時間爲24小時格式,如:HH:MM:SS
\T :顯示時間爲12小時格式
\A :顯示時間爲24小時格式:HH:MM
\u :當前用戶的帳號名稱
\v :BASH的版本信息
\w :完整的工做目錄名稱。家目錄會以 ~代替
\W :利用basename取得工做目錄名稱,因此只會列出最後一個目錄
\# :下達的第幾個命令
\$ :提示字符,若是是root時,提示符爲:# ,普通用戶則爲:$linux
CentOS中關於這些:
\a an ASCII bell character (07)
\d the date in "Weekday Month Date" format (e.g., "Tue May
26")
\D{format} the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required
\e an ASCII escape character (033)
\h the hostname up to the first ‘.’
\H the hostname
\j the number of jobs currently managed by the shell
\l the basename of the shell’s terminal device name
\n newline
\r carriage return
\s the name of the shell, the basename of $0 (the portion
following the final slash)
\t the current time in 24-hour HH:MM:SS format
\T the current time in 12-hour HH:MM:SS format
\@ the current time in 12-hour am/pm format
\A the current time in 24-hour HH:MM format
\u the username of the current user
\v the version of bash (e.g., 2.00)
\V the release of bash, version + patch level (e.g., 2.00.0)
\w the current working directory, with $HOME abbreviated with a tilde
\W the basename of the current working directory, with $HOME abbreviated with a tilde
\! the history number of this command
\# the command number of this command
\$ if the effective UID is 0, a #, otherwise a $
\nnn the character corresponding to the octal number nnn
\\ a backslash
\[ begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
\] end a sequence of non-printing charactersshell
因而能夠根據這些指定本身喜歡的命令提示符格式:bash
PS1="\u@\h:\w\$ "
可是這樣設置以後顯示的提示符是沒有顏色的,若是但願加入顏色設置,能夠這樣:dom
PS1="\e[1;32m\u\e[m\e[1;33m@\e[m\e[1;35m\h\e[m:\w\$ "
此時,在終端中的顯示應該是彩色的提示符了,其中的\e[1;xxm和\e[m就是改變終端字體顏色的部分,前者是修改顏色,後者是恢復到正常顯示。可是 這時還會有問題,在提示符中輸入第一行時,回車換行不正常,致使顯示很混亂,所以,除了這個修改以外,還須要將所有非打印字符用專用的 bash 轉義序列 "\[" 和 "\]" 括起來。這兩個序列通知 bash,被括起來的字符不佔用行上的任何空間 ,這樣就使自動換行可以繼續正常工做。最終版本以下(可解決帶顏色提示符的不換行問題):字體
PS1="\[ \e[1;32m\] \u\[ \e[m\] \[ \e[1;33m\] @\[ \e[m\]\[ \e[1;35m\] \h\[ \e[m\] :\w\$ "ui
先說BASH:
bash的提示符爲 PS1 變量, 默認是 環境變量, 下面包含bash爲用戶在PS1中所使用的符號的一個完整列表:
\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 可以正確計算自動換行。
\] 這個序列應該出如今非打印字符序列以後。
我所使用的的提示符爲 PS1="***** \w *** <\u@\h> ***** \! ***** \t ***\n\$ "
這個提示符, 我很喜歡, 應爲他包含了我須要的足夠信息如: 工做目錄 用戶名@機器名 命令編號 以及 時間, 可是他又不至於使 提示符 佔用太長, 以致於沒有多少空間留下來給 輸入的命令, 注意看最後那個 \n 是個換行符, 故而 這是個 2行提示符, $ 獨佔一行, 留下足夠的空間以便輸入命令。
然而, 以上的提示符 不過 是個人「初稿」而已, 我還準備把它加上顏色, 使其更加醒目, 且 方便使用。 那麼說到這裏, 就不得不說一下終端的顏色使用了。(如下顏色是借鑑網上一篇文章而來)
顏色是經過在 PS1 中添加專用序列來選擇的 -- 基本上是夾在 "\e["(轉義開方括號)和 "m" 之間數字值。若是指定一個以上的數字代碼,則用分號將它們分開。
下面是一個顏色代碼示例:
"\e[0m"
若是將數字代碼指定爲零,則它就會通知終端將前景、背景和加粗設置重置爲它們的默認值。您可能會在提示行結束時使用這個代碼,以使您鍵入的文字成爲非彩色的。如今,讓咱們看一下這些顏色代碼。請注意下面的抓屏結果:
顏色表
前景 背景 顏色
---------------------------------------
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
代碼 意義
-------------------------
0 OFF
1 高亮顯示
4 underline
5 閃爍
7 反白顯示
8 不可見
要使用這個表,首先請查找您要使用的顏色,而後查找對應的前景編號 (30-37) 和背景編號 (40-47)。例如,若是您喜歡黑底綠字,則可將編號分別設爲 32 和 40。而後打開您的提示行定義並在其中添加適當的顏色代碼。下面的定義:
export PS1="\w> "
變爲:
export PS1="\e[32;40m\w> "
到如今爲止,提示行
儘管已經很不錯了,但仍不太完美。在 bash 顯示出工做目錄之後,咱們須要使用 "\e[0m" 序列將顏色從新設置爲正常值。
export PS1="\e[32;40m\w> \e[0m"
此時我能夠加工我以上的 「草稿了」, 將如下寫入 .bashrc 或者 .bash_profile(二者有點差異, 主要在 登陸shell 與 非登陸shell方面, 我還會寫一篇 登陸shell 與 非登陸shell的文章來 詳細介紹如何設置這兩個文件, 以求最優, 不過在這裏 你能夠隨便寫入那個文件)。
# 先設置須要的顏色變量, 分別爲 關閉顏色, 黑色, 紅色, 綠色, 黃色, 藍色,紫紅色,青藍色,白色。 注意這裏沒有寫背景色, 你也能夠如上 \e[32;40m 這樣加入背景色, 來獲取更加豐富的顏色方案, 可是這裏我認爲足夠了。
c_1="\[\e[0m%\]"
c0="\[\e[30m%\]"
c1="\[\e[31m%\]"
c2="\[\e[32m%\]"
c3="\[\e[33m%\]"
c4="\[\e[34m%\]"
c5="\[\e[35m%\]"
c6="\[\e[36m%\]"
c7="\[\e[37m%\]"
PS1="$c0***** $c1\w $c2*** $c3<\u@\h> $c4***** $c5\! $c6***** $c7\t $c1***\n$c2\$ $c_1"; export PS1
這樣一個漂亮的 提示符便展示在你的面前。
注意 最後的 $c_1 , 必定不要忘記, 這個是讓終端恢復之前的顏色, 否則你所鍵入的命令, 顯現的文件都將顯示爲最後 $c2 所定義的顏色。 還有, 細心的人定會發現顏色先後都被加上\[ \]這對符號,以其做用不外乎告訴終端, 這個是不佔用終端的空間的, 開始終端編碼而已,以便終端可以順利換行等事情。
TCSH的設置。
咱們可使用的標記列表有:
! 跟%h同樣
%B 開始粗體模式
%b 結束粗體
%c 當前工做目錄名稱的最後部分, 至關於basename $cwd 或者 ${cwd:tail} ${cwd:t}
%c2, %c3等等 最後2,3(等等)部分
%C 與%c相似,可是使用長形式
%d 本週的當天
%D 今天時當月中的第幾天
%h 歷史編號
%l shell的當前控制終端
%U 開始下劃線
%u 結束下劃線
%/ 完整目錄名
%~ 短格式目錄
%m 機器名
%n 登陸名
%h 歷史編號
%P %p %t %T 時間的不一樣形式。
.
.
.
太多了, 咱們用到的也就幾個而已,不知道的本身上網GOOGLE吧。
tcsh會讀取 .login 和 .cshrc(或者.tcshrc), 登陸shell兩個文件都讀取, 非登陸shell只讀取 .cshrc. 而提示符tcsh下使用的是 prompt 一般不設定爲環境變量, 設爲shell變量便可。 如下即是 上面PS1版本在TCSH下 prompt的設定。
set c_1 = "%{\e[0m%}"
set c0 = "%{\e[30m%}"
set c1 = "%{\e[31m%}"
set c2 = "%{\e[32m%}"
set c3 = "%{\e[33m%}"
set c4 = "%{\e[34m%}"
set c5 = "%{\e[35m%}"
set c6 = "%{\e[36m%}"
set c7 = "%{\e[37m%}"
set prompt = "$c1***** $c2%/ $c3*** $c4<%U`whoami`%u@%m> $c5*** $c6%h$c_1 $c7***** $c1%P $c2***\n$c3%%$c_1 "
注意, bash設置變量直接寫 x="..."這樣,可是tcsh要有set。 %{ %}就至關於bash下的\[ \]this