当前位置: 首页>>系统&架构>>正文


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/article/4284.html,未经允许,请勿转载。