서버의 SSH 및 Fish Shell을 통한 기호로 Windows bash 화살표

서버의 SSH 및 Fish Shell을 통한 기호로 Windows bash 화살표

다소 복잡한 질문이 있습니다. 저는 Windows 10 1주년 업데이트와 Ubuntu용 Bash를 사용하고 있습니다. 를 통해 서버에 연결하고 있습니다 ssh. 이 서버는 fish shell화살표를 누르면 명령 기록을 표시하거나 다음 명령을 추측하는 대신 일부 기호만 인쇄합니다. 이것이 내가 보는 것입니다:

  • arrow up인쇄[A
  • arrow down인쇄[B
  • arrow right인쇄[C
  • arrow left인쇄[D

그러나 화살표는 에 있습니다 bash. 왜 이런 일이 발생하는지 아십니까?

답변1

나는 같은 문제가 있었지만 약간 다른 설정을 사용했습니다.

  • WSL(Ubuntu 및 Fish 포함)
  • SSH를 통해 Ubuntu 및 Bash를 실행하는 원격 서버에 연결

또한 원격 서버에 Fish를 설치하여 문제를 해결했습니다.

답변2

Windows 10 1주년 업데이트 및 Ubuntu의 Bash기본적으로 콘솔 창에서 bash를 실행하는 경우 해당 이스케이프 시퀀스(화살표 키와 같은 입력 포함)는 MSDN에 문서화되어 있습니다.

그 자체로 ssh는 거의 관련이 없습니다(원격 컴퓨터와 문자를 변경하지 않고 주고받음). 중요한 것은 원격 시스템에서 사용하는 터미널 설명과 Fish 쉘이 항목을 초기화하는지 여부입니다.

당신이 보고 있다는 점에서[A원격 컴퓨터에서 이는 터미널이 일반 모드 커서 키(초기화되지 않은 상태)를 보내고 있음을 의미합니다. 이는 구성이 하드코딩 .inputrc되거나(대부분의 파일 참조) 초기화되지 않은 "linux" 터미널 설명을 기반으로 하는 경향이 있는 bash와 일치합니다 . 물론 Windows 측에서는 bash가 기존 항목과 작동하도록 구성되었기 때문에 "작동"합니다. 먼 쪽에서 물고기 껍질은 거기에 있는 모든 것을 사용합니다 TERM(아마도 "xterm"). "xterm"이면 fishshell이 ​​예상합니다.신청방법^[OAvs 와 같은 커서 시퀀스를 ^[[A보면 오류 처리가 발생합니다.

추가 자료:

답변3

이유:

연결하려는 세션은 bash 쉘과 다른 터미널 에뮬레이션을 사용합니다.

간단한 솔루션:

SSH 세션에서는 화살표 키를 사용하지 마십시오.

더 어려운 솔루션:

대상 서버와 Fish Shell을 조사하고 그들이 사용하는 터미널 에뮬레이션과 이를 변경하는 옵션을 결정합니다. Windows용 Bash를 조사하여 Bash가 사용하는 터미널 에뮬레이션과 이를 변경하는 데 사용할 수 있는 옵션을 알아보세요. 둘 사이의 겹치는 부분을 찾아서 구현하십시오.

Windows 솔루션:

Windows에서 Putty(또는 기타 SSH 클라이언트 소프트웨어)를 사용하여 대상 서버에 직접 연결합니다.

Windows용 무료 오픈 소스 솔루션:

사용'단말기' 아니면 그런 거요.

하드코어 솔루션:

실행할 수 있는 bash 스크립트 작성Windows용 배시필요한 터미널 에뮬레이션을 자동으로 감지하고 사례별로 구현하므로 SSH 지원 장치에 원격으로 액세스하고 항상 화살표 키를 사용할 수 있습니다.

관련 정보