![iTerm2에서 원격으로 로그인한 후 쉘 프롬프트(ps1)에서 이상한 이스케이프 시퀀스를 수정하는 방법](https://linux55.com/image/89290/iTerm2%EC%97%90%EC%84%9C%20%EC%9B%90%EA%B2%A9%EC%9C%BC%EB%A1%9C%20%EB%A1%9C%EA%B7%B8%EC%9D%B8%ED%95%9C%20%ED%9B%84%20%EC%89%98%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8(ps1)%EC%97%90%EC%84%9C%20%EC%9D%B4%EC%83%81%ED%95%9C%20%EC%9D%B4%EC%8A%A4%EC%BC%80%EC%9D%B4%ED%94%84%20%EC%8B%9C%ED%80%80%EC%8A%A4%EB%A5%BC%20%EC%88%98%EC%A0%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
답변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는 자체 구성이 있고 TERM
PuTTY에서는 설정되지 않는다는 점입니다(기본값은 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 통합이 설치된 원격 서버에서 다음 명령을 실행하십시오.
curl https://raw.githubusercontent.com/gnachman/iTerm2/master/tests/isiterm2.sh > ~/.isiterm2.sh && chmod ug+x ~/.isiterm2.sh
이 스크립트를 조건부로 성공적으로 로드하려면
.bash_profile
(또는 어디서나) 셸 통합을 수정하세요 ..profile
~/.isiterm2.sh && test -e "$HOME/.iterm2_shell_integration.bash" && source "$HOME/.iterm2_shell_integration.bash"