와 달리 bash, ssh비밀번호 프롬프트는와 같은 특별한 터미널 입력 라이브러리를 사용하지 않습니다 readline. 라인 편집 기능은 단지 기본 POSIX TTY 라인 편집 기능입니다.
따라서 "요리 된"모드 (원시 아님), 일명 표준 모드에 POSIX TTY가 있으며 사용 가능한 유일한 행 편집은 커널이 제공하는 것입니다. 참조 stty(1)하고, 그 통지
kill = ^U. 백 스페이스 문자가 정의 된 곳이기도합니다 ( erase = ^?). 단어 지우기 ( ^W)는 맹인을 입력하지 않을 때 편리합니다.
lnext = ^V 즉, control-v를 입력 한 다음 무엇이든 (control-c 포함) 리터럴 control-c를 얻을 수 있습니다.
맹목적으로하려고했던 것을 디버그하려면을 실행 cat하거나 cat > /dev/null터미널에서 실행 하십시오 . 내용을 입력 한 다음 작동하는 것과 편집하지 않는 것을보십시오.
readline(로 사용 bash)은 원시 문자를 읽고 사용자 공간에서 행 편집을 수행합니다. 기본 바인딩은 기본 TTY 제어 문자와 호환되지만 둘 다 제공하는 편집 기능의 하위 세트에 해당합니다.
readline은 단순한 TTY의 단순한 라인 편집을 넘어선 것입니다. (예 : TTY 만 줄의 끝에 문자를 삭제할 수 있습니다, 그래서가 없습니다 ^a및 delete또는 왼쪽 / 오른쪽 화살표)
때 bash전경에서 명령을 실행합니다 (즉, 기본이기 때문에), 먼저 표준 모드로 TTY를 넣습니다. 따라서 경로 stty -a재 지정없이 실행 하면 항상 표준 모드에서 자체 터미널이 표시됩니다. 그러나 bash실행중인 다른 TTY에서 입력을 리디렉션 하면 bash + readline이 적용된 터미널 설정을 볼 수 있습니다. 예를 들어 해당 터미널 에서 실행 중이므로 원시 모드를 stty -a < /dev/pts/12표시 -icanon합니다 bash. (다른 탭으로 전환하여 실행 tty한 다음 첫 번째 터미널에서 해당 장치 파일 경로를 사용했습니다). cat다른 터미널에서 실행하면 icanon표준 모드가 표시됩니다.
관련 : TTY는 미신
https://www.gnu.org/software/libc/manual/html_node/Canonical-or-Not.html
https://ko.wikipedia.org/wiki/POSIX_terminal_interface