iTerm2에서 원격으로 로그인한 후 쉘 프롬프트(ps1)에서 이상한 이스케이프 시퀀스를 수정하는 방법

iTerm2에서 원격으로 로그인한 후 쉘 프롬프트(ps1)에서 이상한 이스케이프 시퀀스를 수정하는 방법

우분투 14.04에서 원격 시스템에 로그인한 후 다음과 같은 이상한 프롬프트가 표시되었습니다. 이것은 퍼티가 아닌 우분투 GUI 터미널을 사용할 때만 발생합니다. 문제를 해결하기 위한 제안이 있으십니까?

원격 서버에 로그인한 후의 출력입니다.

여기에 이미지 설명을 입력하세요.

답변1

이것은 실제로 iTerm2 통합입니다. iTerm2의 동적 테스트는 이를 제거하는 것이 아니라 통합 스크립트 내에서 수행되어야 합니다.참고: 아래 SSH에 대한 경고를 참조하세요.

iterm은 어떤 쉘/ssh가 활성화되어 있는지에 관계없이 유효한 ANSI 시퀀스로 응답합니다. 직접 출시하고 싶은 분들을 위한 순서는 다음과 같습니다.printf '\x1b[1337n'.

.bashrc(또는 init에 사용하는 쉘)에는 다음과 같은 내용이 있을 수 있습니다.

테스트 -r ~/.iterm2_shell_integration.bash && . ~/.iterm2_shell_integration.bash

처음에는 테스트되지 않았을 수 있습니다. 더 추악한 것으로 변경하십시오.

isiterm2.sh&&테스트 -r ~/.iterm2_shell_integration.bash && . ~/.iterm2_shell_integration.bash

VS Code 원격 탐색기/SSH 사용자 VS 코드는 시작 시 SSH 연결에 자동으로 문자를 입력/제공하는 것 같습니다. 이러한 명령은 isIterm2.sh의 stty 재설정 시퀀스에 의해 잘릴 수 있습니다. 나의 단기적인 비결은 프롬프트의 두 번째 디스플레이에서 이 확인/로드를 수행하는 것입니다. 이것은그런그냥 패치워크일 뿐입니다.

답변2

문자열은 실제로는 아닙니다.ANSI 시퀀스. 대신 ANSI 시퀀스로 시작하지만 원격 시스템에서(일부 스크립팅 오류로 인해) 변환되므로 대부분의 문자가 다른 형식으로 변환됩니다.

하나ANSI 시퀀스예를 들어,

escape[A

;before 옵션이 있을 수 있지만 A문제의 출력에는 a 133( [8진수 133)가 표시됩니다. 마찬가지로 스크린샷의 \033여러 위치에는 ASCII 이스케이프 문자 대신 텍스트가 표시됩니다.

gui 터미널과 putty의 차이점은 전자는 TERM로 설정될 수 있는 xterm-256color반면 PuTTY는 자체 구성이 있고 TERMPuTTY에서는 설정되지 않는다는 점입니다(기본값은 xterm).

Ubuntu 14.04는 기본적으로 이 작업을 수행하지 않습니다. (한동안 사용되었지만 아무도 불평하지 않았습니다.)이것), 이는 설치 후의 "개선"입니다. 제안된 대로 먼저 자신의 스크립트 .bashrc(또는 추가한 색상 테마 스크립트 - 일부는 매우 버그가 있음)를 살펴보십시오.

답변3

이는 iTerm2의 쉘 통합처럼 보입니다. 바라보다http://www.iterm2.com/documentation-shell-integration.html.

.iterm2_shell_integration.bash가 .bash_profile로 얻어졌는지 확인하세요.

답변4

이는 Iterm2s의 비표준 이스케이프 코드 때문입니다.독점 이스케이프 코드, 여기에 게시되었습니다:쉘 통합이 Linux 터미널에 잘못된 문자를 표시함. 이 문제를 해결하려면 iTerm2 통합이 설치된 원격 서버에서 다음 명령을 실행하십시오.

  1. curl https://raw.githubusercontent.com/gnachman/iTerm2/master/tests/isiterm2.sh > ~/.isiterm2.sh && chmod ug+x ~/.isiterm2.sh

  2. 이 스크립트를 조건부로 성공적으로 로드하려면 .bash_profile(또는 어디서나) 셸 통합을 수정하세요 ..profile

    ~/.isiterm2.sh && test -e "$HOME/.iterm2_shell_integration.bash" && source "$HOME/.iterm2_shell_integration.bash"

관련 정보