當前位置: 首頁>>係統&架構>>正文


Linux命令行提示符修改【全攻略】

在許多Linux係統上,默認的bash命令行提示符非常小。正如我們將在本文中看到的那樣,可以通過修改提示符,以便顯示包括諸如時間、負載、使用係統的用戶數量、常運行時間等信息。

在本教程中,您將學習:

  • 什麽是PS1和PS2 Shell變量
  • 如何創建自定義shell提示符
  • 我們可以用來定製shell提示的字符是什麽

Bash提示變量

與Linux係統中其他功能一樣,bash提示符也可以自定義。我們可以通過更改bash的值來完成任務PS1PS2PS3PS4變量。為了使事情簡單,本文將隻涉及前兩個。使用echo命令查看其值:

$ echo "Bash PS1 variable:"  $PS1
$ echo "Bash PS2 variable:"  $PS2 

ps1-ps2-bash-prompt

PS1和PS2 bash提示

Bash PS1提示變量

PS1是主要的提示變量。目前持有\u@\h:\w\$特殊的bash字符。這是許多Linux係統上bash提示符的默認結構,每次使用終端登錄時都會顯示。請參閱以下“ Bash提示特殊字符”部分以了解\u\h\w\$符號。這是帶有默認設置的經典bash提示:

ps1-bash-prompt

PS1 bash提示

Bash PS2提示變量

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

ps2-bash-prompt

PS2 bash提示

Bash提示特殊字符

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

Bash提示特殊字符
Bash特殊字符 Bash特殊字符說明 Bash特殊字符 Bash特殊字符說明
\\a ASCII響鈴字符(07) \\d 以“星期月份日期”格式顯示的日期(例如,“Tue May 26”)
\\] 非打印字符序列的結束 \\e ASCII轉義字符(033)
\\h 主機名,直到第一個`。 \\H 主機名
\\ j Shell當前管理的作業數 \\l Shell的終端設備名稱的基本名稱
\\n 新行 \\r 回車
\\s shell 程序的名稱,$0的基本名稱(最後斜杠後的部分) \\t 以24小時製HH:MM:SS表示的當前時間
\\T 當前時間(12小時HH:MM:SS格式) \\@ 當前時間(12小時製)
\\A 以24小時製HH:MM表示的當前時間 \\u 當前用戶的用戶名
\\v bash的版本(例如2.00) \\V bash版本+ patchelvel的發布(例如2.00.0)
\\w 當前工作目錄 \\W 當前工作目錄的基本名稱
\\! 該命令的曆史編號 \\# 該命令的命令號
\\$ 如果有效UID為0,則為#,否則為$ \\nnn 八進製數字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命令行提示中定義一個臨時變量。永久用戶變量:

這裏發生的是,用戶”prompt”修改了自己的.bash_profile初始化文件,該文件位於其主目錄中,方法是附加一個VAR1變量定義。當用戶”prompt”注銷並再次登錄時,$var1變量已初始化並可用於新的終端會話。

根據相同的原則,我們可以定義bash提示符。最好的地方是bash初始化文件.~/bashrc。打開你的 ~/.bashrc文件並 添加/編輯 定義PS1變量類似於:

PS1='MY NEW BASH PROMPT@\t:\w\$ '

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

$ source .bashrc

或類似的:

$ . .bashrc

臨時bash變量定義

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

bash-temporary-variable

Bash臨時變量

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

export PS1="\t: " 

bash-temporary-prompt-define

臨時提示定義

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

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

\033[ - Indicates the beginning of color in the text
x;yzm - Indicates color code
\033[00m - Indicates the end of color in the text

Bash顏色代碼:

export PS1="\033[01;31mBASH IN RED\033[00m: "

Bash prompt - red color

Bash提示-紅色

Bash提示示例

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

顯示當前時間

export PS1="\u@\h \t:\$ "

計算當前目錄中的文件

此bash提示顯示當前目錄中的當前文件和目錄數。

export PS1="\u@\h [\$(ls | wc -l)]:\$ "

bash-prompt-count-files

帶有文件計數的Bash提示

參考資料

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/4284.html,未經允許,請勿轉載。