用戶通過遠程登陸,初始的PS1為\s-\v\$, bash為/bin/bash,然后先后執行/etc/profile和~/.bash_profile中的命令。
/etc/profile文件中調用執行/etc/bash.bashrc,使得默認從終端登陸的PS1初始值設為
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
而用戶通過圖形界面新建shell,會先后讀取/etc/bash.bashrc和~/.bashrc中的配置,由於$TERM為xterm-256color,所以會將PS1設為
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
以下為修改遠程登陸shell時的bash命令提示符
vi ~/.bash_profile # 在 ~/.bash_profile中加入: export PS1="[\u@\h:\W]\\$" # 使配置立即生效 source ~/.bash_profile
如果要修改圖形界面下bash命令提示符,只需要將 PS1="[\u@\h:\W]\\$" 讓在.bashrc文件最后,或者做如下修改:
67 case "$TERM" in 68 xterm*|rxvt*) 69 # PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" 70 PS1="[\u@\h:\W]\\$" 71 ;; 72 *) 73 ;; 74 esac
參考: man bash 下的 INVOCATION
效果:
hupeng@hupeng-vm:~/WorkSpace/shell$ vi ~/.bashrc #未修改之前路徑很長,從宿主目錄~開始顯示 hupeng@hupeng-vm:~/WorkSpace/shell$ cd test/ hupeng@hupeng-vm:~/WorkSpace/shell/test$ source ~/.bashrc #是修改立即生效 [hupeng@hupeng-vm test]$ #路徑變短了,只顯示路徑的basename [hupeng@hupeng-vm shell]$#關於basename [hupeng@hupeng-vm shell]$pwd /home/hupeng/WorkSpace/shell [hupeng@hupeng-vm shell]$basename `pwd` shell [hupeng@hupeng-vm shell]$echo $PS1 [\u@\h \W]\$ [hupeng@hupeng-vm shell]$PS1="PROMPT>" PROMPT>PS1="[\u@\h \W]\$" [hupeng@hupeng-vm shell]$ #在shell中修改只能臨時生效,要永久生效,必須修改配置文件
PS1以及相關特殊字符介紹:
可以 man bash 然后搜索PS1和PROMPTING
PS1被用作主要的提示字符串使用。
相關特殊字符:
\H: #完整的主機名稱。 \h: #僅取主機的第一個名字,到“.”結束 \u: #當前用戶的用戶名 \w: #完整的工作目錄名稱。宿主目錄(如/hom/peter)會以~代替 \W: #利用basename取得工作目錄名稱,所以只會列出最后一個目錄 \$: #提示字符,如果是root時,提示符為:#,普通用戶則為: \#: #顯示命令的編號(如30,31...) \t: 顯示時間為24小時格式,如:HH:MM:SS \T: #顯示時間為12小時格式 \A: #顯示時間為24小時格式: HH:MM \d: #代表日期,格式為weekday month date, 例如:"Tue May 26" \v: #bash的版本信息 (如4.3)