在ubuntu terminal(終端)的命令提示行 隱藏/顯示 當前工作目錄

ubuntu的終端裏,命令行提示是默認顯示當前工作目錄的絕對路徑,如下:

[plain] view plain copy
  1. user@system:/folder1/folder2/folder3/folder4$  


當絕對路徑比較長的時候就有點煩了,因爲輸入的命令就不得不過行寫(因爲第一行里路徑就佔用太多space了)。。

而且terminal的窗口標題就是顯示當前目錄的絕對路徑,加上還有個pwd命令可以顯示當前路徑,所以個人感覺沒必要在命令提示那裏佔用那麼多地方顯示那麼長的路徑。


在網上找到了解決方法:改變系統變量PS1

(鏈接:Hide current working directory in terminal


查看當前系統使用的PS1:

[plain] view plain copy
  1. echo $PS1  


通常爲:

[plain] view plain copy
  1. \e]0;\u@\h:\w\a
    ${debian_chroot:+($debian_chroot)}\u@\h:\w\$   


然後在找這個問題的解決方法的時候有個解釋特別詳細特別給力,順帶就翻譯了下貼在這裏:

(http://askubuntu.com/a/18435)


PS1:當你打開終端的時候看到的默認提示符。這個提示符是存在一個叫做 PS1 的環境變量裏的。如果想查看它的值,在終端輸入:

[plain] view plain copy
  1. echo $PS1  
顯示的結果大概如下:

[plain] view plain copy
  1. \e]0;\u@\h:\w\a
    ${debian_chroot:+($debian_chroot)}\u@\h:\w\$  
如果想要改變提示符顯示的內容,直接賦值個新值給 PS1 ,比如下面這樣:
[plain] view plain copy
  1. export PS1="\u > "  
這樣修改後,終端就會顯示修改後的結果了。


PS2:這是候選提示符。這個提示符會在命令沒完成的時候顯示。比如你輸入:

[plain] view plain copy
  1. echo "asd  
然後就按回車的話,候選提示符就會讓你輸入更多行直到你輸入右引號。

PS3:這是用於select(2)

PS4:這是用於堆棧跟蹤


使用export進行的修改在重新打開一個終端的時候就會失效,如果想要修改長期有效的話,就要把修改結果寫到 .bashrc 裏面(在 /home 目錄裏。在某些系統裏叫做 .bash_profile)。


下面是一份差不多完整的提示符內容簡寫對應意思的列表:

  • \a     The 'bell' character (“鈴聲”符號)
  • \A     24h Time (24小時制時間)
  • \d     Date (e.g. Tue Dec 21) (日期)
  • \e     The 'escape' charakter (“Esc”符號)
  • \h     Hostname (up to the first ".") (主機名稱,寫到第一個“.”)
  • \H     Hostname (主機名稱)
  • \j     No. of jobs currently running (ps) (目前正在跑的進程的數目)
  • \l     Current tty (當前的tty)
  • \n     Line feed (換行符)
  • \t     Time (hh:mm:ss) (時間格式)
  • \T     Time (hh:mm:ss, 12h format) (時間,12小時格式)
  • \r     Carriage return (回車符)
  • \s     Shell (i.e. bash, zsh, ksh..) 
  • \u     Username (用戶名稱)
  • \v     Bash version (Bash版本)
  • \V     Full Bash release string (完整的Bash發行號)
  • \w     Current working directory (當前工作目錄)
  • \W     Last part of the current working directory (當前工作目錄的最後一部分)
  • \!     Current index in history (以往的當前下標)
  • \#     Command index (命令行下標)
  • \$     A "#" if you're root, else "$" (root身份登陸的時候是“#”,其他身份登陸都是“$”)
  • \\     Literal Backslash (取字面意思的反斜槓)
  • \@     Time (12h format with am/pm) (時間,用am/pm的12小時制)


你還可以插入任何字符串,或者任何命令,比如:

[plain] view plain copy
  1. export PS1="\u \$(pwd) > "  
這裏的 $(pwd) 表示顯示命令 pwd 的輸出結果。
注意:如果命令替換被轉義的話,比如被解釋爲 \$(pwd) 的話,那麼每次提示符顯示的時候都會求一次該命令的值;若沒被轉義的話,比如被解釋爲$(pwd) 的話,只會在bash啓動的時候計算一次而已。


如果你想要提示符有顏色比較好看的話,你可以用bash的顏色代碼來實現。這個代碼由三部分組成,如下:

[plain] view plain copy
  1. 40;33;01  

(1)在分號前的第一部分表示字體類型:

[plain] view plain copy
  1. 00 = none  
  2. 01 = 粗體  
  3. 04 = 下劃線  
  4. 05 = 閃爍  
  5. 07 = 顛倒  
  6. 08 = 隱藏  

(2)第二和第三部分是顏色和背景顏色:

[plain] view plain copy
  1. 30 = black  
  2. 31 = red  
  3. 32 = green  
  4. 33 = yellow  
  5. 34 = blue  
  6. 35 = magenta  
  7. 36 = cyan  
  8. 37 = white  


設從左邊開始,每一部分都可以被省略。例如,“1”表示粗體,“1;31”表示字體粗體並紅色。你可以通過使用轉義指令 “\33[“ 並且以 "m" 結尾來讓你的終端打印出顏色。

數字33 或者 十六進制的1B 都是ascii碼的”ESCAPE“(轉義)。



翻譯不準的地方歡迎指出~~有任何疑問建議直接嘗試然後看效果就知道了,實踐出真知嘛~~


最後貼一下我個人折騰出來的PS1:

[plain] view plain copy
  1. export PS1='
    \e]0;\u@\h:\w\a
    ${debian_chroot:+($debian_chroot)}
    \033[01;32m
    \u
    \033[01;33m
    @\h
    \033[00m
    :
    \033[01;34m
    \W
    \033[00m
    \$ '  
發佈了45 篇原創文章 · 獲贊 27 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章