Làm cách nào tôi có thể giữ quyền kiểm soát + d khỏi ngắt kết nối phiên của mình?


26

Tôi thường xuyên ssh đến một hộp 5 centos. Bằng cách nào đó, các phím của chúng được ánh xạ để nó control+dsẽ đưa tôi ra khỏi vỏ hiện tại. Nếu tôi không sử dụng cho mục đích sử dụng khác, nó sẽ đưa tôi trở lại người dùng trước đó. Nếu tôi không sudo'ed nó chỉ ngắt kết nối với tôi. Làm thế nào tôi có thể giữ điều này xảy ra? Tôi thường xuyên sử dụng control + d để hủy bỏ trình thông dịch python và đôi khi tôi vô tình nhấn nó nhiều lần.


trong csh, bạn làmset ignoreeof
Trevor Boyd Smith

Câu trả lời:


32

Bạn đang tìm kiếm IGNOREEOFbiến môi trường nếu bạn sử dụng bash:

IGNOREEOF

Điều khiển hành động của trình bao tương tác khi nhận ký tự EOF làm đầu vào duy nhất. Nếu được đặt, giá trị là số ký tự EOF liên tiếp phải được nhập làm ký tự đầu tiên trên dòng đầu vào trước khi thoát bash. Nếu biến tồn tại nhưng không có giá trị số hoặc không có giá trị, giá trị mặc định là 10. Nếu không tồn tại, EOF biểu thị kết thúc đầu vào của vỏ.

Vì vậy, export IGNOREEOF=42và bạn sẽ phải bấm Ctrl+Dbốn mươi hai lần trước khi nó thực sự thoát khỏi vỏ của bạn.

POSIX setcũng có một -o ignoreeofthiết lập. Vì vậy, hãy tham khảo tài liệu của shell của bạn để xem shell của bạn có cái này không (và nên) và kiểm tra ngữ nghĩa chính xác của nó.


Thật tuyệt, đưa ra thông báo "Sử dụng lối thoát để thoát khỏi vỏ", ít nhất là trên Ubuntu. Trở thành người dùng, có lẽ bạn không muốn vô tình rời khỏi nó, đặc biệt nếu người dùng gốc ở cấp độ gốc.
Phòng thí nghiệm Fiasco

1
Cá nhân tôi thấy điều đó thực sự khó chịu, vì vậy tôi không đặt nó ở bất cứ đâu. Phát hiện ra những điều này trong khi cố gắng vô hiệu hóa hành vi đó :)
Mat

2
Tôi không thể cưỡng lại việc trở thành một nhà giáo. IGNOREEOFlà số lần EOF bị bỏ qua trước khi chấp nhận nó. Vì vậy, trong ví dụ của bạn ở trên, nếu bạn export IGNOREEOF=42, bạn sẽ cần nhấn CONTROL-D 43 lần để thoát - không phải 42.
Alvin Thompson

2

tcsh set ignoreeofhoặc set ignoreeof=<any value not 1>công trình


0

Nếu bạn thực sự không thích có Ctrl-d, thì bạn có thể xóa eofký tự trong các điều khiển đầu cuối.

stty eof undef

Sau này, Cntl-dsẽ là bất kỳ nhân vật điều khiển khác.


1
Tôi đã thử điều đó trong một thiết bị đầu cuối (urxvt) với bash, và trong một bảng điều khiển đơn giản, và nó không hoạt động.
Mat

Hmm ... đã từng làm việc và tài liệu vẫn nói rằng nó làm. Một cách khác là sử dụng <kbd> Ctrl - [</ kvd>.
Arcege

2
Điều này cũng sẽ làm cho nó không còn thoát khỏi python.
psusi
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.