PostgreSQL长输出内容向上滚动方法及相关问题咨询
关于PostgreSQL psql分页与PuTTY快捷键问题的解决方案
嘿,刚好碰到过类似的情况,来给你拆解下:
一、向上滚动无效?大概率是PuTTY的锅!
你说的b或Ctrl+B无效,确实很可能是PuTTY的终端配置拦截了这些快捷键。psql默认的分页器(more)本身是支持b向后翻页的,但PuTTY默认的键盘映射可能把Ctrl+B绑定成了其他功能(比如发送break信号)。
解决步骤:
- 打开PuTTY的配置窗口,找到左侧菜单的终端 > 功能键和键盘
- 在右侧的“Control keys”下拉菜单里,选择Xterm R6或者Linux模式
- 点击“Save”保存当前会话的配置,重新连接服务器后再试试
b或Ctrl+B,应该就能正常向后翻页了
不过更推荐的方式是直接换掉默认分页器,往下看👇
二、当然可以把输出管道到less(甚至更推荐!)
psql支持切换分页器,或者直接在外部管道输出,两种方式都很方便:
方式1:临时管道到less(单次生效)
在shell里直接执行查询并管道,比如:
psql -U your_user -d your_database -c "SELECT * FROM your_large_table;" | less
这样查询结果会直接在less里打开,支持所有less的快捷键:
PgUp/PgDn快速翻页b向后翻一页,f向前翻一页k/j向上/向下翻一行/关键词搜索内容q退出less
方式2:在psql内部切换默认分页器到less(永久生效可选)
进入psql后,执行这个命令:
\set pager less
之后所有超过屏幕高度的查询结果都会自动用less显示,不用每次都写管道。如果想让这个设置永久生效,把上面的命令添加到用户主目录下的.psqlrc文件里(如果没有就新建一个),这样每次启动psql都会自动加载。
额外小技巧
- 临时关闭分页器:如果不想用分页器直接输出所有内容,执行
\pset pager off即可,想恢复再执行\pset pager on - 查看psql分页器的帮助:在出现
--More--提示时按h,能看到所有可用快捷键
内容的提问来源于stack exchange,提问作者Lorem Ipsum
相关产品推荐
相关产品推荐

