【问题标题】:How to exit from PostgreSQL command line utility: psql如何退出 PostgreSQL 命令行实用程序:psql
【发布时间】:2012-03-16 19:48:50
【问题描述】:

我可以使用什么命令或快捷键来退出 PostgreSQL 命令行实用程序psql

【问题讨论】:

  • @a_horse_with_no_name:我对这个问题并不感到震惊,但赞成票的数量:) 比较例如到How do you quit the Vi editor with single keypress?
  • 有时我们需要快速直接的答案,而不是在手册中搜索以专注于真正的问题。在这种情况下,这些简短的问题真的很有帮助。
  • 真正的问题不是“人们是否有能力阅读手册”,而是“企业软件是否应该响应标准退出序列”,例如,我不知道,“退出”?必须阅读手册才能退出似乎非常违反直觉。
  • @Kheldar 确实,这只是糟糕的用户界面设计(加上傲慢)。人们对奇怪的事情没有安全感。
  • 更重要的是,这篇文章现在是我 google "exit psql" 时的第一击

标签: postgresql postgresql-9.1 psql


【解决方案1】:

键入\q,然后按ENTER 退出psql

更新:2018 年 10 月 19 日

PostgreSQL 11 开始,PostgreSQL 命令行界面中的关键字“quit”和“exit”已包含在内,以帮助您更轻松地离开命令行工具.

【讨论】:

  • 如果您处于单用户后端模式 (--single),这将不起作用。而是使用Kaarel's answer (Ctrl-D)。除了始终在 pgsql 中工作之外,它还可以在大多数其他 unix shell(python、mysql 等)中工作。如果你总是以“标准”的方式做事,那么你的大脑就不会被琐事所困扰。
  • 键入 \?如果只是“帮助”没有帮助,请寻求帮助。这是一个关于如何不创建人机交互的闪亮示例。谁想到了\这个伟大的想法?寻求帮助和 \q 退出?
  • Ctrl-d 也有帮助
  • @aorth 是的,他们几个月前就宣布了:stackoverflow.com/a/50513432/5070879
【解决方案2】:

我通常的按键顺序是:

quit()
quit
exit()
exit
q
q()
!q
^C
help
Alt + Tab
google.com
Quit PSQL
\q

我认为 psql 命令行的老手通常会将其缩短为:

\q

【讨论】:

  • 我自己试过ctrl-z。它或多或少地完成了工作,但我并不完全满意。 :(
  • cntrl+D 从任何地方退出
  • @mjwach ctrl+z 只是将进程暂停到后台,几乎可以肯定不是你想要的。
  • 对你的回答笑了。由于我们使用的各种不同的工具,我们大吃一惊。
  • 我想你错过了:q
【解决方案3】:

Ctrl+D是我通常用来退出psql控制台的。

【讨论】:

  • 是的。这也适用于 bash、sh、ssh、zsh、irb、pry、python、sudo su、node 等。这是退出任何类型 shell 的标准方式。
  • 不仅仅是一个外壳。任何从标准输入读取并将空字符串解释为 EOF 的合理程序都将接受 ^D。
  • 这对我不起作用,可能是因为我在 OSX 上使用了 Dvorak 键盘布局。 cmd-D 和 cmd-E(D 在 Qwerty 上)都不起作用。
  • @NessBird Ctrl 与 Cmd 不同。试试 Control-D 而不是 Command-D。
  • @Kevin 您不必将空字符串解释为 EOF .. 默认情况下发送 ctrl+D 将使您实际从 fgetc() (int=-1) 收到 EOF,它会关闭标准输入文件流:对 f*read*() 的任何后续调用都将返回错误,而 feof(stdin) 将返回 1。因此更容易识别它:)
【解决方案4】:

用途:

  • Ctrl+Z - 这会发送TSTP 信号(TSTP 是“终端停止”的缩写)
  • Ctrl+\ - 这会发送QUIT 信号

出于好奇:

  • Ctrl+D - 这会发送EOF 字符。 EOF 代表“文件结束”。在这个具体的例子中,它从 psql 子程序中退出,因为 shell 正在等待用户输入。这不应该是“要走的路”,因为在以下情况下它不起作用:
  • 之前输入了任何其他字符 - 尝试输入一些空格,然后按 Ctrl+D,它不会退出 psql。
  • 如果根本不需要用户输入

【讨论】:

  • 没有必要“尝试”任何事情。干净地退出psql 的正确命令是well documented\q
  • 正如 @hobs 明确指出的\q:“如果您处于单用户后端模式 (--single),这将不起作用。而是使用 Kaarel 的答案 ( CtrlD)”。恕我直言,使用CtrlD 也不是可行的方法,我在上面解释了原因并提供了替代方法。
  • 谢谢! Ctrl+Z 是唯一对我有用的命令 - 我通过隧道连接到数据库,但失去了连接 - \qCtrl+D 都不起作用,但我可以 Ctrl+Z 然后杀死暂停的进程
  • 您可以考虑在此答案的顶部将“尝试”一词替换为“使用”。它带来了一种“不确定”的感觉,但这是对该问题的直截了当且可行的答案。
【解决方案5】:

quitexit\q

基于PostgreSQL 11 Beta 1 Released!:

用户体验增强

另一个属于这一类的特性是无法直观地从 PostgreSQL 命令行 (psql) 退出。有许多记录在案的用户试图使用 quitexit 命令退出,但得知这样做的命令是 \q。强>

我们听到了您的不满,现在添加了使用关键字 quitexit 退出命令行的功能,并希望现在退出 PostgreSQL 会话就像像使用 PostgreSQL 一样愉快。

【讨论】:

  • 坏习惯,坏习惯无处不在
  • @randomware 你能详细说明一下吗?
  • 是的,我的意思是反斜杠是令人满意的,并且与其他内部无分号 pgsql 命令一致,并且可以使用\?\h 继续学习“其他所有内容”恕我直言
  • “有很多记录的投诉”->“反斜杠是令人满意的”?呵呵。
【解决方案6】:

我了解到我可以在批处理 .sql 文件中包含 \q,因此我可以让 psql 更早地从 \i 操作中退出。

【讨论】:

    【解决方案7】:

    对于 Linux 命令行 \q + enter.

    Ctrl + D 退出也是可行的

    【讨论】:

    【解决方案8】:

    实际上,\qexitCTRL + D 并没有让我退出 psql 程序。

    Ctrl + Shift + D
    

    为我工作。希望它会帮助某人:)

    我的ubuntu版本是19.04

    【讨论】:

      猜你喜欢
      • 2014-01-24
      • 1970-01-01
      • 2015-12-25
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多