在Linux上shell顯示使用者名稱及主機名稱,linuxshell
1. 問題描述
最近在伺服器上重新安裝了一點東西,結果登入的shell介面變成了顯示-bash-4.2$,顯得很醜而且使用起來十分不方便,主要是scp時需要使用者名稱和主機名稱,因此對其進行了修改。
2. 解決方案
修改目前使用者的.bash_profile檔案,在其中加入:
export PS1='[\u@\h \W]$ '
source .bash_profile,OK,問題解決。
3. 解釋
PS1是Linux終端使用者的一個環境變數,用來說明命令列提示符的設定。\u等是特殊字元,可以通過man bash命令查看,其意義如下:
\a an ASCII bell character (07)\d the date in "Weekday Month Date" format (e.g., "Tue May 26")\D{format} 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 variable)\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
部分特殊字元解釋如下:
\u 目前使用者的使用者名稱\h 用.分開的第一個主機名稱\H 完整的主機名稱\W 當前工作目錄的目錄名,只顯示路徑的最後一個目錄\w 當前工作目錄的目錄名,顯示全路徑