MySQL 外壳 8.0  / 第 13 章自定义 MySQL Shell  /  13.3 自定义提示

13.3 自定义提示

可以使用提示主题文件自定义MySQL Shell的提示。自定义提示主题文件,可以设置 MYSQLSH_PROMPT_THEME环境变量为提示主题文件名,也可以将提示主题文件复制到 ~/.mysqlsh/Linux和macOS%AppData%\Roaming\MySQL\mysqlsh\ 目录下,Windows目录下。该文件必须命名 prompt.json,并且必须重新启动 MySQL Shell 才能使更改生效。

图 13.1 mysql shell 提示符

MySQL Shell 提示显示输入语言 JavaScript 到 SQL、SQL 到 Python、Python 回到 JavaScript 的变化。

有六个部分可以组成提示:

  • Status : 是否是生产系统,是否已经失去连接。

  • MySQL:提醒您正在使用 MySQL 数据库。

  • Connection:您连接到哪个主机,以及在哪个端口上使用 SSL。

  • Schema:当前的默认架构。

  • 模式:您正在使用的模式:JS= JavaScript、 PY= Python 和SQL= SQL。

  • 结束:提示以 结束 >

通过定义环境变量,可以在所有平台上覆盖mysqlsh 所在目录 的用户配置路径。此变量的值 在 Microsoft Windows 或Unix 上替换。 prompt.jsonMYSQLSH_USER_CONFIG_HOME%AppData%\Roaming\MySQL\mysqlsh\~/.mysqlsh/

在 Microsoft Windows 上,在以下目录中找到提示主题文件:%programfiles%\MySQL\MySQL Shell 8.0\share\mysqlsh\prompt\.

在 macOS 上,在以下目录中找到提示主题文件: /usr/local/mysql-shell/share/mysqlsh/prompt.

在 Linux 上,在以下目录中找到提示主题文件: /usr/share/mysqlsh/prompt/.

文件中描述了提示主题文件的 README.prompt格式。还包括一些示例提示主题文件,例如 prompt_256.json

在示例提示主题prompt_256.json中,有一个带有类 disconnected%host%和的对象%is_production%。变量在此文件中定义或来自 MySQL Shell 本身,例如,%host%port. 在此示例中,主机包含在环境变量 PRODUCTION_SERVERS中。

  "variables" : {
        "is_production": {
        "match" : {
        "pattern": "*;%host%;*",
        "value": ";%env:PRODUCTION_SERVERS%;"
        },

背景色和前景色是使用 bgfg元素定义的。这些元素允许您自定义提示中使用的颜色。通过以下方式之一指定颜色:

  • 按名称:使用按名称定义的颜色。

  • 按索引:使用 0 到 255(含)之间的值,其中 0 为黑色,63 为浅蓝色,127 为洋红色,193 为黄色,255 为白色。

  • 按 RGB:使用 #rrggbb格式中的值。终端必须支持 TrueColor.

PRODUCTION此示例中使用命名颜色,如果布尔 is_production元素返回 ,则 带有文本 输出TRUE

    "production" : {
    "text": " PRODUCTION ",
    "bg": "red",
    "fg": "white"
    }

这些元素以下列格式输出提示:

图 13.2 mysql shell 提示符

使用 prompt_256.json 文件自定义提示。

颜色显示取决于终端提供的支持。大多数终端在 Linux 和 Mac 中都支持 256 色。在 Windows 中,颜色支持需要支持 ANSI/VT100 转义的第 3 方终端程序或 Windows 10。默认情况下,MySQL Shell 会尝试检测终端类型并适当地处理颜色。如果自动检测不适用于您的终端类型,或者由于可访问性要求或出于其他目的想要修改颜色模式,您可以定义环境变量 MYSQLSH_TERM_COLOR_MODE以强制 MySQL Shell 使用特定的颜色模式。此环境变量的可能值为rgb25616nocolor

启动时,如果在提示主题文件中发现错误,则打印错误信息并使用默认提示主题。一些示例提示主题文件需要特殊字体(例如 SourceCodePro+Powerline+Awesome+Regular.ttf)。如果将MYSQLSH_PROMPT_THEME环境变量设置为空值,MySQL Shell 将使用无颜色的最小提示符。