So beenden Sie das PostgreSQL-Befehlszeilenprogramm: psql

1820

Mit welchem ​​Befehl oder welcher Kurztaste kann ich das PostgreSQL-Befehlszeilenprogramm beenden psql?

App Arbeit
quelle
4
@a_horse_with_no_name: Ich bin nicht schockiert von der Frage, sondern von der Anzahl der Upvotes :) Vergleiche zB mit Wie beenden Sie den Vi-Editor mit einem einzigen Tastendruck?
user272735
174
Manchmal brauchen wir eine schnelle und direkte Antwort, als sie im Handbuch zu suchen, um uns auf das eigentliche Problem zu konzentrieren. In solchen Fällen sind diese kurzen Fragen wirklich hilfreich.
App Work
175
Die eigentliche Frage lautet nicht "Sind Menschen in der Lage, ein Handbuch zu lesen ? " , Sondern "Sollte Unternehmenssoftware auf Standard-Exit-Sequenzen reagieren" wie "Exit", ich weiß nicht. Das Beenden des Handbuchs zum Beenden scheint ernsthaft kontraintuitiv zu sein.
Kheldar
23
@Kheldar In der Tat ist es nur schlechtes Design der Benutzeroberfläche (verbunden mit Arroganz). Die Leute sind unsicher in Bezug auf seltsame Dinge.
Iain Collins
49
Noch wichtiger ist, dass dieser Beitrag jetzt der erste Treffer ist, wenn ich "exit psql" google
Angel S. Moreno

Antworten:

2540

Geben Sie ein \qund drücken Sie ENTERzum Beenden psql.

UPDATE: 19. Oktober 2018

Ab PostgreSQL 11 wurden die Schlüsselwörter " quit" und " exit" in die PostgreSQL-Befehlszeilenschnittstelle aufgenommen, um das Verlassen des Befehlszeilentools zu erleichtern.

Frankline
quelle
28
Dies funktioniert nicht, wenn Sie sich im Einzelbenutzer-Backend-Modus befinden ( --single). Verwenden Sie stattdessen Kaarels Antwort ( Ctrl-D). Zusätzlich zur Arbeit in pgsql funktioniert es in den meisten anderen Unix-Shells (Python, MySQL usw.). Wenn Sie Dinge immer auf die "normale" Art und Weise in 'nix tun, wird Ihr Gehirn weniger mit Trivia überladen sein.
Kochfelder
1
Art \? um Hilfe, wenn nur "Hilfe" nicht hilft. Dies ist ein hervorragendes Beispiel dafür, wie keine Mensch-Computer-Interaktion erstellt werden kann. Wer hat an diese großartige Idee von \ gedacht? um Hilfe und \ q zu beenden?
Jaywalker
1
Strg-d auch helfen
YOung
1
@aorth Ja, sie haben es vor ein paar Monaten angekündigt: stackoverflow.com/a/50513432/5070879
Lukasz Szozda
747

Meine übliche Tastenfolge ist:

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

Ich denke, Veteranen der psql-Kommandozeile verkürzen das normalerweise auf:

\q
Ted
quelle
3
Ich habe es selbst mit Strg-Z versucht. Es hat die Arbeit mehr oder weniger erledigt, aber ich war nicht ganz zufrieden. :(
mjwach
12
cntrl + D, um von jedem Ort zu verlassen
vidur punj
1
@mjwach Strg + Z unterbricht den Prozess nur im Hintergrund, mit ziemlicher Sicherheit nicht das, was Sie wollen.
LucidObscurity
postgres = # / q postgres- # \ q
Dzmitry Prakapenka
2
Hatte ein Lachen mit deiner Antwort. Brainsmashed aufgrund aller verschiedenen Werkzeuge, die wir verwenden.
Sergio A.
299

Ctrl+ Dist das, was ich normalerweise benutze, um die psql-Konsole zu beenden.

Kaarel
quelle
3
Ja. Dies funktioniert auch in bash, sh, ssh, zsh, irb, pry, python, sudo su, node und mehr. Dies ist die Standardmethode zum Verlassen einer Shell.
Ajedi32
5
Nicht nur eine Muschel. Jedes vernünftige Programm, das aus stdin liest und die leere Zeichenfolge als EOF interpretiert, akzeptiert ^ D.
Kevin
Dies funktioniert bei mir nicht, wahrscheinlich weil ich das Dvorak-Tastaturlayout unter OSX verwende. Weder cmd-D noch cmd-E (wobei D auf Qwerty steht) funktionieren.
NessBird
4
@NessBird Ctrl ist nicht dasselbe wie Cmd. Versuchen Sie Control-D anstelle von Command-D.
Tilman Schmidt
27

Versuchen:

  • Ctrl+ Z- dies sendet das TSTPSignal ( TSTPsteht für "Terminal Stop")
  • Ctrl+ \- dies sendet das QUITSignal

Aus Neugier:

  • Ctrl+ D- dies sendet den EOFCharakter. EOFsteht für "Dateiende". In diesem konkreten Fall verlässt es das psql-Unterprogramm, da die Shell auf Benutzereingaben wartet. Dies sollte nicht der richtige Weg sein, da es nicht funktioniert, wenn:
    • Jedes andere Zeichen wurde zuvor eingegeben - versuchen Sie, einige Leerzeichen einzugeben, und drücken Sie dann Ctrl+ D, um psql nicht zu beenden.
    • wenn die Benutzereingabe überhaupt nicht erforderlich ist
iusting
quelle
4
Es besteht keine Notwendigkeit, etwas zu "versuchen". Der richtige Befehl zum sauberen Beenden psqlist gut dokumentiert und lautet\q
a_horse_with_no_name
2
Wie @hobs klar sagt \q: "Dies funktioniert nicht, wenn Sie sich im Einzelbenutzer-Backend-Modus (--single) befinden. Verwenden Sie stattdessen Kaarels Antwort ( CtrlD)". IMHO verwenden CtrlDist auch nicht der richtige Weg, und ich erklärte oben, warum und bot eine Alternative.
iusting
1
Vielen Dank! Ctrl+Zwar der einzige Befehl, der für mich funktionierte - ich war über einen Tunnel mit einer Datenbank verbunden, die die Verbindung verlor - weder funktionierte \qnoch Ctrl+Dfunktionierte, aber ich konnte Ctrl+Zund dann den angehaltenen Prozess
Sergey
20

quitoder exitoder\q

Basierend auf PostgreSQL 11 Beta 1 veröffentlicht! ::

Verbesserungen der Benutzererfahrung

Ein weiteres Merkmal, das in diese Kategorie fiel, war die Unfähigkeit, die PostgreSQL-Befehlszeile (psql) intuitiv zu verlassen. Es wurden zahlreiche Beschwerden von Benutzern aufgezeichnet, die versuchten, mit den Befehlen quit und exit zu beenden , nur um zu erfahren, dass der Befehl dazu \ q war.

Wir haben Ihre Frustrationen gehört und jetzt die Möglichkeit hinzugefügt, die Befehlszeile mit den Schlüsselwörtern Beenden und Beenden zu beenden, und hoffen, dass das Beenden einer PostgreSQL-Sitzung jetzt genauso angenehm ist wie das Verwenden von PostgreSQL.

Lukasz Szozda
quelle
2
schlechte Gewohnheiten, schlechte Gewohnheiten überall
1
@randomware Könnten Sie näher darauf eingehen?
Lukasz Szozda
1
Ja, ich meine, Backslash war zufriedenstellend und konsistent mit den anderen internen semikolonlosen pgsql-Befehlen, und man würde tun \?oder \hweiter lernen "alles andere" imho
6
"Es wurden zahlreiche Beschwerden registriert" -> "Backslash war zufriedenstellend"? Heh.
Steve Bennett
10

Geben Sie für die Linux-Befehlszeile \ q + ein.

Das Beenden mit Strg + D funktioniert ebenfalls

Maurice Elagu
quelle
4
Dies wiederholt nur die Antworten von Frankline und Kaarel .
Faintsignal
8

Ich habe gelernt, dass ich \ q in eine Batch-SQL-Datei aufnehmen kann, sodass psql früher von einer \ i-Operation beendet werden kann.

Sflitman
quelle
4

Eigentlich \q, exitund CTRL + Ddid'nt für mich gearbeitet , um aus dem psql Programm.

Ctrl + Shift + D

Hat für mich gearbeitet. Hoffe es wird jemandem helfen :)

Meine Ubuntu-Version ist 19.04

VinoCoder
quelle
0

Insbesondere, wie man den folgenden Status unter Ubuntu 18.04 verlässt.

Ich habe den ursprünglichen Status wie folgt gesetzt.

postgres@user:~$

Wenn psql eingegeben wird, wechselt es wie folgt in den neuen Status.

postgres@user:~$ psql

postgres=# 

Wenn \ q eingegeben wird, lesen Sie bitte die Operation.

postgres@user:~$ \q

Es ändert sich wie folgt in den ursprünglichen Status.

postgres@user:~$

Der schnelle Weg ist, das Terminal zu töten. Aber ich möchte eine andere Beendigungsmethode kennen, ohne das Terminal zu töten.

Vielen Dank,

Mike Chen
quelle