2

I'm using Postgres 9.5 on Ubuntu 14.04. Even after using Postgres for a year, I can't get used to typing \q to exit my command line session. My fingers just want to type "exit" or "quit". How can I create an alias that does the same thing as \q in my Postgres command line session?

2

Don't use \q. Use CTRL + D. This sends End-of-file (EOF). It works on all interactive terminals (at least the ones built with readline, afaik)

readline returns the text of the line read. A blank line returns the empty string. If EOF is encountered while reading a line, and the line is empty, NULL is returned. If an EOF is read with a non-empty line, it is treated as a newline.

Most of the interactive terminals and REPL utilities you use, use some variation of readline or libedit. They all run in a loop that process lines. When you type CTRL+D your terminal inserts the EOF signal, the loops get a null pointer, and the program reads that by convention as a desire to quit.

You can't make exit nor quit an alias in psql, because psql doesn't have aliases like bash; but, both of your other utilities that use exit and quit should work with CTRL+D. It's a good muscle memory to develop.

Two minor footnotes...

  • If you're on DOS or the newer graphical version, use CTRL+Z to send EOF. That's also the MS Word hotkey for Undo.
  • I'm not actually describing what happens in UNIX either. I'm keeping it simple. CTRL+D really sends End-of-Transmission (EOT) which causes the terminal to send EOF.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.