.bashrc 별칭을 적용하려면 소스 명령을 실행해야 하는 이유는 무엇입니까?

.bashrc 별칭을 적용하려면 소스 명령을 실행해야 하는 이유는 무엇입니까?

source명령이 현재 셸에서 프로그램을 실행한다는 것을 이해하지만 source .bashrc.bashrc 파일을 "다시 로드"하기 위해 실행해야 하는 이유를 잘 이해하지 못합니다.

제가 이해한 바로는 .bashrc에 별칭을 추가하여 스크립트를 실행하지 않고 source .bashrc파일을 "다시 로드"하기만 하면 됩니다.

자동으로 다시 로드되지 않는 이유는 무엇입니까?

아마도 뭔가 빠졌을 것입니다.

내부적으로는 어떻게 작동하나요? source로그인하지 않고도 새 별칭을 작동하려면 이 파일이 필요한 이유는 무엇입니까 ?

답변1

.bashrcbash가 시작될 때 한 번만 읽혀집니다. 이는 의도적으로 그렇습니다(항상 그랬습니다). 이후에 을 변경하면 을( 를 ) 다시 읽을 때 .bashrc까지 적용되지 않습니다 . 을 .bashrc실행하면 source .bashrc정확히 다음과 같이 됩니다. bash에게 해당 파일을 다시 읽도록 지시합니다.

물론 bash의 새 복사본을 시작할 수도 있습니다(예: 새 터미널 세션 시작). 이렇게 하면 새 bash 프로세스가 파일을 .bashrc다시 읽게 됩니다(그러나 이전 세션에서는 변경 사항이 없습니다).

그런데. .bashrc파일~이다스크립트를 작성하고 이를 소싱하여 해당 파일에 있는 명령을 실행합니다. 명령은 귀하의 경우 별칭을 정의하지만 해당 파일에는 사실상 모든 명령이 있을 수 있습니다.

관련 정보