/etc/bash.bashrc는 언제 호출됩니까?

/etc/bash.bashrc는 언제 호출됩니까?

이 파일이 정확히 무엇인가요?문서그것에 대한 언급이 없습니다. 그리고 자동으로 실행되어서는 안 됩니다( 4.32014년 2월 2일 버전).

대화형 로그인 셸로 호출되거나 --login을 사용하여 호출됩니다.

Bash가 --login 옵션을 사용하여 대화형 로그인 셸 또는 비대화형 셸로 호출되면 먼저 /etc/profile 파일(파일이 있는 경우)에서 명령을 읽고 실행합니다. 파일을 읽은 후 ~/.bash_profile, ~/.bash_login, ~/.profile을 순서대로 찾아 존재하고 읽을 수 있는 첫 번째 파일부터 명령을 읽고 실행합니다. 이 동작은 셸을 시작할 때 --noprofile 옵션을 사용하여 비활성화할 수 있습니다.

로그인 쉘이 종료되면 Bash는 ~/.bash_logout 파일(존재하는 경우)에서 명령을 읽고 실행합니다.

대화형 비로그인 셸로 호출됨

로그인 쉘이 아닌 대화형 쉘을 시작할 때 Bash는 파일이 존재하는 경우 ~/.bashrc에서 명령을 읽고 실행합니다. --norc 옵션을 사용하여 이를 비활성화할 수 있습니다. --rcfile file 옵션은 Bash가 ~/.bashrc 대신 파일에서 명령을 읽고 실행하도록 강제합니다.

따라서 일반적으로 ~/.bash_profile에는 다음 줄이 포함됩니다.

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

로그인별 초기화 후(또는 전)입니다.

비대화형 통화

Bash가 비대화식으로 시작되면, 예를 들어 쉘 스크립트를 실행하기 위해 환경에서 BASH_ENV 변수를 찾아 그 값이 나타나면 확장하고, 확장된 값을 파일로 사용하여 읽고 실행하는 이름입니다. Bash는 다음 명령이 실행된 것처럼 동작합니다.

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi

그러나 PATH 변수의 값은 파일 이름을 검색하는 데 사용되지 않습니다.

위에서 언급했듯이 --login 옵션을 사용하여 비대화형 셸을 호출하면 Bash는 로그인 셸 시작 파일에서 명령을 읽고 실행하려고 시도합니다.

답변1

데비안에서bash README:

  1. 무엇인가요 /etc/bash.bashrc? 기록이 없는 것 같습니다.

데비안 버전의 bash는 대화형 비로그인 셸 이전에 읽을 수 있는 특수 옵션( )으로 -DSYS_BASHRC컴파일 됩니다. bash따라서 데비안 시스템에서는 to가 to입니다./etc/bash.bashrc~/.bashrc/etc/bash.bashrc~/.bashrc/etc/profile~/.bash_profile

답변2

기술적으로 /etc/bash.bashrc모든 사용자를 위한 대화형 비로그인 bash 쉘 호출입니다.

그러나 일반적으로 호출됩니다 /etc/profile(모든 로그인 쉘에 대해 호출됨) /etc/bash.bashrc. 따라서 /etc/bash.bashrc모든 로그인 쉘도 이 메소드를 호출합니다.

그러나 첫 번째 줄은 일반적으로 종료를 확인합니다(비대화형인 경우).

따라서 결국 /etc/bash.bashrc모든 대화형 bash 쉘(로그인 및 비로그인)이 효과적으로 실행됩니다. 시스템 전체로 취급~/.bashrc

답변3

에서 man bash:

로그인 쉘이 아닌 대화형 쉘을 시작할 때 bash는 /etc/bash.bashrc 및 ~/.bashrc 파일이 존재하는 경우 해당 명령을 읽고 실행합니다. --norc 옵션을 사용하여 이를 비활성화할 수 있습니다. --rcfile file 옵션은 bash가 /etc/bash.bashrc 및 ~/.bashrc 대신 파일에서 명령을 읽고 실행하도록 강제합니다.

참조한 문서가 최신 상태가 아닌 것 같습니다.

관련 정보