.profile 및 .bashrc 새로 고침

.profile 및 .bashrc 새로 고침

내가 읽은 다양한 제안을 바탕으로 파일 과 파일을 .profile분리 했습니다. 변경 후 환경을 새로 고치고 셸을 종료했다가 다시 여는 것을 방지하는 데 사용하는 .bashrc별칭이 있습니다 . 그러나 현재 두 가지 문제가 있습니다.bin.profile.bashrc

  1. $PATH기본값을 앞에 추가하기 때문에 새로 고칠 때마다 내 값이 커집니다 $PATH.
  2. fortune새로 고칠 때가 아니라 새 셸을 시작할 때만 필요합니다 bin.

원치 않는 부작용 없이 환경을 새로 고치는 가장 정확하고 해킹적이지 않은 방법은 무엇입니까? (시스템 경로를 복사하여 .profile아니요옵션! )

.profile

# LOTS OF EXPORTS
export ***
export ***
export PATH=.:$HOME/bin:***:$PATH

shopt -s extglob
[ -n "$BASH_VERSION" ] && [ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"
fortune

.bashrc

# LOTS OF ALIASES
alias ***
alias ***
alias bin='source $HOME/.profile; set +h'

# LOTS OF FUNCTIONS
foo() {}
bar() {}

답변1

환경을 새로 고치는 가장 간단하고 쉬운 방법은 현재 셸 세션을 종료하고 새 세션을 시작하는 것입니다.


현재 셸에서 새 로그인 셸을 시작할 수도 있지만 이로 인해 환경 변수를 PATH수정하고 일부 상태로 재설정하지 않은 경우에도PATH

를 사용하여 새 셸을 시작할 수도 있습니다 . 그러면 env -i bash -l새 로그인 셸을 호출하기 env -i전에 환경이 지워집니다 . bash이는 상속된 환경이 다르기 때문에 새 터미널에서 새 셸을 시작하는 것과 다를 수도 있습니다.

답변2

인라인 테스트 사용 및 조건부 경로 내보내기 고려.bashrc

[[ $PATH =~ "$HOME/bin" ]] && export PATH="${HOME}/bin:${PATH}"

명령의 경우 로그인 쉘에서만 실행되는 명령에 추가하여 fortune로그인 시 실행되도록 할 수 있습니다. .bash_profile애플리케이션 기본 설정에서 터미널 에뮬레이터가 로그인 셸을 실행하도록 강제할 수 있습니다.

관련 정보