.bash_profile
터미널을 그래픽으로 시작할 때 내 파일을 시작 하려면 어떤 파일을 편집해야 하는지 알고 싶습니다 .
저는 다음 운영 체제와 기본 MATE 터미널이 포함된 AWS 작업 공간을 사용하고 있습니다.
$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
그 안에는 많은 파일이 있습니다 ~/etc
:
bashrc
profile
/profile.d
#lots of .sh
하지만 내 /home/<usr>
디렉토리에는 다음이 있습니다.
.bashrc
.bash_profile
^ 이 bash_profile 파일을 만들었고 터미널을 그래픽으로 실행하고 다음을 수행하면 작동합니다.$ source ~/.bash_profile
요청된 편집:
이것이 제가 입력하는 것입니다. .bash_profile
각 줄의 명령 프롬프트에 색상을 지정하고 타임스탬프를 추가하고 활성화된 virtualenv를 언급합니다. 나는 그것을 바란다
# in order to be able to change the color of venv prompt
#
function virtualenv_info(){
# Get Virtual Env
if [[ -n "$VIRTUAL_ENV" ]]; then
# Strip out the path and just leave the env name
venv="${VIRTUAL_ENV##*/}"
else
# In case you don't have one activated
venv=''
fi
[[ -n "$venv" ]] && echo "(pvenv:$venv) "
}
# disable the default virtualenv prompt change
export VIRTUAL_ENV_DISABLE_PROMPT=1
VENV="\$(virtualenv_info)";
#
git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/<b:\1>/'
}
# set the prompt color
# color starts with `\e[36m` and is closed with `\e[0m`
export PS1="\e[36m[\t] \e[38;5;203m${VENV}\e[38;5;78m\$(git_branch) \e[38;5;179m\w \e[0m☯ "
해결책기본 MATE 터미널 애플리케이션에서 이 상자를 선택합니다.
답변1
이를 위해 구성 파일을 사용하지 마십시오. 대신에 변경 사항을 ~/.bashrc
.
따라서 수정 사항을 삭제 ~/.profile
하고 ~/.bashrc
. 어떤 상황에서 어떤 파일을 읽는지에 대한 자세한 내용은 자매 사이트인 Ask Ubuntu에서 다음 답변을 참조하세요.
답변2
이는 그래픽 환경(LXDM, XFCE, KDE 등)에 따라 다릅니다. 그들 중 일부는 출처가 없습니다 ~/.bash_profile
.
사용해야 할 이유가 있는 경우(예: 호환성 이유) 시스템에 설치할 수 있습니다 ( 기본 셸로 ~/.bashrc
사용할 것이라는 기대와 함께 ).bash
echo "source ~/.bash_profile" >> ~/.bashrc
이 접근 방식에는 몇 가지 단점이 있습니다.
- 대화형 로그인 셸을 통해서만 얻을 수 있습니다.
- 다른 그래픽 프로그램은 동일한 환경을 갖지 않습니다.
귀하의 설정에 적합한 것을 사용하는 것이 좋습니다.
- 사용
/etc/profile
- 이것은 글로벌합니다.
- 모든 사용자에게 영향을 미칩니다.
- 단점: 아주 일찍 획득하기 때문에 더 쉽게 재정의할 수 있습니다(그러나 실제로는 이런 일을 경험한 적이 없습니다. 그러나 일부 데스크탑 환경이나 유사한 환경은 고유한 환경을 설정하고 재정의합니다.오래된).
데스크탑 환경의 동작을 확인하십시오. 예를 들어 LXDM은 (대신
~/.bash_profile
) 다음을 얻습니다./etc/profile ~/.profile /etc/xprofile ~/.xprofile
인용하다:
- .bashrc, .bash_profile 및 .environment의 차이점은 무엇입니까?
- @terdon이 연결한 훌륭한 상황별 정보:/etc/profile.d의 스크립트가 무시됩니까?
편집하다:
귀하의 편집에 대한 응답: 예상대로 컴패니언은 ~/bash_profile
기본적으로 소스를 제공하지 않습니다.
디자인 결정에 관한 것입니다(최근 댓글에서 이에 대해 질문하셨기 때문입니다). 일반적으로 etc.에서는 환경 변수만 설정하는데 ~/.bash_profile
왜 /etc/profile
스크립트를 ~/.bashrc
.
당신이하고있는 일은 매우 쉘에 따라 다릅니다. .~/.bashrc
둘 이상의 셸을 사용하는 경우 이를 다른 파일로 분할할 수 있습니다. 예를 들어, VIRTUAL_ENV_DISABLE_PROMPT
내부 환경 파일(예: )을 정의하면 /etc/profile
이 함수를 사용하여 새 bash 스크립트를 생성하고 virtualenv_info()
필요한 쉘 환경에서만 스크립트를 가져옵니다. 이것은 깨끗한 솔루션이 될 수 있지만 전체 스크립트를 ~/.bashrc
.