그렇습니다, 그것은 예상되는 행동입니다.
간단히 말해서 행동은 다음과 같습니다.
- bash는 대화식 로그인 쉘로 시작했습니다.
~/.profile
- bash는 대화 형 비 로그인 셸로 시작했습니다.
~/.bashrc
자세한 내용 은 시작 파일에 대한 bash 매뉴얼을 읽으십시오 .
개인적으로, 나는이 행동이 이상하다고 생각하며 아직이 디자인 결정에 대한 합리화를 찾지 못했습니다.
용어에 대한 설명 :
- 대화 형 쉘은 당신이, 당신이 그것을에 명령을 입력 할 수있는 수단을 상호 작용할 수있는 쉘입니다. 사용할 대부분의 쉘은 대화식 쉘입니다.
- 비 대화 형 쉘은 쉘되어있는 당신은 상호 작용할 수 없습니다. 쉘 스크립트는 비 대화식 쉘 내에서 실행됩니다.
- 로그인 쉘은 당신이 당신의 시스템에 로그인 할 때 시작되는 쉘입니다.
- 비 로그인 쉘은 로그인 프로세스 후에 시작되는 쉘입니다.
표시되는 대부분의 셸은 대화 형 비 로그인 셸 입니다. gnome이 "로그인 쉘"이기 때문에 gnome과 같은 그래픽 환경을 실행하는 경우 특히 그렇습니다. gnome 내부에서 시작된 모든 bash 세션은 비 로그인 쉘입니다. 실제 대화 형 로그인 셸을 보려면 가상 콘솔 (을 사용하여 Ctrl+Alt+F1
)로 이동 한 다음 사용자 이름과 비밀번호를 사용하여 로그인하십시오. 그것은 실제 대화식 로그인 bash 쉘입니다. 을 사용하여 그래픽 쉘로 돌아갈 수 있습니다 Ctrl+Alt+F7
.
--login
로그인 한 후에도 bash가 로그인 쉘인 것처럼 동작하도록 하는 옵션 이 있습니다. gnome-terminal을 로그인 쉘로 시작하도록 구성하면 --login
옵션을 사용하여 bash를 시작할 수 있습니다.
일반적으로 bash는 항상 ~/.bashrc
대화식 쉘에서 읽 습니다. 내가 추천하는 방법은 다음과 같습니다.
~/.bash_profile
파일을 작성 하십시오. bash가 로그인 쉘로 시작된 경우을 찾기 ~/.bash_profile
전에 먼저 찾습니다 ~/.profile
. bash가 발견되면 ~/.bash_profile
읽지 않습니다 ~/.profile
.
다음 줄을 넣으십시오 ~/.bash_profile
.
[ -f "$HOME/.profile" ] && source "$HOME/.profile"
[ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"
bash가 대화식 로그인 쉘로 시작되면 다음 파일을 읽습니다.
~/.bash_profile
~/.profile
~/.bashrc
bash가 대화 형 비 로그인 셸로 시작된 경우 :
~/.bashrc
당신은 bash에 특정한 ~/.bashrc
것들과 bash에 특정한 것들을 넣어야한다 ~/.profile
. 예를 들어 PATH
간다 ~/.profile
하고 HISTCONTROL
간다 ~/.bashrc
.
참고 ~/.profile
bash는 특정하지 않습니다. 다른 텍스트 기반 쉘 (예 : sh 또는 ksh) 및 그래픽 쉘 (gnome)도 읽습니다 ~/.profile
. 그렇기 때문에 bash 전용 항목을 넣지 않아야합니다 ~/.profile
.