Bạn có thể tắt tổ hợp phím Ctrl-S (XOFF) trong Putty không?


41

Tôi thực hiện rất nhiều ssh-ing và định kỳ tôi nhấn Ctrl+ S, điều này tự nhiên gửi XOFFvà gây ra tất cả các loại vấn đề (chưa kể tôi phải mất một lúc để tìm hiểu chuyện gì đã xảy ra, sau đó là một lúc khác để nhớ rằng tôi cần nhấn Ctrl+ Qđể khôi phục.

Tôi thà hướng dẫn Putty đừng bao giờ để tôi gõ XOFF.

Có ý kiến ​​gì không?


6
+1 để chỉ ra rằng có thể phục hồi bằng Ctrl + Q. Đã giúp tôi rất nhiều!
Demento

1
+1 cho việc thực sự hỏi làm thế nào để vô hiệu hóa hành vi này bởi vì nó hoàn toàn lỗi thời và vô dụng cho mục đích của tôi. Mọi người trên web đều có tài liệu về thủ thuật CTRL + q, nhưng không ai có tài liệu làm thế nào để hủy liên kết các khóa hoàn toàn.
andrew

1
Hãy nhớ rằng ctrl+qsẽ khôi phục dòng lưu trữ. Điều đó có nghĩa là, nếu bạn nhấn ctrl+svà sau đó nhấn điên cuồng ctrl+choặc bất cứ điều gì khác, khi bạn nhấn ctrl+qtất cả những gì bạn nhấn trước đó sẽ được phát ra.
gcb

Tác dụng của một là XOFFgì?
Snowcrash

Câu trả lời:


35

Không biết về Putty, nhưng bạn có thể sử dụng:

stty -ixon

trên máy chủ từ xa, để tắt tín hiệu START / STOP.


Cảm ơn - bất kỳ ý tưởng nếu hoặc làm thế nào điều này ảnh hưởng đến giao diện điều khiển? Nó sẽ thay đổi hành vi của các chương trình shell? (Điều duy nhất tôi biết về XON / XOFF là nó được sử dụng để kiểm soát luồng nối tiếp). Âm thanh như một cài đặt tốt cho .bash_profile.
Seth

Điều đó nên được stty -ixon.
Oddthinking

Lấy làm tiếc. Cập nhật bài viết của tôi để sửa lỗi đánh máy.
Bartosz

1
Như tôi vừa nhận xét với BlakBat về câu trả lời của anh ấy , điều đó ^Skhông gửi XOFF, nhưng giờ nó đưa tôi vào i-searchchế độ. Có cách nào tôi có thể nhận bash (hoặc PuTTY) chỉ để loại bỏ bất kỳ ^S? Thậm chí sẽ tốt hơn nếu nó có thể phát ra tiếng bíp và / hoặc flash vào tôi; o)
Owen Blacker

1
Tôi đã thêm vào stty -ixontập lệnh hồ sơ của tôi. Tôi đã đọc khoảng 100 bài viết về cách khi bạn vô tình nhấn CTRL + s, tất cả những gì bạn phải làm là CTRL + q để tiếp tục lại ... nhưng tôi không muốn trình bao của mình chặn CTRL + s / q vì tôi sử dụng chúng với vim khá nhiều. Cảm ơn bạn rất nhiều vì đã cung cấp một câu trả lời mà không ai khác thậm chí có thể xem xét.
andrew

29

Giải pháp PuTTY:

  1. trước khi tạo phiên, hãy điều hướng đến Kết nối-> SSH-> TTY trong danh sách.
  2. trong hộp thả xuống "Chế độ", chọn IXON (nb: kể từ phiên bản 0.60, danh sách này không được sắp xếp theo thứ tự bảng chữ cái)
  3. đặt "0" ( không ) làm giá trị của IXON .

Ảnh chụp màn hình

Hoạt động như một nét quyến rũ, ngay cả khi bạn mở "màn hình GNU" trên đầu trang, SSH sang máy chủ khác hoặc "su" cho người dùng khác

Nếu bạn đang sử dụng GNU Bash, ctrl-S sẽ cho phép bạn thực hiện lịch sử tìm kiếm chuyển tiếp (còn gọi là: i-search)

Bạn có thể thấy sự khác biệt trong đầu ra của "stty -a | grep -o" .ixon " : Với putty được cấu hình, nó in " -ixon " , không có " ixon "


2
Ok, điều đó ^Skhông gửi XOFF, nhưng bây giờ nó đưa tôi vào i-searchchế độ. Có cách nào tôi có thể nhận PuTTY (hoặc bash) chỉ để loại bỏ bất kỳ ^S? Thậm chí sẽ tốt hơn nếu nó có thể phát ra tiếng bíp và / hoặc flash vào tôi; o)
Owen Blacker

Để hủy kích hoạt một hành động, bạn có thể liên kết ^ S với không có gì thông qua liên kết '"\ Cs"'. Điều này làm cho PuTTY của tôi nhấp nháy vì hành động không được ánh xạ.
BlakBat

1
Tôi mệt mỏi với putty 0,62 và cài đặt ở trên không giúp được gì. Tôi đã cố gắng ghi đè XON, XOFF và với các giá trị khác nhau nhưng không có gì thay đổi.
Dennis C

1
Điều này cũng hoạt động đối với các phiên SSH lồng nhau bằng cách sử dụng openssh với tư cách là khách hàng thứ 2, 3 (v.v.)
Felipe Alvarez

1
Nâng cao câu trả lời này là cách tốt nhất để vô hiệu hóa kiểm soát dòng phần mềm. Để kiểm soát hành vi của thiết bị đầu cuối, trình giả lập thiết bị đầu cuối là nơi tốt nhất để cấu hình nó. Vô hiệu hóa điều khiển luồng XON / XOFF trong Putty có nghĩa là khi yêu cầu thiết bị đầu cuối giả từ máy chủ từ xa, máy chủ SSH sẽ tôn trọng cài đặt đó khi cấp phát thiết bị đầu cuối giả. Xem công cụ.ietf.org/html/rfc4254#section
Anthony G - công lý cho Monica

5
ví dụ .bashrc:
#
# Dừng Putty thực hiện XOFF / XON bằng Ctrl-S / Ctrl-Q
# NGUỒN: http://raamdev.com/recovering-from-ctrls-in-putty (Morgy, 14/07/08)
#
# sty ixany
# sty ixoff -ixon
### Nếu cần nghe Ctrl-S cho một số ứng dụng, thay vào đó hãy sử dụng hai ứng dụng này:
dừng lại
bắt đầu hoàn tác

5

Tôi đã có vấn đề ngược lại. Thỉnh thoảng, chủ nhà gửi một XOFFPuTTY nhưng không bao giờ gửi tương ứng XONvới PuTTY. Trong trường hợp này, không có gì bạn làm với PuTTY (không khởi động lại nó) sẽ hủy kết nối nó. Trong trường hợp này, tất cả đầu vào bàn phím đến máy chủ bị chặn, nhưng máy chủ vẫn có thể gửi dữ liệu đến PuTTY.

Vô hiệu hóa điều khiển luồng trong PuTTY không hoạt động.

Cách khắc phục vấn đề này là sử dụng

stty -ixoff

trong hồ sơ của bạn. Điều này cấm các máy chủ gửi XON/ XOFF. Lưu ý rằng tên của các tùy chọn là hoàn toàn khó hiểu. ixon/ -ixoncó nghĩa là bật / tắt điều khiển luồng ở phía máy khách (nghĩa là máy khách không thể đưa ra điều khiển luồng), ixoff/ -ixoffcó nghĩa là bật / tắt điều khiển luồng ở phía máy chủ (có nghĩa là máy chủ không thể đưa ra điều khiển luồng).

Btw, mã ASCII cho Ctrl- Svà XOFF là cùng một ký tự ASCII (mã 19, 0x13). Không có sự khác biệt. Các cài đặt thay đổi cách hiểu của ký tự ASCII đó.


Ôi trời, tôi đã tìm kiếm khắp nơi để tìm lời giải thích cho ixon và ixoff. Gửi XON / XOFF từ máy khách đến máy chủ có ý nghĩa. Tuy nhiên, tôi vẫn bối rối, trong trường hợp nào thì máy chủ gửi đến máy khách kiểm soát luồng XON / XOFF? Tôi thấy "khi hàng đợi đầu vào gần trống / đầy"? Điều này có xảy ra với các máy tính hiện đại, vì không kết nối với máy in chậm? Nhưng điều đó thực tế có nghĩa là gì? Điều gì xảy ra với UI thiết bị đầu cuối?
CMCDragonkai

Kiểm soát dòng chảy hoạt động theo cả hai hướng. Một máy tính hiện đại luôn làm hàng triệu thứ khác và nó có thể "khóa" hoạt động quan trọng. Trong thời gian này, nó không thể phục vụ cổng nối tiếp và cổng nối tiếp sẽ tràn ra trừ khi thiết bị đầu cuối tắt. Vì vậy, máy chủ lưu trữ gửi XOFF đến thiết bị đầu cuối yêu cầu nó ngừng gửi. Khi áp suất đã tắt, máy chủ sẽ gửi XON. (btw, các cổng nối tiếp máy tính thường chỉ có một bộ đệm phần cứng nhỏ, giả sử là 16 byte.) Mặc dù đây là công nghệ cổ đại, bất cứ thứ gì không được thiết kế cho thời gian thực đôi khi sẽ bị "treo" vì vậy cần kiểm soát luồng.
Mark Lakata

BTW, tôi đã tìm thấy các trường hợp trong đó một vi điều khiển 20 MHz nhỏ bé có thể tràn qua máy tính chủ 3 GHz, nhưng không phải ngược lại. Đó là bởi vì vi điều khiển chỉ làm một việc và được thiết kế với thời gian thực, trong khi máy tính chủ thì không.
Mark Lakata

4

Mở của bạn .bash_profilevà đặt:

stty -ixon

Giá trị không -xionlàm việc cho tôi. Bạn có thể thấy mục người đàn ông : man stty.


+1 cho stty -xion không hoạt động trên centos của tôi, nhưng stty -ixon hoạt động.
Jichao

0

Chạy lệnh này trong terminal để vô hiệu hóa nó cho phiên hiện tại / thêm nó vào .bashrc để vô hiệu hóa nó vĩnh viễn

stty -ixon

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.