stty -a의 출력을 이해하고 Ctrl 백스페이스를 백스페이스로만 변경합니다.

stty -a의 출력을 이해하고 Ctrl 백스페이스를 백스페이스로만 변경합니다.

나는 bash 쉘에서 작업 중입니다.솔라리스환경에서는 "백스페이스"를 입력할 때마다 전체 줄이 지워집니다.

전체 줄을 한 문자로 지우는 백스페이스 키를 변경하라는 제안 사항이 있습니까? 이것이 의도된 동작입니까?

stty -a로컬 명령의 출력을 해석하는 방법시그윈환경:

$ stty -a <br/>
speed 38400 baud; rows 34; columns 125; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = ^Z; 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
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -tostop echoctl echoke

답변1

귀하의 질문에 따르면 귀하가 cygwin을 사용하여 Solaris 시스템에 액세스하고 있다고 가정합니다.

stty -a터미널의 현재 설정을 모두 표시합니다. 나는 그들 각각에 대해 다루지 않을 것입니다. 하지만 각각의 기능이 무엇인지는 알 수 있습니다.매뉴얼 페이지.

그러나 귀하의 질문이 이라는 점은 특히 주목할 가치가 있습니다 erase = ^?;. ^?~이다ASCII 제어 문자DEL(삭제) 에 대해 . 당신이 원하는 것은 (backspace) 의 제어 문자입니다 BS.

명령줄에서 다음을 입력할 수 있습니다.

stty erase ^H

^H하지만 가 아닌 제어 문자라는 점에 유의하세요 ^H. 그래서 나는 당신이 다음과 같이 입력했다고 믿습니다.

Ctrl+vbackspace

^H이는 화면에 인쇄 되어야 합니다 .

이렇게 하면 동작이 backspace원하는 대로 변경됩니다. 하지만 현재 세션 동안만 지속됩니다.

~에 따르면이 오라클 블로그/kernel/drv/options.conf, 다음 줄을 열고 찾아 구성을 영구적으로 변경할 수 있습니다.

ttymodes="2502:1805:bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16";

7f변경 사항을 영구적 으로 8다시 매핑합니다 . 이를 적용하려면 재부팅이 필요합니다.backspaceDELBS

관련 정보