내 사용자의 쉘 프롬프트가 멈췄습니다.
[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와 같은 다른 도구를 사용하려는 경우 이 도구를 사용할 수 있습니다. 이는 호출 세션에서는 발생하지 않으며 새 로그인 세션에 영향을 미칩니다.