매번 .profile을 검색하거나 재부팅하지 않고도 .profile을 변경하고 설정을 적용하려면 어떻게 해야 합니까?

매번 .profile을 검색하거나 재부팅하지 않고도 .profile을 변경하고 설정을 적용하려면 어떻게 해야 합니까?

Mac이나 Ubuntu의 경우 다음 경로를 추가해야 하는 경우가 있습니다 PATH.

https://stackoverflow.com/questions/33725639/npm-install-g-less-does-not-work-eacces-permission-denied

# add the following to ~/.profile 
export PATH=~/.npm-global/bin:$PATH

그러나 우리는 계속해서 사용해야 합니다.

source ~/.profile

머신을 다시 시작하지 않으면 새 Bash 창에 나타납니다. PATH해당 줄을 에 넣을 수 있지만 해당 설정을 .bashrc다음 에 넣어야 한다고 합니다 .PATH.profilehttps://superuser.com/questions/183870/difference-Between-bashrc-and-bash-profile

따라서 여기에 약간의 딜레마가 있습니다. 재부팅하지 않으면 모든 Bash 셸에서 해당 경로를 가질 수 없습니다. 그러나 우리 컴퓨터에서 실행 중인 응용 프로그램이 많기 때문에 재부팅하지 못할 수도 있고 재부팅하고 다시 시도하는 데에도 시간이 많이 걸립니다.

모든 Bash 셸에 변경 내용을 적용하지만 컴퓨터를 다시 시작할 필요는 없는 방법이 있나요?

답변1

파일이 없으면 쉘은 ~/.profile파일을 읽고 로그인 쉘이 됩니다. 시작 시 대화형 비로그인 셸을 읽습니다.bash~/.bash_profilebash~/.bashrc

~/.bash_profilelet (또는 ~/.profile) source 를 사용하는 것이 일반적입니다 . 특히 ~/.bashrc활성 사용 중인 유일한 셸을 읽는 시스템에서는 더욱 그렇습니다(일부 셸이 아닌 다른 셸에서도 읽게 하면 read는 여러 다른 셸을 활발히 사용 중인 경우 문제를 일으킬 수 있습니다).bash~/.profilebash~/.bashrc

이미 실행 중인 세션에서 이러한 파일을 가져오지 않으려면 bash변수 값에 요소를 추가하면 됩니다 PATH. 이 요소는 셸의 명령줄에서 직접 실행할 수 있습니다.

PATH=$HOME/.npm-global/bin:$PATH

( export여기서 사용하고 시작 파일에 추가하는 것은 중복됩니다. PATH명시적으로 사용하지 않는 한 변수는 이미 환경 변수이기 때문입니다 unset.)

방금 수정한 셸 초기화 파일을 가져오는 것 외에는 이미 활성화된 셸 세션에서 변수 값을 수정할 수 있는 방법이 없습니다 PATH(그렇게 하면 다양한 작업을 수행할 수도 있으므로 이를 피하고 싶은 것은 이해할 수 있습니다).다른물건).

(다시 시작하는 대신) 셸을 다시 시작해도 작동합니다. 특히 셸을 로그인 셸로 시작하는 경우(기본적으로 로그인 셸이 아닌 경우 macOS에서와 같이 터미널 에뮬레이터가 셸을 로그인 셸로 시작하도록 할 수 있음) ).

답변2

PATH 추가를 포함하면 $HOME/.bash_profile
Bash를 시작할 때 모든 Bash 인스턴스에서 실행됩니다...

자세한 내용은:
man bashBash 프롬프트에 입력한
다음 특정 부분(
and /INVOCATION) 을 찾으십시오 ENTER.

답변3

쉘이 나타날 때마다 .bashrc를 가져오거나 원하는 작업을 수행할 수 있도록 PS1에 넣을 수 있다고 생각합니다.

스마트 확인이 필요합니다. .bashrc의 타임스탬프를 변수에 넣는 행을 .bashrc에 추가할 수도 있습니다. 그런 다음 PS1 명령이 파일을 업데이트했는지 확인할 수 있습니다.

두 번째 부분은 더 까다로울 수 있습니다. 항상 PATH 변수에 더 많은 것을 추가하면 각 업데이트마다 무한히 커집니다. .bashrc 시작 부분에 고정 값을 설정하거나 모든 구성 요소가 추가된 후 끝 부분에서 중복 항목을 필터링하세요.

이것에 대해 더 생각할 시간은 없었지만 그것이 효과가 있는지 알아보고 싶습니다. :-)

관련 정보