터미널에서 실수로 Ctrl-S를 누른 후 고정을 해제하는 방법은 무엇입니까?


729

Ctrl-S터미널에서 ( 다른 의도로) 를 누르면 터미널과의 상호 작용 (입력 또는 출력)이 고정됩니다. 아마도 일종의 "스크롤 잠금"일 수도 있습니다.

이 후에 터미널을 고정 해제하려면 어떻게합니까?

(이번에는 apt-shell내부에서 bash내부 작업을 수행해 왔으며, urxvt그 중 어느 것이 특수 처리를 담당하는지 확실하지 않습니다 Ctrl-S. C-rreadline과 같이 명령 내역을 뒤로 사용하여 검색하고 있었지만 "뒤로 가고 싶었습니다." "적어도 이맥스에서는 C-s( 1 , 2 , 3 ) 평소와 함께 역사를 통해 전달 하지만, 그로 인해 터미널이 정지되었습니다. 글쎄, 과거의 것들을보기위한 스크롤 / 페이징은 여전히 ​​터미널에서 작동하지만 상호 작용은 없습니다. 프로세스가 실행됩니다.)


23
작업 중이 었으며 vimCtrl-S를 눌러 편집 내용을 저장했습니다. 어XD
ADTC

4
왜 처음에 존재합니까?
neverMind9

답변:


862

Ctrl-Q

이 기능을 모두 비활성화하려면 stty -ixon시작 스크립트를 사용하십시오. 키가 다시 흐르도록하려면을 사용하십시오 stty ixany.

ps : 터미널이나 셸이 아니라 OS의 터미널 드라이버입니다.


8
감사합니다! BTW, 거기에 그들은 제안 Ctrl-C; 그것도 작동합니까? (그리고 다른 곳 에서 그들은 Ctrl-Q당신처럼 제안했습니다 .)
imz-Ivan Zakharyaschev

23
Ctrl-C는 작동하지만 일반적으로 원하지 않는 인터럽트 신호도 보냅니다. (Btw, 이러한 것들에 사용되는 키는 모두 통해 구성 할 수 stty있습니다.)
ak2

2
내 애플] [클론에이 조합을 시도 기억하고, 너무 거기에 일 - Ctrl-S다음 Ctrl-Q다시 시작합니다.
sashoalm

19
고맙습니다! 이것은 몇 년 동안 나를 괴롭 혔습니다. 왜 VIM이 이것을 대체하지 않고 저장을위한 기본 바로 가기로 구현하지 않았는지 잘 모르겠습니다. VIM을 제외한 거의 모든 응용 프로그램에 적용 할 수있는 CTRL + S (저장 바로 가기)를 자연스럽게 사용하기 때문에 고정 된 VIM 화면 인 감옥에서 탈출하는 것이 좋습니다.
Kraang Prime

8
@SanuelJackson Ctrl-S "저장 바로 가기"는 vim을 제외한 거의 모든 DESKTOP 응용 프로그램에 적용 할 수 있습니다. 그리고 이맥스를 제외하고. 그리고 나노. 그리고 다른 모든 "응용 프로그램"은 터미널에서 흐름 제어를 위해 이미 사용했기 때문에 터미널에서 실행할 수 있습니다. Ctrl-Alt-FN 바로 가기를 사용하여 Linux 데스크톱 응용 프로그램을 찾지 못하는 것과 같은 이유는 시스템에서 이미 사용하고 있기 때문입니다.
gerlos

384

Ctrl- Q실제로 대답입니다. 나는 ak2의 정답 의 여백에 맞지 않기 에 너무 긴 이것의 작은 역사를 던질 것이라고 생각했다 .

어두운 시대로 거슬러 올라가는 터미널은 긴 유선 또는 모뎀이있는 전화선을 통해 원격 장치 (원래 전신이 전신 키보다 작동하기가 훨씬 쉽기 때문에 원래 다른 터미널)에 연결된 대규모 장비였습니다. 유닉스가 개발 될 당시에는 ASCII 코드가 이미 확립되어 있었다 (IBM의 경쟁 EBCDIC 코드는 여전히 고려 대상 이었지만).

최초의 터미널은 수신 된 모든 문자의 인쇄 기록을 유지했습니다. 문자가 프린트 헤드보다 빨리 입력되지 않는 한 최소한 문자를 입력 할 수 있습니다. 그러나 CRT 기반 터미널이 가능 해지 자마자 문제는 CRT에 약 25 줄만 들어가고, 80 문자의 25 줄은 충분한 RAM을 나타내는 것으로서 화면.

따라서 독자가 따라 잡을 수 있도록 송신단이 일시 정지해야한다는 신호가 필요하다.

7 비트 ASCII 코드에는 문자 (0-31 및 127)를 제어하기위한 33 개의 코드 포인트가 있습니다. 그 중 일부는 다음과 같은 정말 잘 설립 목적을 가지고 NUL, (빈 종이 테이프 스레딩, 간격 및 스플 라이스를위한 지도자) DEL(모두 7 개 개의 구멍을 펀칭으로 표시된 종이 테이프에 문자 "밖으로 넘어"), BEL(땡!), CR, LF, 등을 TAB. 그러나 넷 (단말 장치 자체 제어하는 명백하게 정의 된 DC1DC4일명 Ctrl 키 + Q에서 Ctrl + R에서 Ctrl + S Ctrl 키 + T)를.

내 추측으로는 일부 엔지니어는 (니모닉이 진행됨에 따라) "Stop"에 대한 "S"와 "Continue"에 대한 "Q"가 너무 나쁘지 않다고 생각하고 DC3"전송을 중지하십시오" DC1를 의미하고 "ok , 지금 계속 보내십시오. "

유닉스가 벨 랩스 (Bell Labs)에 둥지를두고 세상에 나가기 전까지는 그 협약조차 이미 잘 확립되어있었습니다.

이 규칙은 소프트웨어 흐름 제어라고하며 실제 직렬 장치에서 매우 일반적입니다. 통신 채널에서 다른 목적으로 이러한 문자를 사용하는 것을 막기 때문에 올바르게 구현하기가 쉽지 않으며 수신 신호보다 더 많은 전송을 피하기 위해 보류중인 수신 문자보다 중지 신호를 처리해야합니다. 핸들.

실제적인 경우, 흐름 제어를 위해 직렬 데이터 스트림에서 대역 외의 추가 신호를 사용하는 것이 매우 바람직합니다. 추가 신호 와이어를 제공 할 수있는 직접 유선 연결에서는 하드웨어 핸드 셰이크가 사용 중이므로 다른 용도로 사용할 수 있습니다.

물론 오늘날의 터미널 창은 실제 물리적 직렬 포트를 사용하지 않고 스크롤 막대가 있으며 실제로 소프트웨어 핸드 쉐이킹이 필요하지 않습니다. 그러나 협약은 지속됩니다.

Richard Stallman은 emacs의 첫 번째 릴리스에서 증분 검색에 대한 Ctrl + S 맵핑에 대한 불만을 접수했으며 7 비트 소프트웨어 플로우 제어 연결에 의존해야하는 사용자에게는 다소 동정심이 없다는 주장을 기억합니다.


2
감사합니다 .. 매우 흥미로워 요 ... 궁금해하고 있습니다. 왜 지구상에서 누군가 가 "Q"로 프로세스 를 계속 하기로 선택합니까 (현재) Quit에 사용됩니다.
Peter.O

13
역사에 대해 대단히 감사합니다. 나는 최근에 유지 관리하는 터미널 에뮬레이터에서 기본적으로 흐름 제어를 비활성화했지만 여전히 그것을 사용하는 유닉스 전통 주의자들의 성명에 항의 한 후에 오히려 신속하게 복원해야했습니다. 나는 대신 ixany 비트를 설정 했으므로 ^^에 대해 몰라도 ^ S를 누르는 사람들은 적어도 멈추지 않습니다.
ak2

3
@ RBerteig 나는 백 스페이스와 삭제에 대해 비슷한 학습을 ​​시작했습니다. 백 스페이스는 공식적으로 ^ H이고 삭제는 ^? Emacs 개발자 (Stallman?)와 같은 일부 사람들은 ^ H와 같은 단축키와 같은 일반적인 목적으로 ^ H를 사용할 수 있기를 원했습니다. 이스케이프 시퀀스 ^ [[3 ~ 또는 이와 비슷한 것이 ^? 백 스페이스는 이제 이전 삭제 문자 ^?가되었습니다. 실제로 Linux 배포판에 특별히 패치 된 ncurses가 terminfo에 해당 키를 다시 매핑하는 것을 보았지만 FreeBSD의 ncurses는 패치되지 않았으므로 백 스페이스가 작동하지 않는 성가신 혼란이 발생합니다.
penguin359

23
종이 테이프와 ASR33으로 처음 연주 할 때까지 DEL이 다른 제어 문자와 그룹화되지 않고 왜 코드 127을 갖는지 궁금했습니다. 모든 구멍에 구멍을 뚫는 효과가 있다는 것을 깨달았습니다. 이는 구멍을 뚫기 전에 구멍을 뚫은 캐릭터에게 너무 많이 맞을 수 있다는 것을 의미했습니다.
RBerteig

3
@SanuelJackson 세밀하게 살펴본 지 얼마되지 않았지만 Windows와 함께 제공되는 기본 vimrc는 수년 동안 <Cs>를 ": update"로 매핑했습니다. 나는 또한 과거에도 gvim의 일부 배포판에서 그것을 보았을 것이라고 확신합니다. 그러나 터미널에서 vim을 사용하는 경우에도이 기록은 여전히 ​​관련성이 높습니다. 최신 터미널 에뮬레이터는 여전히 흐름 제어 키를 구현하므로 vim이 매핑하더라도 허용 된 답변에 설명 된대로 각 사용자가 흐름 제어를 비활성화하지 않는 한 키를 볼 수 없습니다.
Drew
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.