"/ bin / login을 사용하여 / bin / login을 사용하여 대화식 로그인 쉘이 시작되면 / etc / passwd 파일을 읽습니다.이 쉘 호출은 일반적으로 시작시 / etc / profile 및 그에 해당하는 ~ / .bash_profile을 읽습니다.
대화식 비 로그인 셸은 일반적으로 셸 프로그램 (예 : [prompt] $ / bin / bash) 또는 / bin / su 명령을 사용하여 명령 줄에서 시작됩니다. 대화식 비 로그인 셸은 그래픽 환경 내에서 xterm 또는 konsole과 같은 터미널 프로그램으로 시작됩니다. 이 유형의 쉘 호출은 일반적으로 상위 환경을 복사 한 후 추가 시작 구성 지시 사항에 대한 사용자의 ~ / .bashrc 파일을 읽습니다. "
http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
따라서 환경 변수는 일반적인 규칙에 위배 될뿐 아니라 그래픽 데스크탑 환경에서 터미널을 호출 할 때 bashrc 변수를 놓치게됩니다.
Redhat에서 /etc/profile
나는이 의견을 찾았습니다.
"시스템 전체 별명 및 기능은 / etc / bashrc에 있어야합니다. 개인 환경 변수 및 시작 프로그램은 ~ / .bash_profile로 이동해야합니다. 개인 별명 및 기능은 ~ / .bashrc로 이동해야합니다."
따라서 사용자별로 환경 변수를 설정하려면 사용자의 .bash_profile 파일에서 환경 변수를 설정하십시오.
받는 향하는 .bash_profile
내가 읽은 :
"개인 환경 변수 및 시작 프로그램.
개인 별명 및 기능은 ~ / .bashrc에 있어야합니다. 시스템 전체 환경 변수 및 시작 프로그램은 / etc / profile에 있습니다. 시스템 전체 별명 및 기능은 / etc / bashrc에 있습니다. "
결론
예를 들어 /에 루트로만 존재하는 프로그램을 보려면 sbin
루트 .bash_profile
파일에 해당 경로를 추가 하십시오. 당신이보고 모든 사용자를 원한다면 내가 둘 것입니다 귀하의 상자에 특정 어떤 루트 프로그램을 설치 /sbin
로 /etc/.profile
. 이제 모든 사용자는 탭 완성을 사용하여 루트 특정 프로그램을 찾고 필요한 경우 권한을 높일 수 있습니다.
특수 사례 : SSH
명령 줄에서 ssh를 시작하면 대화식 로그인 셸이 시작됩니다. 그러나이 경우 /etc/profile
읽을 수 없습니다. .bash_profile
각 사용자 의 파일 에서 환경 변수를 정의하면 ssh로 작업했습니다.
~/.profile
또 다른 유효한 옵션입니다