Shell 环境一般在我们输入之前, 会有部分提示信息, 快速让使用者知道当前环境的信息,比如当前用户/当前路径等. Bash Shell 同样给我们提供了定制这部分的逻辑,在 Bash Shell 下使用 PS1 来设置 Shell 提示信息.

PS 原意是 Prompt String, 当然有 PS1, 至少还会有其他的, 比如 PS2.

  • PS1 默认 Shell 提示符
  • PS2 多行命令的默认提示符, 一个非常长的命令可以通过在末尾加 \ 使其分行显示 , 多行命令提示默认值是 >
  • PS3 选择输入时的提示符, 默认值为 #?
  • PS4 配合set -x用来修改跟踪输出的前缀, set -x 一般用在调试过程, 显示整个脚本的执行过程, 默认值为 ++

先来看看 PS1="\h:\W \u\$" 示例

  • \h 简写主机名, 一般取第一个单词
  • \W 利用 basename 命令取得当前目录名称, 仅列出最后一个目录的名称
  • \u 当前用户名称
  • \$ 提示字符, root 用户时为 #, 普通用户时为 $

最终显示效果

server:~ root$ 

系统一般是将默认的 PS1 信息配置在 /etc/profile 或者 /etc/bash.bashrc 中,个人如果修改, 建议仅仅修改在 用户的 .bashrc 中, 不建议修改系统原始定义, 这些配置,实际上是有用户托管, 如果某次系统更新需要更新这些文件,可能会覆盖自定义配置, 配置在用户环境是个好的实践.

更多PS1的配置信息如下:

  • \d 代表日期,格式为weekday month date,例如:"Mon Aug1"
  • \H 完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
  • \h 仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
  • \t 显示时间为24小时格式,如:HH:MM:SS
  • \T 显示时间为12小时格式
  • \A 显示时间为24小时格式:HH:MM
  • \u 当前用户的账号名称
  • \v BASH的版本信息
  • \w 完整的工作目录名称。家目录会以 ~代替
  • \W 利用basename取得工作目录名称,所以只会列出最后一个目录
  • \# 下达的第几个命令
  • \$ 提示字符,如果是root时,提示符为:# ,普通用户则为:$

对于终端提示符颜色配置,内容偏麻烦些,需要了解 PS1 中的颜色值配置语法

  • 开启颜色提示语法 \[\e[color\]
  • 结束颜色提示语法 \[\e[m\]

一个颜色语法的完整示例 \e[0;32m\] helloworld \[\e[m\]

我们来对 PS1 调整下, 将主机名部分设置为绿色:

PS1="\e[0;32m\]\h:\W\[\e[m\] \u\$"

你可以将这段代码直接复制到你的终端, 实时可以看到效果.

终端下的常见颜色值:

  • '\e[0;30m]' # Black - Regular
  • '\e[0;31m]' # Red
  • '\e[0;32m]' # Green
  • '\e[0;33m]' # Yellow
  • '\e[0;34m]' # Blue
  • '\e[0;35m]' # Purple
  • '\e[0;36m]' # Cyan
  • '\e[0;37m]' # White
  • '\e[1;30m]' # Black - Bold
  • '\e[1;31m]' # Red
  • '\e[1;32m]' # Green
  • '\e[1;33m]' # Yellow
  • '\e[1;34m]' # Blue
  • '\e[1;35m]' # Purple
  • '\e[1;36m]' # Cyan
  • '\e[1;37m]' # White
  • '\e[4;30m]' # Black - Underline
  • '\e[4;31m]' # Red
  • '\e[4;32m]' # Green
  • '\e[4;33m]' # Yellow
  • '\e[4;34m]' # Blue
  • '\e[4;35m]' # Purple
  • '\e[4;36m]' # Cyan
  • '\e[4;37m]' # White
  • '\e[40m]' # Black - Background
  • '\e[41m]' # Red
  • '\e[42m]' # Green
  • '\e[43m]' # Yellow
  • '\e[44m]' # Blue
  • '\e[45m]' # Purple
  • '\e[46m]' # Cyan
  • '\e[47m]' # White
  • '\e[0m]' # Text Reset

这里的 3Xm 表示的是前景色的设置, 4Xm 设置的是背景色的设置

显示选项:

  • 0(默认)
  • 1(粗体/高亮)
  • 22(非粗体)
  • 4(单条下划线)
  • 24(无下划线)
  • 5(闪烁)
  • 25(无闪烁)
  • 7(反显、翻转前景色和背景色)
  • 27(无反显)

颜色选项:

  • 0(黑)
  • 1(红)
  • 2(绿)
  • 3(黄)
  • 4(蓝)
  • 5(洋红)
  • 6(青)
  • 7(白)

【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取!
https://cloud.tencent.com/act/cps/redirect?redirect=1068&cps_key=e4b50f6c64a4480367f8a8d16fd07c5a&from=console

标签: bash, PS1, Shell提示符

添加新评论