ps1是linux終端使用者的乙個環境變數,用來說明命令列提示符的設定。
可以使用 man bash命令檢視bash手冊,找到該變數支援的特殊字元,以及這些特殊字元的意義:
\a
#an ascii bell character (07)
\d
#the date in "weekday month date" format (e.g., "tue may
26")
\d
#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 (uses the value of the prompt_dirtrim vari-
#able)
\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 characters
下面我把常用的特殊字元做中文解釋:
\d :
#代表日期,格式為weekday month date,例如:"mon aug 1"
\h :
#完整的主機名稱。
\h :
#僅取主機的第乙個名字,如上例,則為fc4,.linux則被省略
\t :
#顯示時間為24小時格式,如:hh:mm:ss
\t :
#顯示時間為12小時格式
\a :
#顯示時間為24小時格式:hh:mm
\u :
#當前使用者的賬號名稱
\v :
#bash的版本資訊
\w :
#完整的工作目錄名稱。家目錄會以 ~代替
\w :
#利用basename取得工作目錄名稱,所以只會列出最後乙個目錄
\# :#下達的第幾個命令
\$ :
#提示字元,如果是root時,提示符為:# ,普通使用者則為:$
在ps1中設定字串行顏色的格式為:\[\e[f;bm\]
其中「f」為字型顏色,編號30~37;「b」為背景色,編號40~47。
下面看下顏色表:
前景 背景 顏色
------------------------
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
效果控制**:
** 意義
-------------------------
0 off
1 高亮顯示
4 underline
5 閃爍
7 反白顯示
8 不可見
我們用下面這個例子,解析ps1變數來設定有顏色的命令提示符:
ps1="\[\e[32m\]#\##\[\e[1;31m\]\u@\[\e[36m\]\h \w]\$\[\e[m\"
說明:『\[\e[32m\]』用來設定『#\##』的顏色為綠色,#\##就是顯示現在執行的是第幾條命令
『[\e[31m\]』設定『\u@』的顏色為紅色並高亮顯示,如果指定多個數字需要用分號隔開。\u@ 就是當前登入的使用者名稱後跟乙個『@』符號。
『\[\e[36m\]』設定『\h\w』為青藍色,\h表示主機名的第一位,如果主機名為centos6.lampbo.org,那麼就顯示centos6;\w將顯示完整的絕對路徑。
『\$』 提示字元,如果是root時,提示符為:# ,普通使用者則為:$。
『\[\e[m\]』使用來關閉顏色設定的。要是你沒有這個的話;那麼,你的命令提示符,包括你通過命令提示符輸出的東西都是和最後一次的顏色設定相同。
為了能夠在啟動和登入是可以保持剛剛設定的變數,需要將ps1的設定加入到使用者home目錄的.bashrc檔案後。
額外的示例:
(1):ps1="\e[1;32m\u\e[m\e[1;33m@\e[m\e[1;35m\h\e[m:\w\$ "
(2):編輯.bashrc,加入以下內容:
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
來自為知筆記(wiz)
修改Linux命令提示符
今天在新公司用putty開啟伺服器,擦,暈了 敲命令的開頭部分 出現 eth1 趕緊google 改為自己習慣的,後來找啊 找 發現這些是命令提示符 哈哈 export ps1 u h w 即可,其中 u顯示當前使用者賬號,h顯示當前主機名,w顯示當前路徑,顯示 符號 w 代替 w 就可以實現絕對路...
Linux修改BASH命令提示符
shell命令提示符及顏色是由ps1來配置 1.其中ps1常用的引數含義如下 d 代表日期,格式為weekday month date,例如 mon aug 1 h 完整的主機名稱 h 僅取主機的第乙個名字 t 顯示時間為24小時格式,如 hh mm ss t 顯示時間為12小時格式 a 顯示時間為...
Linux 修改bash命令提示符
含義在檔案末尾加上一下內容 ps1 033 0 32m u h w 033 0m export ps1ps1被用作主要的提示字串使用 相關特殊字元 h 完整的主機名稱。h 僅取主機的第乙個名字,到 結束 u 當前使用者的使用者名稱 w 完整的工作目錄名稱。宿主目錄 如 hom peter 會以 代替...