.bash_profile을 다음으로 설정했습니다.
exec env -i HOME=$HOME TERM=vt100 PS1='\h' /bin/bash
하지만 로그인하면 다음도 표시됩니다.
lfs@sam:~$ env
TERM=vt100
PWD=/home/lfs
PS1=${debian_chroot:+($debian_chroot)}\u@\h:\w\$
SHLVL=1
HOME=/home/lfs
_=/usr/bin/env
lfs@sam:~$
무슨 일이에요?
로그인 시 PS1을 어떻게 설정하나요?
감사합니다~
답변1
이 값은 PS1
bash 시스템 전체 구성 파일에 의해 설정됩니다 /etc/bash.bashrc
. 에서 선택하여 이 작업을 수행할 수 있습니다 ~/.bashrc
.
PS1
쉘 변수입니다. 그 의미는 껍질에 따라 다릅니다. 쉘을 사용하는 경우에는 이스케이프할 수 있지만 일반적으로 프로세스 환경에 있어서는 안 되기 때문에 내보내서는 안 됩니다.
bash는 구성 파일과 관련하여 매우 기발하다는 점에 유의하십시오. bash의 로그인 인스턴스를 시작하면 읽기만 /etc/profile
하고 ~/.bash_profile
그렇지 ~/.profile
않으면 ~/.bash_profile
읽기만 합니다 /etc/bash.bashrc
(그렇게 구성한 경우) . 그리고 ~/.bashrc
. Bash의 로그인 인스턴스에서 대화형 설정을 얻으려면 다음 코드를 다음 위치에 넣어야 합니다 ~/.bash_profile
.
if [ -r ~/.profile ]; then
. ~/.profile
fi
case $- in *i*) if [ -r ~/.bashrc ]; then . ~/.bashrc; fi;; esac
쉘 변수에는 쉘이 대화형임을 나타내는 $-
문자가 포함되어 있습니다.i