介绍
psqlrc 文件定制 psql 交互式命令行客户端的行为. psql 允许您互动地键入查询,发送到 PostgreSQL,并查看查询结果。
全系统 psqlrc 文件位于 PostgreSQL 的系统配置目录中。
此目录的位置取决于您的 PostgreSQL 安装,但可以通过使用 pg_config 工具找到。
1pg_config --sysconfdir
用户 psqlrc 文件可在用户主目录中找到或创建。
1touch ~/.psqlrc
- 如果有多个 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 关键字如SELECT
和FROM
作为上层或下层完成,您可以将 COMP_KEYWORD_CASE 选项设置为上层或下层选项。
1\set COMP_KEYWORD_CASE upper
要将所有查询显示查询时间使用启用时间选项。
1\timing
如同在 bash 提示,在 psql 提示,你可以按上箭头键来访问先前执行的命令通过历史. 为了设置历史的大小,你可以编辑 HISTSIZE。
1\set HISTSIZE 2000
在查询大表时,输出有时会渲染难以读取的文本,您可以切换到扩展表格式。
1\x auto
您还可以使用默认
、verbose
或terse
选项设置错误报告的语音性。
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体验的好开始。