如何与psqlrc定制PostgreSQL的提示在Ubuntu 14.04

介绍

psqlrc文件定制了psql交互式命令行客户端的行为。 psql使您能够以交互方式键入查询,将它们发布到PostgreSQL,并查看查询结果。 该文件有三种风格:

1)系统范围的psqlrc文件位于PostgreSQL的系统配置目录中。

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

pg_config --sysconfdir

2)找到或可以在用户的​​主目录中创建用户psqlrc文件。

touch ~/.psqlrc

3)如果有多个PostgreSQL安装,可以创建版本特定的psqlrc文件。 只需添加版本号到结尾。

touch ~/.psqlrc-9.1
touch ~/.psqlrc-9.3

安装

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

sudo apt-get install -y postgresql postgresql-contrib

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

su - postgres

psql

这应该显示标准的psql提示符。

psql (9.3.4)
Type "help" for help.

postgres=#

编辑提示

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

vi ~/.psqlrc

\set PROMPT1 '%M:%> %n@%/%R%#%x '
  • %M是指数据库服务器的主机名 - 如果连接是通过Unix域套接字,则为“[local]”
  • %>是指监听端口
  • %n是指会话用户名
  • %/引用当前数据库
  • %R是指您处于单行模式(^)还是断开连接(!),但通常为=
  • %#表示您是超级用户(#)还是普通用户(>)
  • %x指的是事务状态 - 通常为空白,除非在事务块(*)

如果以用户“john”身份登录到主机名为“trident”的计算机,并以普通用户身份访问数据库“orange”,则会看到

[trident]:5432 john@orange=>

您还可以编辑辅助psql提示符(PROMPT2)。

postgres-#

当您有未完成的查询时,将遇到辅助提示。

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

编辑辅助psql提示符主要类似于编辑主要psql提示符。

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

当在机器上以主机名“trident”作为用户“john”并且作为普通用户访问数据库“orange”的事务中间时,您将看到

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

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

颜色

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

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

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

  • 32为绿色
  • 33为黄色
  • 34为蓝色
  • 品红色
  • 36为青色
  • 37为白色

显示选项

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

\pset null '[null]'

要完成SQL关键字,如“选择”和“FROM”为大写或小写,您可以设置选项上或下的COMP 关键词大小写选项。

\set COMP_KEYWORD_CASE upper

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

\timing

在bash提示符中,在psql提示符下,您可以按向上箭头键通过历史记录访​​问以前执行的命令。 要设置历史记录的大小,您可以编辑HISTSIZE。

\set HISTSIZE 2000

当查询大表时,有时输出会呈现难以阅读的文本。 您可以切换到展开表格式。

\x auto

您还可以使用选项“default”,“verbose”或“terse”设置错误报告的详细程度。

\set VERBOSITY verbose

您也可以使用set命令设置快捷方式。 如果你想设置一个快捷方式看到PostgreSQL版本和可用的扩展添加以下:

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

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

\echo 'Welcome to PostgreSQL\n'

最后,编辑psqlrc会在您启动psql时创建输出。 如果要隐藏这些,请在psql文件的顶部和底部设置QUIET标志。

包起来

完整的文件如下。

\set QUIET 1

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

\set PROMPT2 '%M %n@%/%R %# '

\pset null '[null]'

\set COMP_KEYWORD_CASE upper

\timing

\set HISTSIZE 2000

\x auto

\set VERBOSITY verbose

\set QUIET 0

\echo 'Welcome to PostgreSQL! \n'
\echo 'Type :version to see the PostgreSQL version. \n' 
\echo 'Type :extensions to see the available extensions. \n'
\echo 'Type \\q to exit. \n'
\set version 'SELECT version();'
\set extensions 'select * from pg_available_extensions;'

现在当你启动psql,你会看到一个不同的提示。

$ psql

Welcome to PostgreSQL!

Type :version to see the version.

Type :extensions to see the available extensions.

Type \q to exit.

psql (9.3.4)
Type "help" for help.

[local]:5432 postgres@postgres=#    

还有更多的自定义可以做,但这些应该是一个良好的开始,以提高您的psql体验。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏