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

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

이런 일이 자주 발생합니다. Ctrl-S다른 의도로 터미널을 누른 후 터미널과의 상호 작용(입력 또는 출력)이 정지됩니다. 이는 "스크롤 잠금" 등일 수 있습니다.

나중에 터미널 고정을 어떻게 해제합니까?

(이번에는 apt-shell내부 bash작업을 해왔습니다 urxvt. 둘 중 어느 것이 특수 처리를 담당하는지 잘 모르겠습니다 Ctrl-S. 평소와 같이 readline을 사용하여 명령 기록을 거꾸로 검색했지만 C-r, 다음으로 "돌아가"고 싶었습니다. 일반적인 방식으로 명령 기록을 통해 앞으로 나아갑니다 - 적어도 Emacs에서는 C-s- (1,2,), 그러나 이로 인해 터미널이 정지됩니다. 글쎄, 과거의 내용을 보기 위해 터미널에서 스크롤/페이징하는 것은 여전히 ​​작동하지만 그곳에서 실행되는 프로세스와 상호 작용은 없습니다. )

답변1

Ctrl-를 누르면 Q고정이 해제됩니다.

중지/시작 구성표는 다음과 같습니다.소프트웨어 흐름 제어, 이는 셸이나 터미널 에뮬레이터가 아닌 운영 체제의 터미널 장치 드라이버에 의해 구현됩니다. 명령을 통해 stty구성할 수 있습니다 .

완전히 비활성화하려면 또는 stty -ixon와 같은 쉘 시작 스크립트를 넣으십시오 . 대신 모든 키만 다시 흐르게 하려면 를 사용하세요 .~/.bashrc~/.zshrcstty ixany

답변2

Ctrl—— Q과연 답이군요. 나는 이것에 대해 약간의 역사를 설명할 것이라고 생각했는데 여백에 맞추기에는 너무 길었습니다.ak2의 정답.

암흑 시대에 터미널은 긴 전선이나 모뎀이 있는 전화선으로 원격 장치에 연결된 대형 장치였습니다(원래는 텔레타이프가 전신 키보다 작동 방법을 배우기 쉽기 때문에 다른 터미널이었습니다). Unix가 개발될 무렵에는 ASCII 코드가 잘 확립되었습니다(비록 IBM의 EBCDIC 코드와 경쟁하는 것은 여전히 ​​​​강력한 일이었습니다).

최초의 터미널은 수신된 모든 문자의 인쇄된 기록을 보관했습니다. 적어도 인쇄 헤드가 입력할 수 있는 것보다 문자가 더 빨리 도착하지 않는 한은 그렇습니다. 그러나 CRT 기반 터미널이 가능해지면서 문제가 발생했습니다. CRT에는 약 25줄만 들어갈 수 있었고, 80자 25줄이면 누구도 화면 상단으로 스크롤되는 문자를 제공하는 것을 심각하게 고려하지 않을 만큼 충분한 RAM을 나타냈습니다. 램. 화면.

따라서 독자가 따라잡을 수 있도록 보낸 사람이 잠시 멈춰야 함을 나타내기 위해 몇 가지 규칙이 필요합니다.

7비트 ASCII 코드에는 제어 문자(0~31 및 127) 전용으로 33개의 코드 포인트가 있습니다. 이들 중 일부는 NUL(스레딩, 간격 및 접합을 위한 빈 종이 테이프 리더), DEL(7개 구멍을 모두 펀칭하여 종이 테이프에 "줄이 그어진" 문자 표시), BEL(딩!) CR,, LF및 와 같은 명확한 목적을 가지고 있습니다. TAB. 그러나 터미널 장치 자체를 제어하기 위해 네 가지가 명확하게 정의되어 있습니다( DC1일명 DC4Ctrl+Q, Ctrl+R, Ctrl+S 및 Ctrl+T).

내 추측으로는 일부 엔지니어들이 (니모닉처럼) "중지"를 의미하는 "S"와 "계속"을 의미하는 "Q"가 그다지 나쁘지 않다고 생각하여 DC3"보내기를 중지하세요"와 DC1"확인"을 의미하도록 할당되었다는 것입니다. , 지금 계속 보내세요."

이 규칙은 Unix가 Bell Labs를 떠나 세계로 진출했을 때 잘 확립되었습니다.

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

가능하다면 흐름 제어를 위해 직렬 데이터 스트림에 대역 외 추가 신호를 사용하는 것이 가장 좋습니다. 추가 신호선을 허용할 수 있는 직접 유선 연결에서는 하드웨어 핸드쉐이킹이 사용되어 해당 문자를 다른 용도로 사용할 수 있게 됩니다.

물론 오늘날의 터미널 창은 실제 물리적 직렬 포트를 사용하지 않고 스크롤 막대가 있으며 소프트웨어 핸드셰이킹이 전혀 필요하지 않습니다. 하지만 루틴은 남아있습니다.

나는 Richard Stallman이 첫 번째 버전의 emacs에서 증분 검색에 Ctrl+S를 매핑한 것에 대해 불평을 받았던 것을 기억하며, 7비트 소프트웨어 흐름 제어 연결에 의존해야 하는 모든 사용자에게 다소 동정적이지 않았습니다.

답변3

제어 키: 셸에서 특수 기능을 수행합니다.

  • Ctrl- S: 표시를 일시 정지합니다.
  • Ctrl- Q: 디스플레이 재시작
  • Ctrl- C: 작업 취소
  • Ctrl- U: 라인 취소
  • Ctrl- D: 신호 파일 끝

관련 정보