ubuntu的終端裏,命令行提示是默認顯示當前工作目錄的絕對路徑,如下:
- user@system:/folder1/folder2/folder3/folder4$
當絕對路徑比較長的時候就有點煩了,因爲輸入的命令就不得不過行寫(因爲第一行里路徑就佔用太多space了)。。
而且terminal的窗口標題就是顯示當前目錄的絕對路徑,加上還有個pwd命令可以顯示當前路徑,所以個人感覺沒必要在命令提示那裏佔用那麼多地方顯示那麼長的路徑。
在網上找到了解決方法:改變系統變量PS1
(鏈接:Hide current working directory in terminal)
查看當前系統使用的PS1:
- echo $PS1
通常爲:
-
\e]0;\u@\h:\w\a${debian_chroot:+($debian_chroot)}\u@\h:\w\$
然後在找這個問題的解決方法的時候有個解釋特別詳細特別給力,順帶就翻譯了下貼在這裏:
(http://askubuntu.com/a/18435)
PS1:當你打開終端的時候看到的默認提示符。這個提示符是存在一個叫做 PS1 的環境變量裏的。如果想查看它的值,在終端輸入:
- echo $PS1
-
\e]0;\u@\h:\w\a${debian_chroot:+($debian_chroot)}\u@\h:\w\$
- export PS1="\u > "
PS2:這是候選提示符。這個提示符會在命令沒完成的時候顯示。比如你輸入:
- 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小時制)
你還可以插入任何字符串,或者任何命令,比如:
- export PS1="\u \$(pwd) > "
注意:如果命令替換被轉義的話,比如被解釋爲 \$(pwd) 的話,那麼每次提示符顯示的時候都會求一次該命令的值;若沒被轉義的話,比如被解釋爲$(pwd) 的話,只會在bash啓動的時候計算一次而已。
如果你想要提示符有顏色比較好看的話,你可以用bash的顏色代碼來實現。這個代碼由三部分組成,如下:
- 40;33;01
(1)在分號前的第一部分表示字體類型:
- 00 = none
- 01 = 粗體
- 04 = 下劃線
- 05 = 閃爍
- 07 = 顛倒
- 08 = 隱藏
(2)第二和第三部分是顏色和背景顏色:
- 30 = black
- 31 = red
- 32 = green
- 33 = yellow
- 34 = blue
- 35 = magenta
- 36 = cyan
- 37 = white
數字33 或者 十六進制的1B 都是ascii碼的”ESCAPE“(轉義)。
最後貼一下我個人折騰出來的PS1:
-
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\$ '