~/.bash_profile에 ~/.profile을 추가하는 이유는 무엇입니까?

~/.bash_profile에 ~/.profile을 추가하는 이유는 무엇입니까?

설치시우심실 VM다음 메시지를 받았습니다:

* WARNING: You have '~/.profile' file, you might want to load it,
  to do that add the following line to '/home/dotancohen/.bash_profile':

    source ~/.profile

xmodmap ~/.Xmodmap내 ~/.profile 파일에 새 셸을 열 때마다(CapsLock 및 ESC 키 교체) 실행하고 싶지 않은 파일이 포함되어 있기 때문에 걱정됩니다 .

현명한 RVM 개발자가 .profile구매를 권장하는 이유는 무엇입니까 .bash_profile?

답변1

.profile.bash_profile실행 시간 측면에서는 동일합니다. 즉, 로그인할 때 실행됩니다. 차이점은 Bash만 실행된다는 것입니다 .bash_profile. Bourne 스타일 쉘(dash, ksh 등)은 실행됩니다 .profile. 존재하지 .profile않으면 .bash_profileBash 자체가 실행됩니다.

bash를 로그인 셸로 사용하더라도 .profile일반적으로 그래픽 모드로 로그인할 때 실행되는 셸입니다. 많은 배포판 sh에는 X 세션 시작 스크립트가 .profile.

따라서 환경 변수 정의 등의 작업을 수행하는 .profile대신 사용하는 것이 좋습니다 . .bash_profilebash 특정 기능이 절대적으로 필요한 경우가 아니라면 모든 것을 에 넣으십시오 .profile. 그러나 그렇게 하더라도 를 유지해야 하는 이유가 있습니다 .bash_profile. 즉, bash가 이를 로드할 때 .bashrc대화형이더라도 로드되지 않습니다. 따라서 대부분의 사람들은 ~/.bash_profile다음 두 줄로 구성되어야 합니다.

. ~/.profile
case  $- in *i*) . ~/.bashrc;; esac

xmodmap도망 치면 안 돼요 .profile. 새 셸을 열 때는 이런 일이 발생하지 않지만, 예를 들어 X11 전달과 함께 SSH를 사용하여 원격으로 로그인하는 경우에는 발생합니다. 불행하게도 그래픽 모드로 로그인하면 표준 파일이 로드되지 않습니다. 데비안 로드 ~/.xsessionrc(Gdm 로드를 제외한 모든 디스플레이 관리자에 적용되는 것 같습니다 ~/.xprofile). 다른 배포판에는 다른 설정이 있습니다. 배포판 간 이식성이 필요한 경우 xmodmap시작 시 실행되도록 데스크톱 환경을 구성하는 것이 더 쉬울 수 있습니다. CapsLock과 Ctrl을 바꾸는 것이 전부라면 대부분의 최신 데스크탑 환경에서 제공되는 인터페이스의 XKB 설정을 사용하여 이를 수행할 수 있습니다.

답변2

.bash_profilebash(1)는 를 읽는 유일한 셸이고 , 다른 Bourne 셸 파생 프로그램은 만 읽는다는 점을 명심하세요 .profile. 가끔 다른 쉘을 사용한다면 .profile.

관련 정보