bash
터미널에서 수동으로 실행하지 않는 한 대화형 터미널에서 소스를 가져오지 않습니다 .bashrc
.bash
$ bash
또는 수동으로 가져오세요.
$ source ./.bashrc
또는 다음을 실행하세요:
$ st -e bash
이것이 유용한 결과가 되기를 바랍니다.
$ echo $TERM
st-256color
$ echo $SHELL
/bin/sh
$ readlink /bin/sh
bash
$ shopt login_shell
login_shell off
저는 CRUX Linux 3.0을 사용하고 dwm
있으며 st
. 나는 사용해 보았지만 성공하지 못했습니다 .bash_profile
..profile
어떤 아이디어가 있나요?
답변1
.bash_profile에서 다음이 있는지 확인하십시오.
# .bash_profile
# If .bash_profile exists, bash doesn't read .profile
if [[ -f ~/.profile ]]; then
. ~/.profile
fi
# If the shell is interactive and .bashrc exists, get the aliases and functions
if [[ $- == *i* && -f ~/.bashrc ]]; then
. ~/.bashrc
fi
답변2
왜 발생합니까? 기본 쉘은 bash가 아니지만 다음과 같습니다 sh
.
$ echo $SHELL
/bin/sh
대부분의 최신 시스템에서 sh
이는 기본 쉘에 대한 기호 링크입니다. 내 데비안을 예로 들어 보겠습니다.
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Aug 1 2012 /bin/sh -> dash
귀하의 경우 아래 설명된 대로 BUT sh
에 대한 링크입니다 .bash
man bash
bash가 sh 이름으로 호출되면 POSIX 표준을 준수하면서 sh의 이전 버전의 시작 동작을 최대한 가깝게 모방하려고 시도합니다. [...] sh라는 대화형 셸로 호출되면 bash는 변수 ENV를 찾고 해당 값이 정의된 경우 확장한 다음 확장된 값을 읽고 실행할 파일 이름으로 사용합니다. ~부터sh로 호출된 쉘은 다른 시작 파일에서 명령을 읽고 실행하려고 시도하지 않습니다., --rcfile 옵션이 유효하지 않습니다.
그리고
--norc
쉘이 대화형인 경우 시스템 전체 초기화 파일 /etc/bash.bashrc 및 개인 초기화 파일 ~/.bashrc를 읽고 실행하지 마십시오. 이 옵션은 쉘이 sh로 호출되면 기본적으로 활성화됩니다.
따라서 기본 쉘은 이므로 sh
읽혀 .bashrc
지지 않습니다. .bashrc를 사용하여 기본 쉘을 bash로 설정하세요 chsh -s /bin/bash
.