Linux의 쉘/터미널에 잘못 입력된 보이지 않는 비밀번호 지우기/삭제

Linux의 쉘/터미널에 잘못 입력된 보이지 않는 비밀번호 지우기/삭제

Linux 터미널을 사용할 때 나를 짜증나게 하는 것 중 하나는 예를 들어 다음을 실행할 때 보이지 않는 비밀번호를 입력해야 한다는 것입니다.SSH. 때로는 하나 이상의 문자를 잘못 입력한 다음 다시 시작하기 전에 모든 항목을 삭제했는지 확인하기 위해 백스페이스 키를 몇 번 눌러야 할 때도 있습니다.

이것이 큰 문제가 아니라는 것을 알고 있지만 얼마 전 CTRL+L을 누르면 터미널이 "지워진다"는 사실을 발견했기 때문에 백스페이스나 키를 누르지 않고도 보이지 않는 비밀번호를 지우거나 제거할 수 있는 방법이 있는지 궁금했습니다. 다시 시도하려면 키를 입력하세요.

답변1

나는 이것이 답변되었다는 것을 알고 있지만 답변은 무슨 일이 일어나고 있는지 설명하지 않습니다.

Ctrl+와 같은 문자는 L다음과 같이 표시됩니다.애플리케이션. 예를 들어 셸에 입력을 입력하는 경우 bash화면이 지워집니다. 일부 응용 프로그램에서는 emacs이를 사용하여 화면을 다시 그리거나 커서를 중앙에 놓습니다.

Ctrl비밀번호 프롬프트의 +와 같은 문자는 U다음과 같이 표시됩니다.TTY 라인 규율. 입력 터미널이 "표준" 줄 편집 모드(예: 비밀번호를 입력할 때 프로그램이 있는 모드)에 있는 동안 작동합니다. 이 모드에서는 Linux 커널 자체가 이러한 문자를 해석합니다. 다음 출력에서 ​​어떤 기능이 어떤 키에 할당되었는지 확인할 수 있습니다 stty -a.

speed 38400 baud; rows 45; columns 128; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S;
susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

Ctrl여기에서 +가 다음 U과 같이 묶여 있는 것을 볼 수 있습니다 .killstty 매뉴얼 페이지)는 "현재 행을 삭제"합니다. stty다음을 사용하여 이 매핑을 변경할 수도 있습니다 .

stty kill ^E   # make ctrl-e erase the line

이 페이지관심이 있으시면 TTY 레이어에 대한 유용한 정보가 많이 있습니다.


충분히 혼란스럽지 않다면 대화형 프롬프트가 나타나면 bash실제로아니요"표준" 줄 편집 모드입니다. 대신, bash입력하고 전달할 때 각 문자가 직접 수신됩니다.독서선도서관. 이 도서관~ 할 것이다그러나 최종 장치에 설정한 매핑을 존중하여 이를 변경하는 데 계속 사용할 수 있습니다 stty. 또는 파일 내에서 속성을 설정하여 bash내부적으로나 다른 readline 기반 프로그램에서 독립적으로 사용자 정의 할 수 있습니다. 보다unix-line-discard~/.inputrc배쉬 매뉴얼 페이지더 많은 정보를 알고 싶습니다.

프로그램을 실행할 때 이전에 활성화 bash된 표준 줄 편집 모드( )를 다시 활성화 stty icanon하고 프로그램이 완료되면 다시 비활성화( )하십시오 stty -icanon.

답변2

ctrl+ 를 입력하기만 하면 됩니다 u.

즐겨보세요 =)

관련 정보