퍼티에서 Ctrl-S (XOFF) 키 입력을 비활성화 할 수 있습니까?


41

내가 ssh를 - 보내고을 많이 할, 정기적 나는 명중 Ctrl+ S자연스럽게을 전송 XOFF하고, 모든 종류의 문제를 (나에게 무슨 일이 있었는지 파악하기 위해 잠시 소요 언급하지 않기 원인을 다음 다른 동안은 내가 필요를 기억 Ctrl+ 를 눌러 Q복구합니다.

나는 퍼티에게 절대로 타이핑하지 말라고 지시한다 XOFF.

어떤 아이디어?


6
Ctrl + Q로 복구가 가능하다는 것을 지적한 +1 많은 도움이되었습니다!
Demento

1
이 동작이 완전히 구식이되어 제 목적으로는 쓸모 없기 때문에이 동작 을 비활성화 하는 방법을 실제로 묻는 +1입니다 . 웹의 모든 사람은 CTRL + q 트릭을 문서화했지만 아무도 키를 바인딩 해제하는 방법을 문서화하지 않았습니다.
앤드류

1
ctrl+q캐시 된 흐름을 복원 한다는 점을 명심 하십시오. 즉, 눌렀다 ctrl+s가 미친 듯이 누르 ctrl+c거나 다른 ctrl+q것을 누르면 이전에 눌린 모든 것을 누르면 재생됩니다.
gcb

의 효과는 무엇입니까 XOFF?
Snowcrash

답변:


35

퍼티에 대해 모르지만 다음을 사용할 수 있습니다.

stty -ixon

원격 호스트에서 START / STOP 신호를 비활성화합니다.


감사합니다-이것이 콘솔에 어떤 영향을 미치는지 알 수 있습니까? 쉘 프로그램의 동작을 변경합니까? (XON / XOFF에 대해 내가 아는 유일한 것은 직렬 흐름 제어에 사용된다는 것입니다). .bash_profile에 좋은 설정 인 것 같습니다.
Seth

이어야합니다 stty -ixon.
Oddthinking

죄송합니다. 오타를 수정하기 위해 게시물을 업데이트했습니다.
Bartosz

1
난 그냥에 주석으로 BlakBat그의 대답 차종는 것을, ^S을 보내지 XOFF만, 지금은 나를두고 i-search모드. bash (또는 PuTTY)를 그냥 버릴 수있는 방법이 ^S있습니까? 경고음이 나거나 번쩍 일 수 있다면 더 좋을 것입니다
.o

1
stty -ixon내 프로필 스크립트에 추가 했습니다. CTRL + s를 우연히 눌렀을 때 100 개 정도의 기사를 읽었지만 CTRL + q 만 다시 시작하면되지만 쉘이 CTRL + s / q를 전혀 가로 채지 않기를 바랍니다. vim과 함께 사용하기 때문에. 아무도 고려하지 않은 답변을 제공해 주셔서 대단히 감사합니다.
앤드류

29

PuTTY 솔루션 :

  1. 세션을 작성하기 전에 목록에서 Connection-> SSH-> TTY로 이동하십시오.
  2. "모드"드롭 다운 상자에서 IXON을 선택하십시오 (nb : 버전 0.60 부터이 목록은 알파벳순으로 정렬되지 않음)
  3. 넣어 "0" ( 제로 값으로) IXON .

스크린 샷

그 위에 "GNU 화면"을 열거 나 다른 호스트에 대한 SSH 또는 다른 사용자에게 "su"를 열더라도 매력으로 작동합니다.

GNU Bash를 사용하는 경우 ctrl-S를 사용하면 앞으로 검색 기록 (일명 i- 검색)을 수행 할 수 있습니다.

"stty -a | grep -o".ixon " 의 출력 차이를 볼 수 있습니다 . putty를 구성하면 "ixon " 없이 " -ixon "을 인쇄합니다.


2
좋아,을 ^S보내지 XOFF않지만 이제는 i-search모드 로 전환됩니다. PuTTY (또는 bash)를 그냥 버릴 수있는 방법이 ^S있습니까? 경고음이 나거나 번쩍 일 수 있다면 더 좋을 것입니다
.o

작업을 비활성화하려면 바인드 ' "\ Cs"'를 통해 ^ S를 아무것도 바인딩하지 않아도됩니다. 작업이 매핑되지 않았기 때문에 PuTTY가 깜박입니다.
BlakBat

1
퍼티 0.62에 지쳤으며 위의 설정이 도움이되지 않습니다. XON, XOFF를 무시하고 다른 값으로 변경했지만 아무것도 변경하지 않았습니다.
Dennis C

1
이것은 또한 두번째로는 openssh를 사용하여 중첩 된 SSH 세션 작동, 3 (등) 클라이언트
펠리페 알바레즈

1
이 답변을 소프트웨어 흐름 제어를 비활성화하는 가장 좋은 방법으로지지합니다. 터미널 동작을 제어하려면 터미널 에뮬레이터를 구성하는 것이 가장 좋습니다. Putty에서 XON / XOFF 흐름 제어를 비활성화하면 의사 터미널이 원격 호스트에서 요청 될 때 SSH 서버가 의사 터미널을 할당 할 때 해당 설정을 준수합니다. 참조 tools.ietf.org/html/rfc4254#section-6.2
앤소니 G를 - 공을 모니카

5
.bashrc 예제 :
#
# Putty가 Ctrl-S / Ctrl-Q로 XOFF / XON을하지 못하게합니다.
# 출처 : http://raamdev.com/recovering-from-ctrls-in-putty (Morgy, 7/14/08)
#
stty ixany
# stty ixoff -ixon
### 일부 앱에서 Ctrl-S를 들으려면 다음 두 가지를 대신 사용하십시오.
stty stop undef
stty start undef

5

나는 반대의 문제가 있습니다. 때때로 호스트는 XOFFPuTTY 에 a를 보내지 만 해당 XON하는 PuTTY에 절대로 보내지 않습니다 . 이 경우 PuTTY를 수행하지 않으면 (다시 시작하지 않음) 풀리지 않습니다. 이 경우 호스트에 대한 모든 키보드 입력은 차단되지만 호스트는 여전히 PuTTY에 데이터를 보낼 수 있습니다.

PuTTY에서 흐름 제어를 비활성화하면 작동하지 않습니다.

이 문제를 해결하는 방법은

stty -ixoff

.profile에. 이것은 호스트가 XON/ 를 보내지 못하게합니다 XOFF. 옵션 이름은 완전히 혼란 스럽습니다. ixon/ -ixon는 클라이언트 측에서 흐름 제어를 활성화 / 비활성화 함 (클라이언트가 흐름 제어를 실행할 수 없음을 의미)을 의미하고, ixoff/ -ixoff는 호스트 측에서 흐름 제어를 활성화 / 비활성화합니다 (호스트가 흐름 제어를 실행할 수 없음을 의미)를 의미합니다.

Btw에서 Ctrl- S및 XOFF 의 ASCII 코드 는 동일한 ASCII 문자 (코드 19, 0x13)입니다. 차이가 없습니다. 설정은 해당 ASCII 문자의 해석을 변경합니다.


오, 나는 ixon과 ixoff에 대한 설명을 모든 곳에서 검색했습니다. 클라이언트에서 호스트로 XON / XOFF를 보내는 것이 좋습니다. 그러나 호스트가 클라이언트 흐름 제어 XON / XOFF로 보내는 상황은 무엇입니까? "입력 대기열이 거의 비어 있거나 가득 찬 경우"가 표시됩니까? 느린 프린터에 연결하지 않는 것처럼 최신 컴퓨터에서도 이런 일이 발생합니까? 그러나 그것은 실제로 무엇을 의미합니까? 터미널 UI는 어떻게됩니까?
CMCDragonkai

흐름 제어는 양방향으로 작동합니다. 현대 컴퓨터는 항상 백만 가지 다른 일을하고 있으며 중요한 활동을 "잠글"수 있습니다. 이 시간 동안 직렬 포트를 서비스 할 수 없으며 터미널이 종료되지 않으면 직렬 포트가 오버플로됩니다. 따라서 호스트는 XOFF를 터미널로 보내서 전송 중지를 요청합니다. 압력이 해제되면 호스트는 XON을 보냅니다. (btw, 컴퓨터 직렬 포트는 일반적으로 16 바이트와 같은 작은 하드웨어 버퍼 만 가지고 있습니다.) 이것이 고대 기술이더라도 실시간으로 설계되지 않은 것은 때때로 "멈추어"흐름 제어가 필요합니다.
Mark Lakata

BTW, 작은 20MHz 마이크로 컨트롤러가 3GHz 호스트 컴퓨터를 오버플로 할 수 있지만 그 반대의 경우는 발견하지 못했습니다. 그 이유는 마이크로 컨트롤러가 한 가지 일만하고 실시간을 염두에두고 설계되었지만 호스트 컴퓨터는 그렇지 않기 때문입니다.
Mark Lakata

4

당신을 열고 .bash_profile넣어 :

stty -ixon

그 가치 -xion는 나를 위해 작동하지 않습니다. man 항목을 볼 수 있습니다 : man stty.


stty -xion의 +1은 내 centos에서 작동하지 않지만 stty -ixon은 작동합니다.
Jichao

0

터미널에서이 명령을 실행하여 현재 세션에서 비활성화하거나 .bashrc에 추가하여 영구적으로 비활성화하십시오.

stty -ixon

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.