Bisakah Anda menonaktifkan keystroke Ctrl-S (XOFF) di Putty?

42

Saya melakukan banyak ssh-ing, dan secara berkala saya menekan Ctrl+ S, yang secara alami mengirimkan + XOFF, dan menyebabkan semua jenis masalah (belum lagi perlu waktu bagi saya untuk mencari tahu apa yang terjadi, kemudian saat yang lain untuk mengingat bahwa saya perlu untuk menekan Ctrl+ Quntuk memulihkan.

Saya lebih suka menginstruksikan Putty untuk tidak pernah membiarkan saya mengetik XOFF.

Ada ide?

Seth
sumber
6
+1 untuk menunjukkan bahwa pemulihan dimungkinkan dengan Ctrl + Q. Banyak membantu saya!
Demento
1
+1 untuk benar-benar menanyakan cara menonaktifkan perilaku ini karena sepenuhnya ketinggalan zaman dan tidak berguna untuk tujuan saya. Semua orang di web memiliki trik CTRL + q yang didokumentasikan, tetapi tidak ada yang mendokumentasikan cara melepaskan ikatan tombolnya sama sekali.
andrew
1
perlu diingat bahwa ctrl+qakan mengembalikan aliran cache. Itu berarti, jika Anda menekan ctrl+sdan kemudian menjadi gila menekan ctrl+catau apa pun, ketika Anda menekan ctrl+qsemua yang Anda tekan sebelumnya akan dimainkan.
gcb
Apa efek dari suatu XOFF?
Snowcrash

Jawaban:

35

Tidak tahu tentang Putty, tetapi Anda dapat menggunakan:

stty -ixon

pada host jarak jauh, untuk menonaktifkan sinyal START / STOP.

Bartosz
sumber
Terima kasih - ada ide apakah atau bagaimana ini mempengaruhi konsol? Apakah ini akan mengubah perilaku program shell? (Satu-satunya yang saya tahu tentang XON / XOFF adalah bahwa ia digunakan untuk kontrol aliran serial). Kedengarannya seperti pengaturan yang baik untuk .bash_profile.
Seth
Itu seharusnya stty -ixon.
Berpikir aneh
Maaf. Memperbarui posting saya untuk memperbaiki kesalahan ketik.
Bartosz
1
Seperti yang baru saja saya komentari kepada BlakBat tentang jawabannya , itu membuat ^Stidak mengirim XOFF, tetapi sekarang menempatkan saya ke i-searchmode. Apakah ada cara saya bisa mendapatkan bash (atau Putty) hanya untuk membuang ^S? Bahkan lebih baik jika itu bisa berbunyi bip dan / atau flash pada saya; o)
Owen Blacker
1
Saya telah menambahkan stty -ixonke skrip profil saya. Saya telah membaca sekitar 100 artikel tentang bagaimana ketika Anda menekan CTRL + secara tidak sengaja, yang harus Anda lakukan adalah CTRL + q untuk melanjutkan lagi ... tapi saya tidak ingin shell saya mencegat CTRL + s / q sama sekali karena saya menggunakannya dengan vim sedikit. Terima kasih banyak untuk memberikan jawaban yang tampaknya tidak ada orang lain yang mempertimbangkan.
andrew
30

Solusi Putty:

  1. sebelum membuat sesi, pergilah ke Connection-> SSH-> TTY dalam daftar.
  2. di kotak dropdown "Mode", pilih IXON (nb: pada versi 0.60, daftar ini tidak disusun menurut abjad)
  3. masukkan "0" ( nol ) sebagai nilai IXON .

Tangkapan layar

Berfungsi sebagai pesona, bahkan jika Anda membuka "layar GNU" di atasnya, SSH ke host lain, atau "su" ke pengguna lain

Jika Anda menggunakan GNU Bash, ctrl-S seharusnya memungkinkan Anda sekarang untuk melakukan pencarian-riwayat-maju (alias: pencarian-i)

Anda dapat melihat perbedaan dalam output "stty -a | grep -o" .ixon " : Dengan konfigurasi dempul mencetak " -ixon " , tanpa " ixon "

BlakBat
sumber
2
Oke, itu membuat ^Stidak mengirim XOFF, tetapi sekarang menempatkan saya ke i-searchmode. Apakah ada cara saya bisa mendapatkan Putty (atau bash) hanya untuk membuang ^S? Bahkan lebih baik jika itu bisa berbunyi bip dan / atau flash pada saya; o)
Owen Blacker
Untuk menonaktifkan tindakan, Anda tidak dapat mengikat ^ S apa pun melalui bind '"\ Cs"'. Ini membuat Putty saya berkedip karena aksinya tidak dipetakan.
BlakBat
1
Saya lelah pada 0,62 dempul dan pengaturan di atas tidak membantu. Saya mencoba menimpa XON, XOFF dan dengan nilai yang berbeda tetapi tidak ada yang berubah.
Dennis C
1
Ini juga berfungsi untuk sesi SSH bersarang menggunakan openssh sebagai klien ke-2, ke-3 (dll)
Felipe Alvarez
1
Memutakhirkan jawaban ini sebagai cara terbaik untuk menonaktifkan kontrol aliran perangkat lunak. Untuk mengendalikan perilaku terminal, emulator terminal adalah tempat terbaik untuk mengkonfigurasinya. Menonaktifkan kontrol aliran XON / XOFF di Putty berarti bahwa ketika pseudo-terminal diminta dari host jarak jauh, server SSH akan menghormati pengaturan itu ketika mengalokasikan pseudo-terminal. Lihat tools.ietf.org/html/rfc4254#section-6.2
Anthony G - keadilan untuk Monica
5
Contoh .bashrc:
#
# Stop Putty dari melakukan XOFF / XON dengan Ctrl-S / Ctrl-Q
# SOURCE: http://raamdev.com/recovering-from-ctrls-in-putty (Morgy, 7/14/08)
#
# stty ixany
# stty ixoff -ixon
### Jika perlu mendengarkan Ctrl-S untuk beberapa aplikasi, gunakan keduanya sebagai berikut:
stty stop undef
stty start undef
Jack Hamilton
sumber
5

Saya punya masalah sebaliknya. Setiap sesekali, tuan rumah mengirimkan XOFFke Putty tetapi tidak pernah mengirimkan yang sesuai XONke Putty. Dalam hal ini, tidak ada yang Anda lakukan untuk Putty (sebelum memulai ulang) akan membatalkannya. Dalam hal ini, semua input keyboard ke host diblokir, tetapi host masih dapat mengirim data ke Putty.

Menonaktifkan kontrol aliran di Putty tidak berfungsi.

Cara untuk memperbaiki masalah ini adalah menggunakan

stty -ixoff

di profil Anda. Ini melarang tuan rumah mengirim XON/ XOFF. Perhatikan bahwa nama-nama opsi tersebut benar-benar membingungkan. ixon/ -ixonBerarti mengaktifkan / menonaktifkan kontrol aliran di sisi klien (artinya klien tidak dapat mengeluarkan kontrol aliran), ixoff/ -ixoffBerarti mengaktifkan / menonaktifkan kontrol aliran di sisi host (artinya host tidak dapat mengeluarkan kontrol aliran).

Btw, kode ASCII untuk Ctrl- Sdan XOFF adalah karakter ASCII yang sama (kode 19, 0x13). Tidak ada perbedaan. Pengaturan mengubah interpretasi karakter ASCII itu.

Mark Lakata
sumber
Oh man, saya sudah mencari penjelasan untuk ixon dan ixoff di mana-mana. Mengirim XON / XOFF dari klien ke host masuk akal. Namun, saya masih bingung, dalam situasi apa tuan rumah mengirim ke aliran klien mengontrol XON / XOFF? Saya melihat "ketika antrian input hampir kosong / penuh"? Apakah ini terjadi dengan komputer modern, seperti tidak terhubung ke printer lambat? Tapi apa artinya itu secara praktis? Apa yang terjadi pada UI terminal?
CMCDragonkai
Kontrol aliran bekerja di kedua arah. Komputer modern selalu melakukan sejuta hal lain, dan dapat "mengunci" melakukan aktivitas penting. Selama waktu ini, itu tidak dapat melayani port serial dan port serial akan meluap kecuali terminal dimatikan. Jadi tuan rumah mengirim XOFF ke terminal yang memintanya berhenti mengirim. Setelah tekanan mati, tuan rumah mengirimkan XON. (btw, port serial komputer biasanya hanya memiliki buffer perangkat keras kecil, katakanlah 16 byte.) Meskipun ini adalah teknologi kuno, apa pun yang tidak dirancang secara real-time kadang-kadang akan "hang" sehingga kontrol aliran diperlukan.
Mark Lakata
1
BTW, saya telah menemukan kasus-kasus di mana mikrokontroler kecil 20 MHz kecil mampu meluap komputer host 3 GHz, tetapi tidak sebaliknya. Itu karena mikrokontroler hanya melakukan satu hal dan dirancang dengan real-time dalam pikiran, sedangkan komputer host tidak.
Mark Lakata
4

Buka .bash_profiledan masukkan:

stty -ixon

Nilai tidak -xionbekerja untuk saya. Anda dapat melihat entri man: man stty.

Jumlah besar
sumber
+1 untuk stty -xion tidak berfungsi pada centos saya, tetapi stty -ixon berfungsi.
Jichao
0

Jalankan perintah ini di terminal untuk menonaktifkannya untuk sesi saat ini / menambahkannya ke .bashrc untuk menonaktifkannya secara permanen

stty -ixon

Aldrin Bennet
sumber