歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Linux下Bash的PS1

和一個朋友聊天,他說自己在用Ubuntu的時候會有這樣一個困惑:在bash下使用cd命令,進入一些很深的目錄後,或者說那些目錄名非常長的目錄後,bash的命令提示符就特別的長,以至於每個命令都會換行

Hadoop-mapred@hdp32:/etc/opt/directorynameisfuckingsolong/my/name/is/spazzzz$

類似於上面這種情況... 這種情況就是bash的命令提示符變量PS1的問題了,這裡的PS1使用的是完整的路徑名:
  1. echo $PS1 
  2. \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 
在這裡對上述描述情況發揮作用的是\w這個參數,它表示顯示完整路徑 如果只想顯示當前路徑的話,將w改成W,問題就解決了!(至於在哪裡修改,這個需要看linux的發行版了,有些在/etc/profile中,有些在~/.bash_profile中) 像剛才那種情況,顯示就變成

hadoop-mapred@hdp32:spazzzz$

這樣是不是就好多了。

PS:一些變量意義 

\d :代表日期,格式為weekday month date,例如:"Mon Aug 1"  \H :完整的主機名稱。名稱就是fc4.linux  \h :僅取主機的第一個名字,如上例,則為fc4,.linux則被省略  \t :顯示時間為24小時格式,如:HH:MM:SS  \T :顯示時間為12小時格式  \A :顯示時間為24小時格式:HH:MM  \u :當前用戶的賬號名稱  \v :BASH的版本信息  \w :完整的工作目錄名稱。家目錄會以 ~代替  \W :利用basename取得工作目錄名稱,所以只會列出最後一個目錄  \# :下達的第幾個命令  \$ :提示字符,如果是root時,提示符為:# ,普通用戶則為:   {debian_chroot:+($debian_chroot)} 這句的意思是說,如果在/etc下有debian_chroot文件,則命令提示符前面就附加上debian_chroot文件的內容。
Copyright © Linux教程網 All Rights Reserved