Cách thoát khỏi tiện ích dòng lệnh PostgreSQL: psql


1820

Tôi có thể sử dụng lệnh hoặc phím ngắn nào để thoát khỏi tiện ích dòng lệnh PostgreSQL psql?


4
@a_horse_with_no_name: Tôi không bị sốc bởi câu hỏi, nhưng số lượng upvote :) So sánh ví dụ với Làm thế nào để bạn thoát khỏi trình soạn thảo Vi với một lần nhấn phím?
dùng272735

174
Đôi khi chúng ta cần câu trả lời nhanh và thẳng hơn là tìm kiếm nó trong hướng dẫn để tập trung vào vấn đề thực sự. Trong những trường hợp như vậy, những câu hỏi ngắn này thực sự hữu ích.
Ứng dụng làm việc

175
Câu hỏi thực sự không phải là "những người có khả năng đọc hướng dẫn" , mà là "phần mềm doanh nghiệp có nên đáp ứng các chuỗi thoát tiêu chuẩn" như, tôi không biết, "thoát"? Phải đọc hướng dẫn để bỏ có vẻ nghiêm trọng phản trực giác.
Kheldar

23
@Kainedar Thật vậy, đó chỉ là thiết kế giao diện người dùng tồi (kết hợp với sự kiêu ngạo). Mọi người không an tâm về những điều kỳ lạ.
Iain Collins

49
quan trọng hơn, bài đăng này hiện là lượt truy cập đầu tiên khi tôi google "thoát psql"
Angel S. Moreno

Câu trả lời:


2540

Nhập \qvà sau đó nhấn ENTERđể thoát psql.

CẬP NHẬT: 19 tháng 10 năm 2018

Kể từ PostgreSQL 11 , các từ khóa " quit" và " exit" trong giao diện dòng lệnh PostgreSQL đã được đưa vào để giúp cho việc rời khỏi công cụ dòng lệnh dễ dàng hơn.


28
Điều này sẽ không hoạt động nếu bạn đang ở chế độ phụ trợ người dùng ( --single). Thay vào đó hãy sử dụng câu trả lời của Kaarel ( Ctrl-D). Ngoài việc luôn hoạt động trong pssql, nó sẽ hoạt động trong hầu hết các shell unix khác của bạn (python, mysql, v.v.). Nếu bạn luôn làm mọi thứ theo cách "chuẩn" trong 'nix, bộ não của bạn sẽ bớt lộn xộn hơn với những chuyện vặt vãnh.
hobs

1
Kiểu \? để được giúp đỡ nếu chỉ "giúp đỡ" không giúp đỡ. Đây là một ví dụ sáng chói về cách không tạo ra sự tương tác máy tính của con người. Ai nghĩ ra ý tưởng tuyệt vời này của \? để được giúp đỡ và \ q để bỏ thuốc lá?
Jaywalker

1
Ctrl-d cũng giúp
YOung


1
@aorth Có, họ đã thông báo nó vài tháng trước: stackoverflow.com/a/50513432/5070879
Lukasz Szozda

747

Chuỗi khóa thông thường của tôi là:

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

Tôi nghĩ rằng các cựu chiến binh của dòng lệnh psql thường rút ngắn điều đó thành:

\q

3
Tôi đã thử ctrl-z, bản thân mình. Nó đã hoàn thành công việc, ít nhiều, nhưng tôi không hoàn toàn hài lòng. :(
mjwach

12
cntrl + D để thoát khỏi bất kỳ nơi nào
vidur trừngj

1
@mjwach ctrl + z chỉ tạm dừng quá trình vào nền, gần như chắc chắn không phải là điều bạn muốn.
LucidObscurance

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

2
Có một tiếng cười với câu trả lời của bạn. Brainsmashing do tất cả các công cụ khác nhau, chúng tôi sử dụng.
Sergio A.

299

Ctrl+ Dlà những gì tôi thường sử dụng để thoát khỏi bảng điều khiển psql.


3
Vâng. Điều này cũng hoạt động trong bash, sh, ssh, zsh, irb, pry, python, sudo su, nút, v.v. Đó là những cách tiêu chuẩn để thoát khỏi một vỏ của loại nào.
Ajedi32

5
Không chỉ là một cái vỏ. Bất kỳ chương trình hợp lý nào đọc từ stdin và diễn giải chuỗi rỗng là EOF sẽ chấp nhận ^ D.
Kevin

Điều này không phù hợp với tôi, có lẽ vì tôi sử dụng bố trí bàn phím Dvorak trên OSX. Cả cmd-D và cmd-E (trong đó D trên Qwerty) đều không hoạt động.
NessBird

4
@NessBird Ctrl không giống với Cmd. Hãy thử Control-D thay vì Command-D.
Tilman Schmidt

27

Thử:

  • Ctrl+ Z- điều này sẽ gửi TSTPtín hiệu ( TSTPviết tắt của thiết bị đầu cuối của trạm dừng)
  • Ctrl+ \- điều này sẽ gửi QUITtín hiệu

Vì tò mò:

  • Ctrl+ D- cái này gửi EOFnhân vật. EOFlà viết tắt của "cuối tập tin". Trong trường hợp cụ thể này, nó thoát ra khỏi chương trình con psql, vì shell đang chờ người dùng nhập liệu. Đây không phải là 'con đường để đi' vì nó không hoạt động nếu:
    • bất kỳ ký tự nào khác được nhập trước đó - hãy thử nhập một số khoảng trắng và sau đó nhấn Ctrl+ D, nó sẽ không thoát khỏi psql.
    • nếu đầu vào của người dùng không cần thiết

4
Không cần phải "thử" bất cứ điều gì. Lệnh thích hợp để thoát sạch psqltài liệu tốt và là\q
a_horse_with_no_name

2
Như @hobs nói rõ về \q: "Điều này sẽ không hoạt động nếu bạn đang ở chế độ phụ trợ người dùng (--single). Thay vào đó hãy sử dụng câu trả lời của Kaarel ( CtrlD)". IMHO sử dụng CtrlDkhông phải là cách để đi, và tôi đã giải thích lý do tại sao ở trên và đưa ra một giải pháp thay thế.
vào

1
Cảm ơn bạn! Ctrl+Zlà lệnh duy nhất có hiệu quả với tôi - Tôi đã được kết nối với cơ sở dữ liệu qua đường hầm bị mất kết nối - không phải \qcũng không Ctrl+Dhoạt động, nhưng tôi có thể Ctrl+Zvà sau đó giết quá trình bị đình chỉ
Serge

20

quithoặc exithoặc\q

Dựa trên PostgreSQL 11 Beta 1 đã phát hành! :

Cải tiến trải nghiệm người dùng

Một tính năng khác rơi vào danh mục này là không có khả năng thoát khỏi trực giác từ dòng lệnh PostgreQuery (psql). Hiện đã có rất nhiều khiếu nại ghi nhận của người sử dụng cố gắng để bỏ thuốc lá với sự từ bỏthoát lệnh, chỉ để biết rằng lệnh để làm như vậy là \ q.

Chúng tôi đã nghe thấy sự thất vọng của bạn và giờ đã thêm khả năng thoát khỏi dòng lệnh bằng cách sử dụng từ khóa thoátthoát và hy vọng rằng việc thoát phiên PostgreQuery bây giờ cũng thú vị như sử dụng PostgreQuery.


2
thói quen xấu, thói quen xấu ở khắp mọi nơi

1
@randomware Bạn có thể giải thích?
Lukasz Szozda

1
vâng, ý tôi là dấu gạch chéo ngược là thỏa đáng và phù hợp với các lệnh pssql không có dấu chấm phẩy nội bộ khác, và người ta sẽ làm \?hoặc \htiếp tục học 'mọi thứ khác'

6
"Đã có rất nhiều khiếu nại được ghi nhận" -> "dấu gạch chéo ngược đã thỏa đáng"? Heh.
Steve Bennett


8

Tôi đã học được rằng tôi có thể bao gồm \ q trong một tệp .sql, vì vậy tôi có thể thoát psql trước đó từ một hoạt động \ i.


4

Trên thực tế, \q, exitCTRL + Ddid'nt làm việc cho tôi để thoát khỏi psql chương trình.

Ctrl + Shift + D

Đã làm cho tôi. Hy vọng nó sẽ giúp được ai đó :)

Phiên bản Ubuntu của tôi là 19.04


0

Nói một cách cụ thể, làm thế nào để thoát khỏi trạng thái sau trên Ubuntu 18.04.

Tôi đặt trạng thái ban đầu như sau.

postgres@user:~$

Nếu psql được nhập, nó sẽ thay đổi trạng thái mới như sau.

postgres@user:~$ psql

postgres=# 

Nếu \ q được nhập, vui lòng xem thao tác.

postgres@user:~$ \q

Nó thay đổi trạng thái ban đầu như sau.

postgres@user:~$

Cách nhanh chóng là giết thiết bị đầu cuối. Nhưng tôi muốn biết phương pháp bỏ thuốc khác mà không giết thiết bị đầu cuối.

Cảm ơn,

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.