이 문서에서는 다음 파일이 실행되는 순서를 설명합니다.
- /etc/profile
- ~/.bash_profile
- ~/.bashrc
- ~/.bash_login
- ~/.프로필
- ~/.bash_logout
대화형 로그인 셸의 실행 순서
다음 의사 코드는 이러한 파일의 실행 순서를 설명합니다.
execute /etc/profile IF ~/.bash_profile exists THEN execute ~/.bash_profile ELSE IF ~/.bash_login exist THEN execute ~/.bash_login ELSE IF ~/.profile exist THEN execute ~/.profile END IF END IF END IF
대화형 셸에서 로그아웃할 때 실행 순서는 다음과 같습니다.
IF ~/.bash_logout exists THEN execute ~/.bash_logout END IF
/etc/bashrc는 아래와 같이 ~/.bashrc에 의해 실행됩니다.
# cat ~/.bashrc if [ -f /etc/bashrc ]; then . /etc/bashrc fi
비로그인 대화형 셸의 실행 순서
비 로그인 대화형 셸을 시작하는 동안 실행 순서는 다음과 같습니다.
IF ~/.bashrc exists THEN execute ~/.bashrc END IF
참고: 비대화형 셸이 시작되면 ENV 환경 변수를 찾고 ENV 변수에 언급된 파일 이름 값을 실행합니다.
<센터> 센터>실행 순서 테스트
실행 순서를 테스트하는 방법 중 하나는 이러한 파일에 다른 PS1 값을 추가하고 셸에 다시 로그인하여 Linux 프롬프트에서 선택한 PS1 값을 확인하는 것입니다. 또한 앞서 PS1을 사용하여 Linux 프롬프트를 기능적이고 세련되게 만드는 방법에 대해 논의했습니다.
1. /etc/profile이 실행됩니다. /etc/profile에 다음 PS1 행을 추가하고 다시 로그인하여 Linux 프롬프트가 /etc/profile 내부에 설정된 PS1 값으로 변경되는지 확인합니다.
# grep PS1 /etc/profile PS1="/etc/profile> " [Note: re-login to see the prompt change as shown below] Last login: Sat Sep 27 16:43:57 2008 from 192.168.1.2 /etc/profile>
위의 항목이 제대로 작동하려면 ~/.bash_profile에 PS1이 없는지 확인하세요.
2. ~/.bash_profile이 실행됩니다: 다음 PS1을 ~/.bash_profile, ~/.bash_login, ~/.profile 및 ~/.bashrc에 추가하십시오. Linux 프롬프트가 아래와 같이 ~/.bash_profile 안에 설정된 PS1 값으로 변경되는지 확인하려면 다시 로그인하세요.
/etc/profile> grep PS1 ~/.bash_profile export PS1="~/.bash_profile> " /etc/profile> grep PS1 ~/.bash_login export PS1="~/.bash_login> " /etc/profile> grep PS1 ~/.profile export PS1="~/.profile> " /etc/profile> grep PS1 ~/.bashrc export PS1="~/.bashrc> " [Note: Upon re-login, it executed /etc/profile first and ~/.bash_profile next. So, it took the PS1 from ~/.bash_profile as shown below. It also did not execute ~/.bash_login, as ~/.bash_profile exists] Last login: Sat Sep 27 16:48:11 2008 from 192.168.1.2 ~/.bash_profile>
3. ~/.bash_login이 실행됩니다. .bash_profile의 이름을 다른 이름으로 바꿉니다. Linux 프롬프트가 아래와 같이 ~/.bash_login 내부에 설정된 PS1 값으로 변경되는지 확인하려면 다시 로그인하세요.
~/.bash_profile> mv .bash_profile bash_profile_not_used [Note: Upon re-login, it executed /etc/profile first. Since it cannot find ~/.bash_profile, it executed ~/.bash_login] Last login: Sat Sep 27 16:50:55 2008 from 192.168.1.2 ~/bash_login>
4. ~/.profile이 실행됩니다. .bash_login의 이름을 다른 이름으로 바꿉니다. Linux 프롬프트가 아래와 같이 ~/.profile 내부에 설정된 PS1 값으로 변경되는지 확인하려면 다시 로그인하세요.
~/.bash_login> mv .bash_login bash_login_not_used [Note: Upon re-login, it executed /etc/profile first. Since it cannot find ~/.bash_profile and ~/.bash_login, it executed ~/.profile] Last login: Sat Sep 27 16:56:36 2008 from 192.168.1.2 ~/.profile>
5. ~/.bashrc는 비 로그인 셸 테스트를 위해 실행됩니다. . “ 실행 bash"는 명령 프롬프트에서 아래와 같이 .bashrc를 호출하는 또 다른 비 로그인 셸을 제공합니다.
~/.profile> bash [Note: This displays PS1 from .bashrc as shown below.] ~/.bashrc> exit exit [Note: After exiting from non-login shell, we are back to login shell] ~/.profile>
이 기사가 마음에 들면 del.icio.us에 북마크하세요. 그리고 거꾸러뜨림 .