目錄Blog:博客園 個人
參考:命令提示符
- 概述
- 環境變數 PS1
- 顏色
- 環境變數 PS2,PS3,PS4
概述
用戶進入 Bash 以后,Bash 會顯示一個命令提示符,用來提示用戶在該位置后面輸入命令,
環境變數 PS1
命令提示符通常是美元符號$,對于根用戶則是井號#,這個符號是環境變數PS1決定的,執行下面的命令,可以看到當前命令提示符的定義,
$ echo $PS1
Bash 允許用戶自定義命令提示符,只要改寫這個變數即可,改寫后的PS1,可以放在用戶的 Bash 組態檔.bashrc里面,以后新建 Bash 對話時,新的提示符就會生效,要在當前視窗看到修改后的提示符,可以執行下面的命令,
$ source ~/.bashrc
命令提示符的定義,可以包含特殊的轉義字符,表示特定內容,
\a:響鈴,計算機發出一記聲音,\d:以星期、月、日格式表示當前日期,例如“Mon May 26”,\h:本機的主機名,\H:完整的主機名,\j:運行在當前 Shell 會話的作業數,\l:當前終端設備名,\n:一個換行符,\r:一個回車符,\s:Shell 的名稱,\t:24小時制的hours:minutes:seconds格式表示當前時間,\T:12小時制的當前時間,\@:12小時制的AM/PM格式表示當前時間,\A:24小時制的hours:minutes表示當前時間,\u:當前用戶名,\v:Shell 的版本號,\V:Shell 的版本號和發布號,\w:當前的作業路徑,\W:當前目錄名,\!:當前命令在命令歷史中的編號,\#:當前 shell 會話中的命令數,\$:普通用戶顯示為$字符,根用戶顯示為#字符,\[:非列印字符序列的開始標志,\]:非列印字符序列的結束標志,
舉例來說,[\u@\h \W]\$這個提示符定義,顯示出來就是[user@host ~]$(具體的顯示內容取決于你的系統),
[user@host ~]$ echo $PS1
[\u@\h \W]\$
改寫PS1變數,就可以改變這個命令提示符,
$ PS1="\A \h \$ "
17:33 host $
注意,$后面最好跟一個空格,這樣的話,用戶的輸入與提示符就不會連在一起,
顏色
默認情況下,命令提示符是顯示終端預定義的顏色,Bash 允許自定義提示符顏色,
使用下面的代碼,可以設定其后文本的顏色,
\033[0;30m:黑色\033[1;30m:深灰色\033[0;31m:紅色\033[1;31m:淺紅色\033[0;32m:綠色\033[1;32m:淺綠色\033[0;33m:棕色\033[1;33m:黃色\033[0;34m:藍色\033[1;34m:淺藍色\033[0;35m:粉紅\033[1;35m:淺粉色\033[0;36m:青色\033[1;36m:淺青色\033[0;37m:淺灰色\033[1;37m:白色
舉例來說,如果要將提示符設為紅色,可以將PS1設成下面的代碼,
PS1='\[\033[0;31m\]<\u@\h \W>\$'
但是,上面這樣設定以后,用戶在提示符后面輸入的文本也是紅色的,為了解決這個問題, 可以在結尾添加另一個特殊代碼\[\033[00m\],表示將其后的文本恢復到默認顏色,
PS1='\[\033[0;31m\]<\u@\h \W>\$\[\033[00m\]'
除了設定前景顏色,Bash 還允許設定背景顏色,
\033[0;40m:藍色\033[1;44m:黑色\033[0;41m:紅色\033[1;45m:粉紅\033[0;42m:綠色\033[1;46m:青色\033[0;43m:棕色\033[1;47m:淺灰色
下面是一個帶有紅色背景的提示符,
PS1='\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] '
環境變數 PS2,PS3,PS4
除了PS1,Bash 還提供了提示符相關的另外三個環境變數,
環境變數PS2是命令列折行輸入時系統的提示符,默認為>,
$ echo "hello
> world"
上面命令中,輸入hello以后按下回車鍵,系統會提示繼續輸入,這時,第二行顯示的提示符就是PS2定義的>,
環境變數PS3是使用select命令時,系統輸入選單的提示符,
環境變數PS4默認為+,它是使用 Bash 的-x引數執行腳本時,每一行命令在執行前都會先列印出來,并且在行首出現的那個提示符,
比如下面是腳本test.sh,
#!/bin/bash
echo "hello world"
使用-x引數執行這個腳本,
$ bash -x test.sh
+ echo 'hello world'
hello world
上面例子中,輸出的第一行前面有一個+,這就是變數PS4定義的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/234981.html
標籤:其他
上一篇:用 shell 腳本做日志清洗
下一篇:用 shell 腳本做日志清洗
