Як вийти з утиліти командного рядка PostgreSQL: psql


1820

Яку команду чи короткий ключ можна використовувати для виходу з утиліти командного рядка PostgreSQL psql?


4
@a_horse_with_no_name: Мене не шокує питання, але кількість оновлень :) Порівняйте, наприклад, з тим, як ви
користувач272735

174
Іноді нам потрібна швидка та пряма відповідь, ніж пошук у посібнику, щоб зосередитись на реальній проблемі. У таких випадках ці короткі запитання справді корисні.
Робота з додатками

175
Справжнє питання полягає не в тому, "чи люди здатні читати посібник" , а "чи повинно корпоративне програмне забезпечення відповідати на стандартні послідовності виходу", як, наприклад, не знаю, "вихід"? Необхідно прочитати посібник, щоб вийти, виглядає серйозно протиінтуїтивно.
Хельдар

23
@Kheldar Дійсно, це просто поганий дизайн інтерфейсу користувача (у поєднанні з зарозумілістю). Люди не впевнені у дивних речах.
Ієн Коллінз

49
що ще важливіше, цей пост зараз є першим хітом, коли я google "exit psql"
Angel S. Moreno

Відповіді:


2539

Наберіть, \qа потім натисніть, ENTERщоб вийти psql.

ОНОВЛЕННЯ: 19-ОКТ-2018

Станом на PostgreSQL 11 , ключові слова " quit" і " exit" в інтерфейсі командного рядка PostgreSQL були включені, щоб полегшити залишення інструменту командного рядка.


28
Це не спрацює, якщо ви перебуваєте в режимі однопоточного користування ( --single). Замість цього скористайтеся відповіддю Каарела ( Ctrl-D). Крім того, що завжди працює у pgsql, він буде працювати у більшості інших оболонок Unix (python, mysql тощо). Якщо ви завжди робите речі, "стандартним" способом у вашому мозку ваш мозок буде менш захаращений дрібницями.
варильні панелі

1
Введіть \? про допомогу, якщо просто "допомога" не допомагає. Це яскравий приклад того, як не створити взаємодію людини з комп'ютером. Хто думав про цю чудову ідею \? за допомогою і \ q кинути?
Jaywalker

1
Ctrl-d також допоможе
YOung


1
@aorth Так, вони оголосили це кілька місяців тому: stackoverflow.com/a/50513432/5070879
Лукаш Шозда

747

Моя звичайна послідовність ключів:

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

Я думаю, що ветерани командного рядка psql зазвичай скорочують це до просто:

\q

3
Я сам спробував ctrl-z. Робота була виконана більш-менш, але я не був цілком задоволений. :(
mjwach

12
cntrl + D для виходу з будь-якого місця
vidur punj

1
@mjwach ctrl + z просто призупиняє процес на другий план, майже точно не те, що потрібно.
LucidObscurity

postgres = # / q postgres- # \ q
Дмитро Пракапенка

2
Сміявся з вашої відповіді. Мозг за рахунок різних інструментів, які ми використовуємо.
Серхіо А.

299

Ctrl+ D- це те, що я зазвичай використовую для виходу з консолі psql.


3
Так. Це також працює в bash, sh, ssh, zsh, irb, pry, python, sudo su, node тощо. Це стандартний спосіб виходу з оболонки будь-якого роду.
Ajedi32

5
Не просто снаряд. Будь-яка розумно розумна програма, яка читає з stdin та інтерпретує порожній рядок як EOF, прийме ^ D.
Кевін

Це не працює для мене, ймовірно, тому, що я використовую розкладку клавіатури Dvorak на OSX. Ні cmd-D, ні cmd-E (де D знаходиться на Qwerty) не працює.
NessBird

4
@NessBird Ctrl не є тим самим, як Cmd. Спробуйте Control-D замість Command-D.
Тільман Шмідт

27

Спробуйте:

  • Ctrl+ Z- це передає TSTPсигнал ( TSTPкороткий термін для «кінцевої зупинки»)
  • Ctrl+ \- це передає QUITсигнал

Для цікавості:

  • Ctrl+ D- це посилає EOFперсонажа. EOFозначає "кінець файлу". У цьому конкретному випадку він виходить з підпрограми psql, оскільки оболонка чекає на введення користувачем. Це не повинен бути "шлях", оскільки він не працює, якщо:
    • будь-який інший символ вводиться раніше - спробуйте ввести кілька пробілів, а потім натисніть клавішу Ctrl+ D, вона не збирається вийти з psql.
    • якщо введення користувача взагалі не потрібно

4
Не потрібно нічого "пробувати". Правильна команда чисто вихід psqlбуде добре задокументовані і\q
a_horse_with_no_name

2
Як @hobs чітко говорить про \q: "Це не працюватиме, якщо ви перебуваєте в режимі єдиного користувальницького резервного режиму (--single). Натомість використовуйте відповідь Kaarel ( CtrlD)". Використання IMHO CtrlD- це не шлях, і я пояснив, чому вище і запропонував альтернативу.
липня

1
Дякую! Ctrl+Zбула єдиною командою, яка працювала на мене - я був підключений до бази даних через тунель, який втратив зв’язок - ні \qані Ctrl+Dпрацював, але я міг Ctrl+Zі тоді вбити призупинений процес
Сергій

20

quitабо exitабо\q

На основі PostgreSQL 11 бета 1 випущено! :

Покращення досвіду користувача

Ще одна особливість, яка потрапила до цієї категорії, - неможливість інтуїтивно вийти з командного рядка PostgreSQL (psql). Існує чимало зафіксованих скарг користувачів, які намагаються вийти з командами quit та exit , лише дізнавшись, що команда для цього була \ q.

Ми почули ваші розчарування, і тепер додали можливість вийти з командного рядка за допомогою ключових слів quit and exit і сподіваємось, що вихід із сеансу PostgreSQL зараз настільки ж приємний, як і використання PostgreSQL.


2
шкідливі звички, шкідливі звички скрізь

1
@randomware Ви могли б детальніше розробитись?
Лукаш Шозда

1
так, я маю на увазі зворотний нахил був задовільним і відповідав іншим внутрішнім напівколоновим командам pgsql, і можна було б робити \?або \hпродовжувати вивчати "все інше" imho

6
"Чи було зафіксовано численні скарги" -> "зворотний кут задовільний"? Хе.
Стів Беннетт


8

Я дізнався, що я можу включити \ q у пакетний .sql файл, тому міг змусити psql вийти раніше з операції \ i.


4

На насправді, \q, exitі CTRL + Ddid'nt працював для мене , щоб вийти з Psql програми.

Ctrl + Shift + D

Працювали для мене. Сподіваюся, це допоможе комусь :)

Моя версія ubuntu - 19.04


0

Зокрема, як вийти з наступного стану на Ubuntu 18.04.

Я ставлю початковий статус наступним чином.

postgres@user:~$

Якщо psql інпутується, він змінюється на новий статус наступним чином.

postgres@user:~$ psql

postgres=# 

Якщо \ q введено, перегляньте операцію.

postgres@user:~$ \q

Він змінюється на початковий статус наступним чином.

postgres@user:~$

Швидкий спосіб - вбити термінал. Але я хочу знати інший метод виходу, не вбиваючи термінал.

Дякую,

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.