Ctrl-S의 요점은 무엇입니까?


135

Ctrl+ S으로 재시작 할 수있는 단말에 대한 모든 출력 정지 Ctrl+를 Q.

그러나 왜 Ctrl+ S가 처음에 존재합니까? 제어 시퀀스를 제자리에 배치하여 어떤 문제를 해결하려고 했습니까?


5
참조 : linusakesson.net/programming/tty (모두 읽으십시오. 특히 흐름 제어에 관한 섹션을 읽으십시오 ...)
Olivier Dulac

8
Ctrl-S / Ctrl-Q를 사용하여 베이컨을 여러 번 저장하여 거의 작동하지 않는 시스템에서 오류 메시지의 런 어웨이 출력을 중지하여 원래 상태를 확인할 수있었습니다.
DocSalvager

4
부수적으로, 나는 .bashrc두 기능을 비활성화하기 위해 이것을 가지고 있습니다 : stty stop ''; stty start '';. 이렇게하면 Ctrl-S screen를 my .screenrc: 에 이스케이프 문자로 사용할 수 있습니다 escape ^Ss. 이는 readline"줄 시작"에 표준 단축키 Ctrl-A를 사용할 수 있음을 의미합니다 ( "줄 끝"에 대해서는 Ctrl-E와 일치하며 홈 및 끝보다 터미널 에뮬레이션에 덜 취약합니다). : D
IMSoP

답변:


155

컴퓨터가 있기 훨씬 전에, 텔레 프린터 (일명 텔레 타이프라이터, 일명 텔레타이프)가있었습니다. 그것들은 전신과 거의 같은 기술이라고 생각하지만, 키보드와 프린터가 부착되어 있습니다.

텔레타이프는 컴퓨터를 처음 구축 할 때 이미 존재했고 당시의 컴퓨터 크기가 룸 크기 였기 때문에 텔레타이프는 첫 번째 컴퓨터에 대한 편리한 사용자 인터페이스가되었습니다. 명령을 입력하고 보내기 버튼을 누르고 잠시 동안 기다리십시오. 명령의 출력이 앞에있는 용지에 인쇄됩니다.

소프트웨어 흐름 제어 는이 시대에 시작되었습니다. 예를 들어, 텔레타이프가 데이터를 수신하는 것만 큼 프린터가 인쇄 할 수없는 경우, 텔레타이프는 XOFF 흐름 제어 명령 ( Ctrl+ S)을 원격으로 "지금 전송 중지"라고 보낼 수 있습니다. 그런 다음 XON 흐름 제어 명령 ( Ctrl+ Q)을 원격에 "내가 따라갔습니다. 계속하십시오"라고 보낼 수 있습니다.

그리고 현대의 터미널 에뮬레이터가 텔레타이프를 에뮬레이트 한 물리적 터미널 ( vt100 등 )을 에뮬레이트하고 있기 때문에이 사용법은 Unix에서도 유지됩니다 .


29
대부분의 경우 "용지 한 장에 인쇄"가 아니라 "팬 폴드 용지 더미에 인쇄"됩니다.
두부

3
또는 펀치 테이프 롤에!
mdpc

2
나는 control-S와 control-Q가 처음에 컴퓨터의 출력을 시작하고 멈추는 데 사용 된 것이 아니라 다른 텔레타이프에 부착 된 종이 테이프 리더에서 나온 것이라고 생각 합니다. 시분할 시스템이 등장하기 전까지 텔레타이프를 컴퓨터에 연결하는 데 관심이 많지 않았다고 생각합니다. 그렇지 않으면 컴퓨터가 사용자가 무언가를 입력하기를 기다리는 데 유용한 시간은 무언가 유용한 일을하지 않는 시간입니다.
supercat

2
또는 8½ 종이 롤.
Scott

44
1987 년에 나는 대학에서 살아남은 마지막 텔레타이프를 불에 태웠다. 이 프린터를 직렬 프린터로 사용했으며 35 페이지를 연속으로 인쇄해야 과열되는 것을 인식하지 못했습니다. 과열로 냄새가 나지 만 열 때문에 용지에 불이 붙었습니다. 그런 다음에 만 2 페이지마다 Ctrl-S를 주어야 몇 분 동안 식힐 수 있다고 말했습니다.
Tonny

25

VT100 터미널과 유사한 시점의 제어 문자입니다. CTRL-S로 시작하기 위해 터미널에 스크롤 기능 (있는 경우)이 제한되어있었습니다.

현대 터미널에서 볼 수있는 대부분의 내용은 이러한 구형 터미널 시스템을 모방하기 위해 마련되었습니다.


이것이 내가 (텔레 프린터의 대답이 아니라) 이런 기능이 보존 된 이유 일 수는 있지만 (들어가는 경우도 있지만) 들었습니다. 나는 Cntr-S를이 목적으로 사용했습니다
Lyndon White

2
출력을 시작 / 중지해야하는 기계적인 요구는 사람이 그것을 읽을 수 있기 전에 시작되었습니다!
TripeHound

@TripeHound : 사실, 사람들이 정보를 수신하는 동안 정보를 볼 것이라는 특별한 기대가 있기 오래 전에 왔습니다. 할 것).
supercat

21

BTW, 화면에 긴 출력을 표시하는 경우 출력을 내뿜는 컴퓨터만큼 빨리 읽을 필요는 없습니다. 고양이 (또는 활성 꼬리)에서 CTRL-S / CTRL-Q를 사용하면 출력을 중지하고 다시 시작하는 데 매우 유용합니다.


25
less더 있습니다.
dotancohen 2016 년

2
@dotancohen : 아주 재밌어요. 심지어 more첫 번째 유닉스 (기능 cat있지만cat -v )가 출시 된 후 4 년에서 5 년까지 소개 되지 않았습니다 . 유닉스 이전 에는 다른 시간 공유 (대화식) 운영 체제도있었습니다 . 예를 들어, RSTS .
Scott

2
@dotancohen 내가 선호 less하지만, 사람들이 있지만, 말할 less것이다 more, most보다 여전히 더 less!
Volker Siegel 2018 년

1
@ VolkerSiegel : 소개해 주셔서 감사합니다 most! cli의 ssh를 통해 이미지 파일 (gif, jpg, png)을 볼 수있는 프로그램을 알게 될 가능성이 있다면 나는 그것에 대해 듣고 싶습니다. 나는 현재 사용 asciiview하고 img2txt있지만 둘 다 만족스럽지 않습니다.
dotancohen 2016 년

2
@ VolkerSiegel : 또한 가장 감사합니다 ! 저자가 말한 것처럼 : "왜 덜 정착 하는가?" 데비안 사용자는 apt-get install most.
mivk

17

종이 테이프 리더가있는 고대 텔레타이프에서 control-Q를 받으면 종이 테이프 리더를 켜고 키보드에서 문자를 입력 한 것처럼 테이프에서 문자를 보내기 시작합니다. Control-S는 종이 테이프 판독기를 끕니다. 텔레타이프가 원래 컴퓨터에서가 아니라 다른 텔레타이프에서 데이터를 인쇄하기위한 것이라고 생각한다면, "종이 테이프 리더 끄기"가 "전송 중지를위한 다른 쪽의 요청"과 유사한 것으로 해석 될 수있는 방법이 분명해야합니다.

또한 control-R은 종이 테이프 펀치를 켜서 텔레타이프 (또는 로컬 반향이 활성화 된 경우 키보드에 입력 된 경우)에서 수신 한 모든 문자도 종이 테이프에 펀치됩니다. control-T는 종이 테이프 펀치를 끕니다. 그러나 control-S 및 control-Q와 관련된 작업과 달리 이러한 작업에는 최신 기능이없는 것 같습니다.

또한 control-Q / R / S / T의 원래 이름은 DC1 / DC2 / DC3 / DC4 ( "장치 제어 1"등)였습니다. 나는 역사가 확실하지 않지만 원래 이름은 지정되지 않은 종류의 작업을 유발하기위한 것이지만 사람들이 DC1 및 DC3에서 가장 일반적인 작업은 종이 테이프 판독기를 제어하는 ​​것이 었습니다.

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