如何在 Ubuntu 14.04 上使用 psqlrc 自定义 PostgreSQL 提示符

介绍

psqlrc 文件定制 psql 交互式命令行客户端的行为. psql 允许您互动地键入查询,发送到 PostgreSQL,并查看查询结果。

全系统 psqlrc 文件位于 PostgreSQL 的系统配置目录中。

此目录的位置取决于您的 PostgreSQL 安装,但可以通过使用 pg_config 工具找到。

1pg_config --sysconfdir

用户 psqlrc 文件可在用户主目录中找到或创建。

1touch ~/.psqlrc
  1. 如果有多个 PostgreSQL 安装,可以创建特定版本的 psqlrc 文件. 只需将版本编号添加到最后。
1touch ~/.psqlrc-9.1
2touch ~/.psqlrc-9.3

安装

在您可以使用 psql 之前,您必须安装 PostgreSQL。

1sudo apt-get install -y postgresql postgresql-contrib

这将安装PostgreSQL 9.3.现在你可以切换到postgres用户并启动psql。

1su - postgres
2
3psql

这应该显示标准 psql 提示。

1psql (9.3.4)
2Type "help" for help.
3
4postgres=#

编辑快递

通过编辑用户 psqlrc 文件,您可以定制主 psql 提示(PROMPT1)并创建有用的快捷键。 用您选择的编辑器编辑.psqlrc 文件以添加以下行(在这里我们将使用vim)。

1vi ~/.psqlrc
2
3\set PROMPT1 '%M:%> %n@%/%R%#%x '
  • %M 指数据库服务器的主机名 - 如果连接是通过 Unix 域接口,则是)或离线(!),但通常是 = * %# 指你是否是超级用户( )或常规用户(>) * %x 指交易状态 - 通常是空的,除非在交易块中 (* )

如果您登录到一个使用主机名trident作为用户john的机器,并作为常规用户访问数据库orange,您将看到

1[trident]:5432 john@orange=>

您还可以编辑次要 psql 提示(PROMPT2)。

1postgres-#

当你有一个未完成的查询时,你将运行到次要提示。

1postgres=# select * from
2postgres-# peel limit 1;

编辑次要 psql 提示程序大多类似于编辑主要 psql 提示程序。

1\set PROMPT2 '%M %n@%/%R %# '
  • %R 表示为-而不是=

当在机器上的交易中使用主机名trident作为用户john并作为普通用户访问数据库orange时,你会看到

1[trident]:5432 john@orange=> select * from
2[trident] john@orange-> peel limit 1;

当然,您可以添加、删除或重新安排这些选项以包含对您有用的信息。

色彩

提示颜色可以用 psqlrc 编辑. 若要使端口号为红,请添加以下内容。

1\set PROMPT1 '%M:%[%033[1;31m%]%>%[%033[0m%] %n@%/%R%#%x '

您可以使用多种颜色 - 将值 31 更改为:

  • 32 是绿色 * 33 是黄色 * 34 是蓝色 * 35 是黑色 * 36 是白色 * 37 是白色

显示选项

在查询 PostgreSQL 数据库时, null 值返回一个空格. 如果您希望它返回值 NULL,则可以编辑 null 选项。

1\pset null '[null]'

要将 SQL 关键字如SELECTFROM作为上层或下层完成,您可以将 COMP_KEYWORD_CASE 选项设置为上层或下层选项。

1\set COMP_KEYWORD_CASE upper

要将所有查询显示查询时间使用启用时间选项。

1\timing

如同在 bash 提示,在 psql 提示,你可以按上箭头键来访问先前执行的命令通过历史. 为了设置历史的大小,你可以编辑 HISTSIZE。

1\set HISTSIZE 2000

在查询大表时,输出有时会渲染难以读取的文本,您可以切换到扩展表格式。

1\x auto

您还可以使用默认verboseterse选项设置错误报告的语音性。

1\set VERBOSITY verbose

您也可以使用 set 命令设置快捷键。如果您想设置一个快捷键来查看 PostgreSQL 版本和可用的扩展,请添加以下内容:

1\set version 'SELECT version();'
2\set extensions 'select * from pg_available_extensions;'

如果您想在启动 psql 提示时显示消息,您可以使用 echo 命令。

1\echo 'Welcome to PostgreSQL\n'

最后,编辑 psqlrc 会创建输出,当您启动 psql. 如果您想隐藏这些,请在 psql 文件的顶部和底部设置 QUIET 旗帜。

包装起来

完整檔案在下方。

 1\set QUIET 1
 2
 3\set PROMPT1 '%M:%[%033[1;31m%]%>%[%033[0m%] %n@%/%R%#%x '
 4
 5\set PROMPT2 '%M %n@%/%R %# '
 6
 7\pset null '[null]'
 8
 9\set COMP_KEYWORD_CASE upper
10
11\timing
12
13\set HISTSIZE 2000
14
15\x auto
16
17\set VERBOSITY verbose
18
19\set QUIET 0
20
21\echo 'Welcome to PostgreSQL! \n'
22\echo 'Type :version to see the PostgreSQL version. \n' 
23\echo 'Type :extensions to see the available extensions. \n'
24\echo 'Type \\q to exit. \n'
25\set version 'SELECT version();'
26\set extensions 'select * from pg_available_extensions;'

现在,当你开始 psql 时,你会看到另一个提示。

 1$ psql
 2
 3Welcome to PostgreSQL!
 4
 5Type :version to see the version.
 6
 7Type :extensions to see the available extensions.
 8
 9Type \q to exit.
10
11psql (9.3.4)
12Type "help" for help.
13
14[local]:5432 postgres@postgres=#

您可以做更多的自定义,但这些应该是改善您的psql体验的好开始。

Published At
Categories with 技术
Tagged with
comments powered by Disqus