정상적으로 로그인했는데 왜 bash 사용자 정의 설정을 볼 수 없나요?

정상적으로 로그인했는데 왜 bash 사용자 정의 설정을 볼 수 없나요?

내 사용자의 쉘 ​​프롬프트가 멈췄습니다.

[bash-4.2]$
ll예를 들어 bash-4.2 쉘에서는 사용할 수 없는 유용한 명령도 많이 있습니다 .

chsh명령과 명령을 시도했지만 usermod문제가 해결되지 않았습니다.

파일을 체크인했고 /etc/passwd내 사용자와 연결된 쉘은 입니다 /bin/bash. 다른 사용자에게는 동일한 줄이 있지만 이 사용자에게는 일반 bash 프롬프트가 표시됩니다.

[vin@localhost ~]$

~/.bash_profile것은

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

vin나는 일반 bash를 사용하여 루트나 다른 계정을 통해 내 사용자에 로그인할 때 해당 bash 유형을 유지하고 손상된 bash로 돌아가지 않는다는 것을 발견했습니다.

무엇이 잘못될 수 있나요? 이 문제를 해결하는 방법을 아는 사람이 있나요?

답변1

이것은 [bash-4.2]$"쉘 이름"이 아니라 "쉘 프롬프트"라고 합니다.

Bash의 쉘 프롬프트는 이라는 일반 쉘 변수에 저장됩니다 PS1. 의 내용은 일반 텍스트와 호스트 이름 삽입, 작업 디렉터리 삽입, 문자 삽입 (사용자인 경우) 등 PS1의 특수 코드로 구성된 프롬프트 형식 문자열입니다 . 예를 들어:\h\w\$#root$

PS1='\h:\w\$ '

이제 프롬프트는 다음과 같습니다.

machinename:/path/to/where/you/are$ _

밑줄은 커서를 나타냅니다. 최신 버전의 Bash에 대한 매뉴얼 페이지에 따르면 PS1의 기본값은 \s-\v\$쉘 이름, 리터럴 대시, 쉘 버전 및 다음 공백 없이 프롬프트를 생성하는 것입니다. 바로 보이는 것과 같습니다.

Bash 매뉴얼 페이지를 읽은 다음 리소스 섹션으로 이동하여 PROMPTING이 주제에 대한 모든 내용을 읽어보세요.

다른 사용자는 귀하의 계정과 다른 사용자의 계정 간의 일부 구성 차이로 인해 더 나은 팁을 얻을 수 있습니다. ~/.bash_profile및 등의 일부 구성 파일이 누락되었거나 이러한 파일에 구성되어 있지 않을 ~/.bashrc수 있습니다. PS1어쩌면 귀하의 계정에 올바른 홈 디렉토리가 없을 수도 있습니다.

chsh명령은 다른 프로그램을 사용하는 것처럼 로그인 쉘을 완전히 변경합니다. Bash를 전혀 사용하고 싶지 않지만 Zsh 또는 Tcsh와 같은 다른 도구를 사용하려는 경우 이 도구를 사용할 수 있습니다. 이는 호출 세션에서는 발생하지 않으며 새 로그인 세션에 영향을 미칩니다.

관련 정보