Como sair do utilitário de linha de comando PostgreSQL: psql

1821

Que comando ou tecla de atalho posso usar para sair do utilitário de linha de comando do PostgreSQL psql?

App Work
fonte
4
@a_horse_with_no_name: Não estou chocado com a pergunta, mas com o número de votos :) Compare, por exemplo, com Como você sai do editor Vi com o pressionamento de uma tecla?
user272735
174
Às vezes, precisamos de uma resposta rápida e direta do que procurá-la no manual para focar no problema real. Nesses casos, essas breves perguntas são realmente úteis.
App Work
175
A verdadeira questão não é "as pessoas são capazes de ler um manual" , mas "o software corporativo deve responder às seqüências de saída padrão" como, eu não sei, "saída"? Ter que ler o manual para sair parece seriamente contra-intuitivo.
21414 Kheldar
23
@ Kheldar De fato, é apenas um design de interface de usuário ruim (juntamente com arrogância). As pessoas são inseguras sobre coisas estranhas.
Iain Collins
49
mais importante, este post é agora o primeiro hit quando eu google "exit psql"
Angel S. Moreno

Respostas:

2541

Digite \qe pressione ENTERpara sair psql.

ATUALIZAÇÃO: 19-OUT-2018

Desde o PostgreSQL 11 , as palavras-chave " quit" e " exit" na interface da linha de comandos do PostgreSQL foram incluídas para ajudar a facilitar a saída da ferramenta de linha de comando.

Frankline
fonte
28
Isso não funcionará se você estiver no modo de back-end de usuário único ( --single). Em vez disso, use a resposta de Kaarel ( Ctrl-D). Além de sempre trabalhar no pgsql, ele funcionará na maioria dos outros shells do unix (python, mysql, etc). Se você sempre faz as coisas da maneira "padrão", seu cérebro ficará menos cheio de curiosidades.
Placas
1
Tipo \? para obter ajuda se apenas "ajuda" não ajudar. Este é um exemplo brilhante de como não criar interação humano-computador. Quem pensou nessa grande idéia de \? para obter ajuda e \ q sair?
214
1
Ctrl-d também ajuda #
267/07
1
@aorth Sim, eles anunciaram que há alguns meses: stackoverflow.com/a/50513432/5070879
Lukasz Szozda
747

Minha sequência de teclas usual é:

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

Eu acho que os veteranos da linha de comando psql geralmente encurtam isso para apenas:

\q
Ted
fonte
3
Eu tentei ctrl-z, eu mesmo. Realizou o trabalho, mais ou menos, mas eu não estava totalmente satisfeito. :(
mjwach
12
cntrl + D a saída a partir de qualquer onde
Vidur Punj
1
O @mjwach ctrl + z apenas suspende o processo para segundo plano, quase certamente não é o que você deseja.
LucidObscurity
postgres = # / q postgres- # \ q
Dzmitry Prakapenka
2
Riu com sua resposta. Brainsmashed devido a todas as ferramentas diferentes que usamos.
Sergio A.
299

Ctrl+ Dé o que eu costumo usar para sair do console psql.

Kaarel
fonte
3
Sim. Isso também funciona em bash, sh, ssh, zsh, irb, alavanca, python, sudo su, nó e muito mais. É a maneira padrão de sair de qualquer tipo de shell.
Ajedi32
5
Não é apenas uma concha. Qualquer programa razoavelmente sensato que leia stdin e interprete a string vazia como EOF aceitará ^ D.
Kevin
Isso não funciona para mim, provavelmente porque eu uso o layout do teclado Dvorak no OSX. Nem o cmd-D nem o cmd-E (onde D está no Qwerty) funcionam.
NessBird 7/08
4
@NessBird Ctrl não é o mesmo que Cmd. Tente Control-D em vez de Command-D.
Tilman Schmidt
27

Tentar:

  • Ctrl+ Z- envia o TSTPsinal ( TSTPé a abreviação de "terminal stop")
  • Ctrl+ \- envia o QUITsinal

Por curiosidade:

  • Ctrl+ D- envia o EOFpersonagem. EOFsignifica "fim do arquivo". Nesse caso concreto, ele sai do subprograma psql, pois o shell aguarda a entrada do usuário. Este não deve ser o caminho a seguir, pois não está funcionando se:
    • qualquer outro caractere foi inserido antes - tente inserir alguns espaços em branco e pressione Ctrl+ D, pois não sairá do psql.
    • se a entrada do usuário não for necessária
iusting
fonte
4
Não há necessidade de "tentar" nada. O comando apropriado para sair corretamente psqlestá bem documentado e é\q
a_horse_with_no_name 7/16
2
Como @hobs afirma claramente sobre \q: "Isso não funcionará se você estiver no modo de back-end para um único usuário (- único). Em vez disso, use a resposta de Kaarel ( CtrlD)". O uso do IMHO CtrlDtambém não é o caminho a percorrer, e expliquei o motivo acima e ofereci uma alternativa.
9296 Jul
1
Obrigado! Ctrl+Zfoi o único comando que funcionou para mim - eu estava conectado a um banco de dados via túnel que perdeu a conexão - nem \qnem Ctrl+Dtrabalhou, mas eu podia Ctrl+Ze, em seguida, matar o processo suspenso
Sergey
20

quitou exitou\q

Baseado no PostgreSQL 11 Beta 1 Lançado! :

Aprimoramentos da experiência do usuário

Outro recurso que se enquadra nessa categoria foi a incapacidade de sair intuitivamente da linha de comando do PostgreSQL (psql). Houve inúmeras reclamações registradas de usuários tentando sair com os comandos quit e exit , apenas para saber que o comando para fazer isso era \ q.

Ouvimos suas frustrações e agora adicionamos a capacidade de sair da linha de comando usando as palavras-chave quit e exit e esperamos que sair de uma sessão do PostgreSQL seja tão agradável quanto usar o PostgreSQL.

Lukasz Szozda
fonte
2
maus hábitos, maus hábitos em todos os lugares
1
@randomware Você poderia elaborar?
Lukasz Szozda
1
Sim, eu barra invertida média foi satisfatória e consistente com os outros comandos pgsql semicolonless internos, e um faria \?ou \hpara continuar a aprender 'tudo o resto' imho
6
"Houve inúmeras reclamações registradas" -> "a barra invertida foi satisfatória"? Heh.
Steve Bennett
10

Para a linha de comandos do Linux \ q +, digite.

Sair com Ctrl + D também funciona

Maurice Elagu
fonte
4
Isso apenas reitera as respostas de Frankline e Kaarel .
Faintsignal 27/1118
8

Aprendi que poderia incluir \ q em um arquivo .sql em lote, para que o psql fosse encerrado anteriormente em uma operação \ i.

sflitman
fonte
4

Na verdade, \q, exite CTRL + Dfez'nt funcionou para mim para sair do psql programa.

Ctrl + Shift + D

Trabalhou para mim. Espero que ajude alguém :)

Minha versão do ubuntu é 19.04

VinoCoder
fonte
0

Especificamente, como sair do seguinte status no Ubuntu 18.04.

Coloquei o status original da seguinte maneira.

postgres@user:~$

Se o psql for inserido, ele mudará para o novo status da seguinte maneira.

postgres@user:~$ psql

postgres=# 

Se \ q for inserido, consulte a operação.

postgres@user:~$ \q

Ele muda para o status original da seguinte maneira.

postgres@user:~$

A maneira mais rápida é matar o terminal. Mas eu quero conhecer outro método de sair sem matar o terminal.

Obrigado,

Mike Chen
fonte