So passen Sie die PostgreSQL-Eingabeaufforderung mit psqlrc unter Ubuntu 14.04 an

Einführung

Die psqlrc-Datei passt das Verhalten des interaktiven psql-Befehlszeilenclients an. Mit psql können Sie Abfragen interaktiv eingeben, an PostgreSQL ausgeben und die Abfrageergebnisse anzeigen. Die Datei gibt es in drei Varianten:

{leer} 1) Die systemweite psqlrc-Datei befindet sich im Systemkonfigurationsverzeichnis von PostgreSQL.

Der Speicherort dieses Verzeichnisses hängt von Ihrer PostgreSQL-Installation ab, kann jedoch mit dem Tool pg_config ermittelt werden.

pg_config --sysconfdir

{leer} 2) Die Benutzer-psqlrc-Datei wurde gefunden oder kann im Ausgangsverzeichnis des Benutzers erstellt werden.

touch ~/.psqlrc

{leer} 3) Bei mehreren PostgreSQL-Installationen können versionsspezifische psqlrc-Dateien erstellt werden. Fügen Sie einfach die Versionsnummer am Ende hinzu.

touch ~/.psqlrc-9.1
touch ~/.psqlrc-9.3

Installation

Bevor Sie psql verwenden können, muss PostgreSQL installiert sein.

sudo apt-get install -y postgresql postgresql-contrib

Dadurch wird PostgreSQL 9.3 installiert. Jetzt können Sie zum Benutzer postgres wechseln und psql starten.

su - postgres

psql

Dies sollte die Standard-psql-Eingabeaufforderung anzeigen.

psql (9.3.4)
Type "help" for help.

postgres=#

Eingabeaufforderung bearbeiten

Durch Bearbeiten der Benutzer-psqlrc-Datei können Sie die Haupt-psql-Eingabeaufforderung (PROMPT1) anpassen und nützliche Verknüpfungen erstellen. Bearbeiten Sie die .psqlrc-Datei mit dem Editor Ihrer Wahl, um die folgenden Zeilen hinzuzufügen (hier verwenden wir vim).

vi ~/.psqlrc

\set PROMPT1 '%M:%> %n@%/%R%#%x '
  • % M bezieht sich auf den Hostnamen des Datenbankservers - ist "[local]", wenn die Verbindung über einen Unix-Domain-Socket erfolgt

  • %> bezieht sich auf den Überwachungsport

  • % n bezieht sich auf den Sitzungsbenutzernamen

  • % / verweist auf die aktuelle Datenbank

  • % R bezieht sich darauf, ob Sie sich im einzeiligen Modus (^) befinden oder nicht (!), Ist aber normalerweise =

  • % # bezieht sich darauf, ob Sie ein Superuser (#) oder ein normaler User (>) sind.

  • % x bezieht sich auf den Transaktionsstatus - normalerweise leer, außer in einem Transaktionsblock (*)

Wenn Sie auf einem Computer mit dem Hostnamen "trident" als Benutzer "john" angemeldet sind und als normaler Benutzer auf die Datenbank "orange" zugreifen, wird dies angezeigt

[trident]:5432 john@orange=>

Sie können auch die sekundäre psql-Eingabeaufforderung (PROMPT2) bearbeiten.

postgres-#

Die sekundäre Eingabeaufforderung wird angezeigt, wenn Sie eine noch nicht abgeschlossene Abfrage haben.

postgres=# select * from
postgres-# peel limit 1;

Das Bearbeiten der sekundären psql-Eingabeaufforderung ähnelt größtenteils dem Bearbeiten der primären psql-Eingabeaufforderung.

\set PROMPT2 '%M %n@%/%R %# '
  • % R wird durch "-" anstelle von "=" dargestellt.

Wenn Sie sich mitten in einer Transaktion auf dem Computer mit dem Hostnamen "trident" als Benutzer "john" befinden und als normaler Benutzer auf die Datenbank "orange" zugreifen, wird dies angezeigt

[trident]:5432 john@orange=> select * from
[trident] john@orange-> peel limit 1;

Natürlich können Sie diese Optionen hinzufügen, entfernen oder neu anordnen, um Informationen einzuschließen, die für Sie nützlich sind.

Farben

Die Aufforderungsfarbe kann mit psqlrc bearbeitet werden. Fügen Sie Folgendes hinzu, um die Portnummer rot zu machen.

\set PROMPT1 '%M:%[%033[1;31m%]%>%[%033[0m%] %n@%/%R%#%x '

Es gibt verschiedene Farben, die Sie verwenden können - ändern Sie den Wert 31 in:

  • 32 für grün

  • 33 für gelb

  • 34 für blau

  • 35 für Magenta

  • 36 für Cyan

  • 37 für weiß

Anzeigeoptionen

Bei der Abfrage einer PostgreSQL-Datenbank geben Nullwerte ein Leerzeichen zurück. Wenn Sie stattdessen den Wert NULL zurückgeben möchten, können Sie die Option null bearbeiten.

\pset null '[null]'

Um SQL-Schlüsselwörter wie "SELECT" und "FROM" entweder in Groß- oder Kleinbuchstaben zu vervollständigen, können Sie die Option COMPKEYWORDCASE mit den Optionen "upper" oder "lower" festlegen.

\set COMP_KEYWORD_CASE upper

Wenn alle Abfragen Abfragezeiten anzeigen sollen, aktivieren Sie die Timing-Option.

\timing

Wie in der Bash-Eingabeaufforderung können Sie in der Psql-Eingabeaufforderung die Aufwärtspfeiltaste drücken, um über den Verlauf auf zuvor ausgeführte Befehle zuzugreifen. Um die Größe des Verlaufs festzulegen, können Sie HISTSIZE bearbeiten.

\set HISTSIZE 2000

Bei der Abfrage großer Tabellen werden manchmal schwer lesbare Texte ausgegeben. Sie können in das erweiterte Tabellenformat wechseln.

\x auto

Sie können auch die Ausführlichkeit von Fehlerberichten mit den Optionen "Standard", "Ausführlich" oder "Kurz" festlegen.

\set VERBOSITY verbose

Sie können Verknüpfungen auch mit dem Befehl set einrichten. Wenn Sie eine Verknüpfung zum Anzeigen der PostgreSQL-Version und der verfügbaren Erweiterungen einrichten möchten, fügen Sie Folgendes hinzu:

\set version 'SELECT version();'
\set extensions 'select * from pg_available_extensions;'

Wenn Sie beim Starten der psql-Eingabeaufforderung Meldungen anzeigen möchten, können Sie den Befehl echo verwenden.

\echo 'Welcome to PostgreSQL\n'

Wenn Sie psqlrc bearbeiten, werden beim Starten von psql Ausgaben erstellt. Wenn Sie diese ausblenden möchten, setzen Sie das QUIET-Flag oben und unten in der psql-Datei.

Einpacken

Die komplette Datei ist unten.

\set QUIET 1

\set PROMPT1 '%M:%[%033[1;31m%]%>%[%033[0m%] %n@%/%R%#%x '

\set PROMPT2 '%M %n@%/%R %# '

\pset null '[null]'

\set COMP_KEYWORD_CASE upper

\timing

\set HISTSIZE 2000

\x auto

\set VERBOSITY verbose

\set QUIET 0

\echo 'Welcome to PostgreSQL! \n'
\echo 'Type :version to see the PostgreSQL version. \n'
\echo 'Type :extensions to see the available extensions. \n'
\echo 'Type \\q to exit. \n'
\set version 'SELECT version();'
\set extensions 'select * from pg_available_extensions;'

Wenn Sie nun psql starten, sehen Sie eine andere Eingabeaufforderung.

$ psql

Welcome to PostgreSQL!

Type :version to see the version.

Type :extensions to see the available extensions.

Type \q to exit.

psql (9.3.4)
Type "help" for help.

[local]:5432 postgres@postgres=#

Es gibt viele weitere Anpassungen, die Sie vornehmen können, aber diese sollten ein guter Anfang sein, um Ihre PSQL-Erfahrung zu verbessern.