📜  linux 自定义提示 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:32:42.409000             🧑  作者: Mango

Linux 自定义提示 - Shell-Bash

Linux Shell-Bash 提示符是在命令行界面每行前的字符。默认情况下,它通常是当前工作目录的路径或已登录用户的用户名。

但是,您可以自定义 Bash 提示符,以便在您的 Shell 会话中以自定义方式显示并根据您的偏好进行格式化。

设置 Bash 提示符

首先,我们需要了解 $PS1 变量。 $PS1 是指示 Bash 显示 Shell 提示符的环境变量。 通过在终端中输入以下命令查看当前的 Bash 提示符:

echo $PS1

返回的输出应该类似于以下内容:

[\u@\h \W]\$

其中,

  • \u 表示用户名(用户登录名)。
  • \h 表示主机名或计算机名。
  • \W 表示当前工作目录的最后一个文件夹名称。
  • \$ 表示提示符即将出现的位置,如果当前用户是 root 用户,则会在提示符后显示 #。否则,它将显示 $

您可以使用自己的语法和特定的字符或文本来更改 Bash 提示符。例如,可以将 Bash 提示符设置为 MyShell $

PS1="MyShell $ "

在上述语法中,PS1 是 Bash 环境变量,用于定义 Bash 提示符字符串。 "MyShell $ " 是我们定义的自定义 Bash 提示符。在提示符定义中要注意用双引号。

当然,这只是示例。到现在为止,您应该可以导航到其他教程中以添加更多个性化选项,并使用特定条件或条件自动生成的颜色来修改 Bash 提示符。

Bash 提示符语法

您可以使用不同的语法元素来自定义 Bash 提示符。下面是 Bash 提示符语法元素和定义:

  • \a - ASCII 响铃字符,通常用于在 BASH 提示符中显示蜂鸣器。
  • \d - 日期,格式为 "星期几 月 日"。
  • \e - ANSI 转义序列的起始字符。用户可以使用 ANSI 转义序列,以在命令行界面中显示和控制文本样式和颜色。
  • \h - 完全合格的域名,例如 mycomputer.mydomain.com
  • \H - 仅展示计算机名。
  • \j - 当前 Shell 所拥有的 job 的数量。
  • \l - 当前 Shell 的终端名称,一般是 tty。
  • \n - 插入一个换行符。
  • \r - 插入一个回车符。
  • \s - Shell 命令的名称。
  • \t - 24 小时制时间,以 HH:MM:SS 呈现。
  • \T - 12 小时制时间,以 HH:MM:SS 呈现。
  • \@ - 12 小时制时间,以 AM 或 PM 形式显示。
  • \u - 当前用户名。
  • \v - Bash 版本号。
  • \V - Bash 的发行版本号。
  • \w - 当前工作目录。
  • \W - 当前工作目录中的最后一个文件夹。
  • \! - 当前命令的历史编号。
  • \# - The command number of this command.
  • \$ - A "#" character if the current user is root, otherwise a "$".
示例 Bash 提示符
# 显示完整路径 + 当前用户 + 箭头 + 当前命令编号
export PS1="\[\033[01;32m\]\u@\h\[\033[01;34m\] \W \$?\[\033[01;30m\] \!\[\033[01m\]: "

# 使用配置的蓝色,显示当前工作目录和 Git 分支提示符
PS1='[\[\e[0;34m\]\w$(__git_ps1)\[\e[0;32m\]]\$ '

# 显示完整路径以及回车符作为提示符结束
PS1='\e[01;38m[\e[01;34m\u@\h \e[01;31m\W\e[01;38m] \e[01;32m\$\n\e[00m'

# 坚果提示符 🔥
export PS1="\[\e[31m\]╭─[\[\e[37m\]\u@\h\[\e[31m\]] - [\[\e[32m\]\w\[\e[31m\]]\n\[\e[31m\]╰─▶ \[\e[0m\]"

这些示例仅是其中一些,其他还可以通过网络浏览中发现。通过探索和大量练习,你可以获得一个完全符合自己习惯的 Bash 提示符!