Categories
postgresql postgresql-9.1 psql

How to exit from PostgreSQL command line utility: psql

1930

What command or short key can I use to exit the PostgreSQL command line utility psql?

12

  • 5

    @a_horse_with_no_name: I’m not shocked by the question, but the number of upvotes 🙂 Compare e.g. to How do you quit the Vi editor with single keypress?

    Jul 25, 2012 at 16:04


  • 178

    Sometimes we need quick and straight forward answer than searching it in the manual to focus on the real problem.In such cases these short questions are really helpful.

    – App Work

    Nov 16, 2012 at 11:35

  • 188

    The real question is not “are people capable of reading a manual”, but “should enterprise software respond to standard exit sequences” like, I don’t know, “exit”? Having to read the manual to quit seems seriously counter-intuitive.

    – Kheldar

    Feb 20, 2014 at 14:39


  • 23

    @Kheldar Indeed, it’s just bad user interface design (coupled with arrogance). People are insecure about weird things.

    Mar 10, 2014 at 20:46

  • 49

    more importantly, this post is now the first hit when i google “exit psql”

    Sep 2, 2014 at 4:42

2651

Type \q and then press ENTER to quit psql.

UPDATE: 19-OCT-2018

As of PostgreSQL 11, the keywords “quit” and “exit” in the PostgreSQL command-line interface have been included to help make it easier to leave the command-line tool.

7

  • 31

    This won’t work if you are in single user backend mode (--single). Instead use Kaarel’s answer (Ctrl-D). In addition to always working in pgsql it’ll work in most your other unix shells (python, mysql, etc). If you always do things the “standard” way in ‘nix your brain will be less cluttered with trivia.

    – hobs

    Nov 7, 2013 at 22:10


  • 2

    Type \? for help if just “help” doesn’t help. This is a gleaming example of how not to create human computer interaction. Who thought of this great idea of \? for help and \q to quit?

    – Jaywalker

    Feb 1, 2018 at 11:37

  • 1

    Ctrl-d also help

    – YOung

    Jul 26, 2018 at 2:55


  • 1

  • 1

    @aorth Yes, they announced it a few months ago: stackoverflow.com/a/50513432/5070879

    Oct 20, 2018 at 10:11

796

My usual key sequence is:

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

I think veterans of the psql command line usually shorten that to just:

\q

10

  • 4

    I tried ctrl-z, myself. It got the job done, more or less, but I wasn’t entirely satisfied. 🙁

    – mjwach

    Jul 26, 2015 at 19:03


  • 17

    cntrl+D to exit from any where

    Jan 22, 2018 at 14:41

  • 3

    @mjwach ctrl+z just suspends the process to the background, almost certainly not what you want.

    Jul 6, 2018 at 5:31

  • 4

    Had a laugh with your answer. Brainsmashed due to all different tools we use.

    – Sergio A.

    Aug 21, 2019 at 12:24

  • 5

    I think you missed :q

    – Alan

    Apr 21, 2021 at 5:11

312

Ctrl+D is what I usually use to exit psql console.

5

  • 6

    Yep. This also works in bash, sh, ssh, zsh, irb, pry, python, sudo su, node, and more. It is the standard way to exit a shell of any kind.

    – Ajedi32

    Jul 10, 2015 at 19:46

  • 9

    Not just a shell. Any reasonably sane program which reads from stdin and interprets the empty string as EOF will accept ^D.

    – Kevin

    Aug 20, 2015 at 20:37

  • This does not work for me, probably because I use the Dvorak keyboard layout on OSX. Neither cmd-D nor cmd-E (where D is on Qwerty) works.

    – NessBird

    Aug 7, 2017 at 15:43

  • 4

    @NessBird Ctrl is not the same as Cmd. Try Control-D instead of Command-D.

    Oct 31, 2017 at 14:06

  • @Kevin you don’t have to interpret the empty string as EOF.. by default sending ctrl+D will make you actually receive EOF from fgetc() (int=-1), and it will close the stdin file stream: any subsequent call to f*read*() will return error and feof(stdin) will return 1. So it’s even easier to recognize it 🙂

    – Jack

    May 6, 2021 at 12:12