1. 程式人生 > 其它 >linux命令列ps1變數_Linux命令列提示符修改「全攻略」

linux命令列ps1變數_Linux命令列提示符修改「全攻略」

技術標籤:linux命令列ps1變數

在許多Linux系統上,預設的bash命令列提示符非常小。正如我們將在本文中看到的那樣,可以通過修改提示符,以便顯示包括諸如時間、負載、使用系統的使用者數量、常執行時間等資訊。

在本教程中,您將學習:

  • 什麼是PS1和PS2 Shell變數
  • 如何建立自定義shell提示符
  • 我們可以用來定製shell提示的字元是什麼
eafc1bd28abd1467b79883d330117207.png

Bash提示變數

與Linux系統中其他功能一樣,bash提示符也可以自定義。我們可以通過更改bash的值來完成任務PS1,PS2,PS3,PS4變數。為了使事情簡單,本文將只涉及前兩個。使用echo命令檢視其值:

$ echo "Bash PS1 variable:"  $PS1$ echo "Bash PS2 variable:"  $PS2 
127c7ca0f8f488f1455411698001db57.png

PS1和PS2 bash提示

Bash PS1提示變數

PS1是主要的提示變數。目前持有[email protected]:w$特殊的bash字元。這是許多Linux系統上bash提示符的預設結構,每次使用終端登入時都會顯示。請參閱以下“ Bash提示特殊字元”部分以瞭解u,h,w和$符號。這是帶有預設設定的經典bash提示:

35590295c0b98cca05096ca159c77a73.gif

PS1 bash提示

Bash PS2提示變數

PS2bash shell變數是輔助提示。如果 shell 程式等待使用者輸入,則會顯示此提示,例如,您忘記插入第二個引號。

f3b1a0e674d9c783ab6072ffa17762ce.gif

PS2 bash提示

Bash提示特殊字元

可以使用特殊字元自定義Bash提示。以下是最常用的字元及其含義的快速概述:

Bash提示特殊字元Bash特殊字元Bash特殊字元說明Bash特殊字元Bash特殊字元說明aASCII響鈴字元(07)d以“星期月份日期”格式顯示的日期(例如,“Tue May 26”)$$非列印字元序列的結束eASCII轉義字元(033)h主機名,直到第一個`。H主機名 jShell當前管理的作業數lShell的終端裝置名稱的基本名稱新行回車sshell 程式的名稱,$0的基本名稱(最後斜槓後的部分)以24小時制HH:MM:SS表示的當前時間T當前時間(12小時HH:MM:SS格式)@當前時間(12小時制)A以24小時制HH:MM表示的當前時間u當前使用者的使用者名稱vbash的版本(例如2.00)Vbash版本+ patchelvel的釋出(例如2.00.0)w當前工作目錄W當前工作目錄的基本名稱!該命令的歷史編號#該命令的命令號$如果有效UID為0,則為#,否則為$nn八進位制數字nnn對應的字元反斜槓 [開始一個non-printing字元序列,該字元可用於將終端控制序列嵌入到提示中D {format}將該格式傳遞給strftime(3)並將結果插入提示字串中;空格式將導致區域特定時間表示。大括號是必需的



Bash提示的自定義

使用者登入到系統後,將從各種檔案初始化使用者環境變數:

  • /etc/profile或/etc/bashrc(系統)
  • 〜/.bash_profile,〜/.bash_login,〜/.profile,〜/.bashrc或〜/.bash_logout(使用者)

重要的是要知道所有使用者環境變數的生存期都等於終端會話。當終端會話關閉時,使用者的變數包括bash shell變數都會清空。

永久bash變數定義

首先,我們將在一個bash初始化檔案中定義一個永久變數,~/.bash_profile,然後我們將在shell命令列提示中定義一個臨時變數。永久使用者變數:

2f1ed30a85207c02945cdecee9771687.gif

這裡發生的是,使用者"prompt"修改了自己的.bash_profile初始化檔案,該檔案位於其主目錄中,方法是附加一個VAR1變數定義。當用戶"prompt"登出並再次登入時,$var1變數已初始化並可用於新的終端會話。

根據相同的原則,我們可以定義bash提示符。最好的地方是bash初始化檔案.~/bashrc。開啟你的 ~/.bashrc檔案並 新增/編輯 定義PS1變數類似於:

PS1='MY NEW BASH [email protected]:w$ '

注意:您的〜/.barshrc檔案可能與以下示例不同!

20b34fc1591c6a9f6b97f15a24182882.gif
$ source .bashrc

或類似的:

$ . .bashrc
9589bfc12ac31ddb5142077c78b1d62a.gif

臨時bash變數定義

臨時bash變數僅持續到當前終端會話。使用export命令生效。

b6f6a4333e3dd6e12eb8beae533ab8d0.gif

Bash臨時變數

如您所見,變數$VAR2在使用者關閉其終端會話時未定義。永久變數$VAR1總是從bash初始化檔案定義的:~/.bash_profile。由於我們可以使用匯出命令來定義新的bash變數,因此我們也可以使用它來修改bash提示$PS1變數。要將當前bash提示更改為僅顯示時間,我們可以執行以下操作:

export PS1=": " 
5b7d6db98e6fc354a9af21ccf91ce486.gif

臨時提示定義

更改前景和背景bash提示顏色

在bash中更改顏色的語法如下:

033[ - Indicates the beginning of color in the textx;yzm - Indicates color code033[00m - Indicates the end of color in the text

Bash顏色程式碼:

35bb0a448b6108d533fc822432325d78.gif
export PS1="033[01;31mBASH IN RED033[00m: "
af9e70625581abe6d78a594854e8c1ef.gif

Bash提示-紅色

Bash提示示例

為了讓您開始使用新的bash提示,請參考以下幾個示例:

顯示當前時間

export PS1="[email protected] :$ "
f13c0f95a06b2e73ce3818954f503f6c.gif

計算當前目錄中的檔案

此bash提示顯示當前目錄中的當前檔案和目錄數。

export PS1="[email protected] [$(ls | wc -l)]:$ "
f9350cd4ba7f21623d53f0a69767754d.gif

帶有檔案計數的Bash提示

參考資料

  • Bash prompt basics - LinuxConfig.org