Ubuntu下psql的\d {tableName}输出如何保留在控制台?
解决Ubuntu下psql \d命令自动进入分页器的问题
我之前也碰到过一模一样的情况,Ubuntu上psql用\d {tableName}查看表结构时,内容一超过屏幕就跳去类似vi的分页器,退出来还看不到之前的输出,确实挺烦的。其实这是psql的分页器默认配置在不同发行版里不一样导致的,咱们可以通过这几种方法改成CentOS那种直接输出在控制台的效果:
临时生效(当前psql会话)
打开psql之后,直接输入这条命令:
\pset pager off
之后当前会话里所有的\d、\dt这类命令的输出都会直接打印在控制台,不会再触发分页器。如果偶尔需要看超长输出想用分页,也可以手动加管道,比如\d big_table | less。
永久生效(当前用户)
如果不想每次打开psql都手动设置,咱们可以修改psql的配置文件:
- 打开(或者创建)用户目录下的
.psqlrc文件:
vim ~/.psqlrc
- 在文件里添加一行:
\pset pager off
- 保存退出后,下次打开psql就会自动禁用分页器,输出直接保留在控制台里。
用环境变量全局控制
另一种方法是修改终端的环境变量,让psql用不会分页的工具来处理输出:
- 临时生效的话,在终端里先执行:
export PAGER=cat
再打开psql就不会进分页器了。
2. 永久生效的话,把上面的命令加到你的shell配置文件里,比如~/.bashrc(如果用bash)或者~/.zshrc(如果用zsh),保存后执行source ~/.bashrc生效就行。
这样设置之后,\d {tableName}的输出就会像CentOS那样直接显示在控制台,退出后内容也会保留着,不用再担心看不到之前的列列表啦~
内容的提问来源于stack exchange,提问作者S. Shao
相关产品推荐
相关产品推荐

