介绍
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体验。