Jak wyjść z narzędzia wiersza poleceń PostgreSQL: psql


1820

Jakiego polecenia lub skrótu mogę użyć, aby wyjść z narzędzia wiersza poleceń PostgreSQL psql?


4
@ a_horse_with_no_name: Nie jestem zszokowany pytaniem, ale liczbą głosów pozytywnych :) Porównaj np. Jak wyjść z edytora Vi jednym naciśnięciem klawisza?
user272735,

174
Czasami potrzebujemy szybkiej i bezpośredniej odpowiedzi niż poszukiwanie jej w instrukcji, aby skupić się na prawdziwym problemie. W takich przypadkach te krótkie pytania są naprawdę pomocne.
App Work

175
Prawdziwe pytanie nie brzmi „czy ludzie potrafią czytać instrukcję” , ale „czy oprogramowanie korporacyjne powinno reagować na standardowe sekwencje wyjściowe”, takie jak, nie wiem, „wyjście”? Konieczność przeczytania instrukcji, aby wyjść, wydaje się bardzo sprzeczna z intuicją.
Kheldar

23
@Kheldar Rzeczywiście, to po prostu zły projekt interfejsu użytkownika (w połączeniu z arogancją). Ludzie nie są pewni dziwnych rzeczy.
Iain Collins,

49
co ważniejsze, ten post jest teraz pierwszym hitem, gdy google „exit psql”
Angel S. Moreno

Odpowiedzi:


2539

Wpisz, \qa następnie naciśnij, ENTERaby wyjść psql.

AKTUALIZACJA: 19-OCT-2018

Począwszy od PostgreSQL 11 , słowa kluczowe „ quit” i „ exit” w interfejsie wiersza poleceń PostgreSQL zostały włączone, aby ułatwić opuszczenie narzędzia wiersza polecenia.


28
To nie zadziała, jeśli jesteś w trybie backendowym dla jednego użytkownika ( --single). Zamiast tego użyj odpowiedzi Kaarela ( Ctrl-D). Oprócz tego, że zawsze działa w pgsql, będzie działał w większości innych powłok unixowych (python, mysql itp.). Jeśli zawsze będziesz robić rzeczy w „standardowy” sposób, twój mózg będzie mniej zaśmiecony drobiazgami.
płyty kuchenne

1
Rodzaj \? o pomoc, jeśli tylko „pomoc” nie pomaga. To błyszczący przykład tego, jak nie tworzyć interakcji człowieka z komputerem. Kto pomyślał o tym świetnym pomyśle \? po pomoc i \ q wyjść?
Jaywalker

1
Ctrl-d również pomaga
YOung


1
@aorth Tak, ogłosili to kilka miesięcy temu: stackoverflow.com/a/50513432/5070879
Łukasz Szozda

747

Moja zwykła sekwencja klawiszy to:

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

Myślę, że weterani linii poleceń psql zwykle skracają to do:

\q

3
Sam spróbowałem ctrl-z. Zrobiło to mniej więcej robotę, ale nie byłem do końca zadowolony. :(
mjwach,

12
cntrl + D, aby wyjść z dowolnego miejsca
vidur punj

1
@mjwach ctrl + z po prostu zawiesza proces w tle, prawie na pewno nie to, czego chcesz.
LucidObscurity

postgres = # / q postgres- # \ q
Dzmitry Prakapenka

2
Śmiałem się z twojej odpowiedzi. Brainsmashed dzięki różnym narzędziom, z których korzystamy.
Sergio A.,

299

Ctrl+ Dto jest to, czego zwykle używam do zamykania konsoli psql.


3
Tak. Działa to również w bash, sh, ssh, zsh, irb, pry, python, sudo su, node i innych. Jest standardowy sposób, aby zamknąć powłokę jakiegokolwiek rodzaju.
Ajedi32,

5
Nie tylko muszla. Każdy rozsądnie rozsądny program, który czyta ze standardowego wejścia i interpretuje pusty ciąg znaków, ponieważ EOF zaakceptuje ^ D.
Kevin,

To dla mnie nie działa, prawdopodobnie dlatego, że używam układu klawiatury Dvorak w OSX. Ani cmd-D, ani cmd-E (gdzie D jest w Qwerty) nie działa.
NessBird,

4
@NessBird Ctrl to nie to samo co Cmd. Wypróbuj Control-D zamiast Command-D.
Tilman Schmidt

27

Próbować:

  • Ctrl+ Z- wysyła TSTPsygnał ( TSTPskrót od „terminal stop”)
  • Ctrl+ \- wysyła QUITsygnał

Dla ciekawości:

  • Ctrl+D - wysyła EOFpostać.EOFoznacza „koniec pliku”. W tym konkretnym przypadku wychodzi z podprogramu psql, ponieważ powłoka czeka na dane wejściowe użytkownika. Nie powinno to być „właściwą drogą”, ponieważ nie działa, jeśli:
    • jakikolwiek inny znak został wprowadzony wcześniej - spróbuj wprowadzić białe znaki, a następnie naciśnij Ctrl + D, to nie spowoduje wyjścia z psql.
    • jeśli dane wejściowe użytkownika nie są wcale wymagane

4
Nie trzeba niczego „próbować”. Prawidłowe polecenie czystego wyjścia psqljest dobrze udokumentowane i brzmi\q
a_horse_w_no_name

2
Jak @hobs wyraźnie mówi o \q: „To nie zadziała, jeśli będziesz w trybie backendowym dla jednego użytkownika (--single). Zamiast tego użyj odpowiedzi Kaarela ( CtrlD)”. Korzystanie z IMHO również CtrlDnie jest dobrym rozwiązaniem, a ja wyjaśniłem, dlaczego powyżej i zaoferowałem alternatywę.
iust

1
Dziękuję Ci! Ctrl+Zbyło jedynym poleceniem, które działało dla mnie - byłem podłączony do bazy danych przez tunel, który utracił połączenie - ani \qnie Ctrl+Ddziałał, ale mogłem, Ctrl+Za następnie zabić zawieszony proces
Sergey

20

quitlub exitlub\q

Na podstawie PostgreSQL 11 Beta 1 wydany! :

Ulepszenia interfejsu użytkownika

Kolejną funkcją, która należała do tej kategorii, była niemożność intuicyjnego wyjścia z wiersza poleceń PostgreSQL (psql). Odnotowano wiele skarg użytkowników próbujących wyjść z komendami quit i exit , aby dowiedzieć się, że polecenie to \ q.

Słyszeliśmy twoje frustracje i dodaliśmy teraz możliwość wyjścia z wiersza poleceń za pomocą słów kluczowych quit i exit i mamy nadzieję, że wychodzenie z sesji PostgreSQL jest teraz równie przyjemne jak używanie PostgreSQL.


2
złe nawyki, złe nawyki wszędzie

1
@randomware Czy mógłbyś opracować?
Łukasz Szozda

1
tak, mam na myśli, że ukośnik odwrotny był zadowalający i zgodny z innymi wewnętrznymi poleceniami pgsql bez średników, i należy zrobić \?lub \hkontynuować naukę „wszystkiego innego”

6
„Odnotowano wiele skarg” -> „ukośnik był zadowalający”? Heh
Steve Bennett,


8

Dowiedziałem się, że mogę dołączyć \ q do pliku wsadowego .sql, więc mógłbym wcześniej zakończyć pracę psql z operacji \ i.


4

Właściwie \q, exita CTRL + Ddid'nt pracował dla mnie, aby wyjść z psql programu.

Ctrl + Shift + D

Pracował dla mnie. Mam nadzieję, że to pomoże komuś :)

Moja wersja ubuntu to 19.04


0

Mówiąc konkretnie, jak wyjść z następującego stanu na Ubuntu 18.04.

Ustawiam oryginalny status w następujący sposób.

postgres@user:~$

Jeśli wprowadzono psql, zmienia się on w nowy status w następujący sposób.

postgres@user:~$ psql

postgres=# 

Jeśli podano \ q, zobacz operację.

postgres@user:~$ \q

Zmienia się on do pierwotnego stanu w następujący sposób.

postgres@user:~$

Szybkim sposobem jest zabicie terminalu. Ale chcę poznać inną metodę wyjścia bez zabijania terminala.

Dzięki,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.