젠투를 새로 설치하면서 특별한 문제에 부딪혔습니다. 콘솔 내부의 Backspace키에는 의도된 기능 대신 사각형 내부에 귀여운 작은 물음표가 인쇄되어 있습니다. 또한 Tab명령을 제외하고는 정확히 동일한 방식으로 작동한다는 것을 알았습니다 Ctrl. 설치 중에는 키가 잘 작동했지만 시스템을 제대로 부팅하고 초기 설정을 수행한 후에는 포기하는 것 같았습니다.
localectl
상태 출력은 다음과 같습니다.
System Locale: LANG=en_US.utf8
LC_COLLATE=C
VC Keymap: us
X11 Layout: us
X11 Model: pc105+inet
X11 Options: terminate:ctrl_alt_bksp
기본적으로 콘솔에서는 Backspace또는 키를 사용할 수 없으며 Ctrlx11은 아직 설치되지 않았습니다. 나는 붙어있다. 어떤 아이디어가 있나요?
답변1
댓글 쓸 공간이 부족해요..
백스페이스 키를 누르면 stty erase '^?'
원하는 결과를 얻을 수 있습니다.
CTRL 명령이 작동하지 않는다고 말하면 CTRL+ 를 의미합니까 C? 그렇다면, 그래서 무엇입니까 stty intr ^C
? ++를 사용하여 CTRL터미널을 전환 할 ALT수도 있나요 F#? 어쨌든 다음 출력을 붙여넣는 것이 도움이 될 수 있습니다.stty -a
stty 설정과 관련하여 다음 링크가 도움이 될 것입니다. http://docstore.mik.ua/orelly/unix3/upt/ch05_08.htm
또한 질문이 하나 더 있습니다. 해당 명령을 사용하고 있다는 localectl
것은 해당 명령을 실행하고 있다는 의미입니까 systemd
? systemd
아직도 설치 디스크를 사용하고 계십니까 openRC
? 나는 그렇게 확신합니다 openRC
. 이것이 아마도 OS가 아닌 설치 프로그램에서 작동하는 이유일 것입니다.
답변2
상자 안의 물음표는 유니코드 대체 문자입니다. Linux 콘솔은 두 가지 상황에서 인쇄됩니다.
- 문자가 현재 로드된 글꼴(512개 문자)에 없거나
- 콘솔의 디스플레이 컨트롤이 활성화됩니다.
후자는 표시된 것처럼 오랫동안 커널에 있었습니다.이것은 2.2.26의 console.c에 연결됩니다., 관련 설명이 있습니다.
1869 /* If the original code was a control character we
1870 * only allow a glyph to be displayed if the code is
1871 * not normally used (such as for cursor movement) or
1872 * if the disp_ctrl mode has been explicitly enabled.
1873 * Certain characters (as given by the CTRL_ALWAYS
1874 * bitmap) are always displayed as control characters,
1875 * as the console would be pretty useless without
1876 * them; to display an arbitrary font position use the
1877 * direct-to-font zone in UTF-8 mode.
1878 */
이는 다음 중 하나에 의해 설정됩니다.두 개의 이스케이프 시퀀스:
1051 case 11: /* ANSI X3.64-1979 (SCO-ish?)
1052 * Select first alternate font, lets
1053 * chars < 32 be displayed as ROM chars.
1054 */
1055 translate = set_translate(IBMPC_MAP,currcons);
1056 disp_ctrl = 1;
1057 toggle_meta = 0;
1058 break;
1059 case 12: /* ANSI X3.64-1979 (SCO-ish?)
1060 * Select second alternate font, toggle
1061 * high bit before displaying as ROM char.
1062 */
1063 translate = set_translate(IBMPC_MAP,currcons);
1064 disp_ctrl = 1;
1065 toggle_meta = 1;
1066 break;
그리고초기화삼분의 일:
1040 case 10: /* ANSI X3.64-1979 (SCO-ish?)
1041 * Select primary font, don't display
1042 * control chars if defined, don't set
1043 * bit 8 on output.
1044 */
1045 translate = set_translate(charset == 0
1046 ? G0_charset
1047 : G1_charset,currcons);
1048 disp_ctrl = 0;
1049 toggle_meta = 0;
1050 break;
마지막(만약 TERM
그렇다면linux
)는 다음과 같이 쓸 수 있다
tput rmpch
이 기능을 사용하세요:
exit_pc_charset_mode rmpch S3 Exit PC character
display mode
또는
tput sgr0
하지만아니요reset
또는 명령 stty
.
추가 자료:
- console_codes - Linux 콘솔 이스케이프 및 제어 시퀀스
- terminfo 빌딩 블록클론+SGR,포함하다
rmpch
- terminfo - 터미널 기능 데이터베이스