psql命令历史搜索咨询:macOS iTerm下替代滚动的高效方案
psql命令行高效搜索历史命令的办法
1. 用psql内置的Readline快捷键
psql默认依赖Readline库实现命令行交互,正常情况下支持Ctrl+R反向搜索历史命令。如果你的iTerm里用不了,先排查两点:
- 确认psql编译时启用了Readline支持(官方发行包基本都默认开启)
- 检查iTerm是否将
Ctrl+R绑定为其他快捷键
要是还是无法使用,试试下面的替代方法。
2. 用psql内置命令筛选历史
用\s命令可以查看全部命令历史,结合管道直接筛选特定内容:
\s | grep "SET search_path"
这条命令会立刻找出历史中包含SET search_path的命令。
如果想把历史内容保存到文件后再搜索,先执行:
\s history.txt
之后用shell命令筛选:
grep "LOAD 'age'" history.txt
3. 直接搜索psql历史文件
psql的命令历史默认存在用户目录下的.psql_history文件,在psql里用\!调用shell命令直接搜索:
\! grep "AGE" ~/.psql_history
不用退出psql就能搜到包含指定关键词的历史命令。
4. 修改Readline配置修复快捷键
在用户目录下创建或编辑.inputrc文件,添加以下内容:
"\C-r": reverse-search-history "\C-s": forward-search-history
保存后重启psql,Ctrl+R(反向搜索)和Ctrl+S(正向搜索)就能正常使用。如果Ctrl+S被终端的暂停功能占用,先执行stty stop undef解除绑定。
内容的提问来源于stack exchange,提问作者Ken W.
相关产品推荐
相关产品推荐

