Where is psql client history kept? (~/.psql_history non-existent!)

Bentley4 picture Bentley4 · Jul 29, 2013 · Viewed 67.1k times · Source

A password is visible in my psql prompt (by pushing up arrow to view previous inputted commands). So I would like to delete that entry from the psql client.

Other resources(1, 2) claim that psql client history is kept in is a ~/.psql_history file, however this file is simply not there. (it's not in .bash_history either)

So there must be another file where the history of psql prompt is kept, any ideas where?

I log in to my prompt like this sudo -u postgres psql my_db

Note: I am working on Ubuntu 12.04

Answer

a_horse_with_no_name picture a_horse_with_no_name · Jul 29, 2013

When you use:

sudo -u postgres psql my_db

you run psql as the (Linux) user postgres, therefor the .psql_history file is in the home directory of the postgres user (e.g. /home/postgres/.psql_history), not in the home directory of the user you originally logged in with.

In some installations, the location of the postgres user's home directory is /var/lib/postgresql. You can check this by running:

grep postgres /etc/passwd | cut -d ':' -f 6