![pts/1의 `stty -a < /dev/pts/0` 출력이 pts/0의 `stty -a`와 다른 이유는 무엇입니까? [복사]](https://linux55.com/image/175309/pts%2F1%EC%9D%98%20%60stty%20-a%20%26lt%3B%20%2Fdev%2Fpts%2F0%60%20%EC%B6%9C%EB%A0%A5%EC%9D%B4%20pts%2F0%EC%9D%98%20%60stty%20-a%60%EC%99%80%20%EB%8B%A4%EB%A5%B8%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
stty -a
on 을 입력하면 예상되는 다른 플래그가 pts/0
표시됩니다 .icanon
그러나 stty
현재 있는 (bash) 셸의 제어 터미널이 아닌 터미널에서 실행하면 요약하면 다음과 같습니다 -icanon
.
stty -a < /dev/pts/0
에서pts/0
, 주어진icanon
, 와 함께stty -a
stty -a < /dev/pts/0
에서pts/1
, 주어진-icanon
stty -a < /dev/pts/1
에서pts/1
, 주어진icanon
, 와 함께stty -a
stty -a < /dev/pts/1
에서pts/0
, 주어진-icanon
어떻게 되어가나요?
답변1
최종 장치의 회선 정책이 표준 모드가 아닙니다.쉘의 명령줄 편집기가 활성화된 경우. GNU Readline, ZLE, editline 또는 기타 명령줄 편집 라이브러리가 해당 편집기를 적극적으로 표시할 때 쉘은 터미널 줄 규칙을 비정규 모드로 전환했습니다. 생각해 보세요. 라인 편집기에는 제어 문자(특수 문자 포함)에 대한 고유한 해석이 있으며 각 문자가 입력될 때 즉시 응답하므로 터미널 I/O를 다른 방식으로 사용할 수 없습니다.
라인 편집기가 라인을 완료할 때마다 표준 모드를 다시 시작합니다. 첫 번째 의사 터미널로 이동하여 잠시 동안 실행되는 외부 명령(예: )을 실행합니다 sleep
.그 다음에다른 의사 터미널에서 보고된 내용을 봅니다.