쉘이 한 사용자에게 이상한 문자를 표시합니다

쉘이 한 사용자에게 이상한 문자를 표시합니다

얼마 전에 Debian X64 서버에 사용자를 추가했는데 시스템에 SSH를 통해 접속할 때 사용자 이름을 표시하는 대신 아래 스크린샷과 같이 이상한 문자가 표시되었습니다. 이는 root또는 에서는 발생하지 않으며 postgres이 사용자에게만 발생합니다. 또한 탭이나 위쪽 화살표를 누르면 자동 완성이나 이전 명령이 표시되지 않고 각각 공백이나 임의의 문자만 표시됩니다. 이 문제를 어떻게 해결하나요?

스크린샷

제가 무엇을 할 수 있는지 알려주세요. 감사해요.

답변1

Debian 시스템에서 useradd쉘을 지정하지 않고( -s옵션을 사용하여) 사용자를 생성하면 사용자 기본 쉘이 다음으로 설정됩니다./bin/sh/bin/dash대신 에 링크되는 는 /bin/bashSqueeze로 시작합니다.:

$ grep SHELL= /etc/default/useradd
SHELL=/bin/sh

스프린트POSIX 표준을 준수하며 유사한 확장 기능이 없는 쉘입니다 bash.

사용자 기본 로그인 셸을 다음으로 변경해야 합니다 /bin/bash.

chsh -s /bin/bash deploy

또한 시스템 전체로 만들려면 in SHELL=/bin/sh으로 변경해야 합니다 .SHELL=/bin/bash/etc/default/useradd

답변2

이는 환경 변수 PS1에 색상이나 기타 특수 문자가 정의되어 있지만 어떤 이유로 터미널이 이를 표시할 수 없는 경우에 발생합니다. PS1은 쉘 프롬프트가 표시되는 방식을 정의하는 환경 변수입니다. 기본값(google: bash ps1 default)으로 되돌리거나 다음을 수행해야 할 수도 있습니다.

export TERM=linux

자세한 내용은 bash 매뉴얼 페이지를 확인하세요.

관련 정보