USB 직렬 연결을 통해 ARM 개발 보드에서 실행되는 Arch Linux 설치에 로그인하고 있습니다. 설치가 원활하게 진행되었으며 모든 것이 좋아 보입니다. 그러나 내 콘솔이 이상하게 동작하고 있습니다. 다양한 명령에 대한 응답으로 줄을 지우지 않는 것 같습니다. 예제는 이해하기 더 쉽습니다(설명하기는 더 어렵지만).
$ mkdir test
*Press delete*
$ mkdir test*space*
위 명령을 실행하면 tes
디렉터리가 생성되므로 삭제가 작동한다는 것을 알고 있습니다. 명령 표시에서 올바르게 작동하지 않는 것 같습니다. "stty -a"를 확인해 보니 삭제가 정확합니다(^?). bash 사용의 역사는 더 분명합니다:
$ mkdir test
$ cd test
*Up Arrow* *Up Arrow*
$ cd testmkdir test
화면과 별도의 GUI 프로그램을 통해 보드에 로그인을 시도했지만 둘 다 동일한 동작을 나타냅니다. 이는 단순한 구성 오류라고 확신하지만 이와 관련된 다른 문제는 찾을 수 없는 것 같습니다. 어떤 아이디어가 있나요?
답변1
TERM
Bourne Again 셸의 GNU Readline 라이브러리에서 볼 수 있는 환경 변수는 다음을 나타내야 합니다.옳은직렬 연결이 끝나면 실제 터미널과 일치하는 정보가 terminfo 데이터베이스에 기록됩니다.
직렬 연결 종료 시 터미널 에뮬레이터에 전환 가능한 터미널 유형이 있는 경우 TERM
현재 설정에 맞게 변수를 전환해야 합니다.
getty
전통적으로 로컬 실제 터미널은 동일한 직렬 회선에 물리적으로 연결된 상태로 유지되었으며 시스템 관리자는 프로그램 호출에 올바른 터미널 유형이 사용 되도록 일회성 구성 변경을 수행했습니다 . 요즘에는 에뮬레이터 프로그램을 실행하는 PC가 실제 터미널인 것처럼 직렬 장치에 연결되어 있으며, 에뮬레이터 구성을 동일하게 유지하거나 에뮬레이터 프로그램이 변경될 때마다 호스트 시스템을 재구성해야 합니다.
불일치가 있으며 커서를 뒤로 이동하기 위해 GNU Readline 라이브러리에서 내보낸 제어 시퀀스( TERM
terminfo 데이터베이스의 -로 표시된 레코드에서 읽음)가 제어 시퀀스와 일치하지 않습니다. 터미널 또는 터미널 에뮬레이터실제로 깨닫다커서를 뒤로 이동합니다.
(입력 줄 끝에서 왼쪽으로 삭제하는 것은 Readline에 의해 지정됩니다.커서를 뒤로 이동하고 공백을 인쇄한 다음 커서를 다시 뒤로 이동합니다.. Readline은 항상 이 cub
함수가 아닌 이 cub1
함수를 사용한다는 점에 유의하세요. 어떤 터미널도 ␈
기능 cub
에 이 문자를 사용하지 않습니다. 따라서 터미널이 응답하는 방식은 ␈
붉은 청어입니다. cub
중요한 것은 함수의 실제 제어 시퀀스에 어떻게 반응하느냐입니다. )
나열된 줄 규칙 특수 문자는 stty
두 가지 이유 때문에 위험합니다. 그들은입력하다처리와 무관산출GNU Readline 라이브러리에서 사용되는 제어 시퀀스입니다. GNU Readline은 터미널을 비정규 입력 모드로 전환합니다.그래도명령줄을 편집할 때 실제로 발생합니다.