Bash가 Linux의 새 세션에서 ‘.profile’을로드하지 않습니다 설정하고 .profile있는데 새 터미널 세션을

IT 부서에서 얻은 새로운 Linux 컴퓨터를 설정하고 .profile있는데 새 터미널 세션을 시작할 때로드되지 않는 것으로 나타났습니다 . 현재 쉘은 배쉬 내가 기본에서 변경했지만, 가 함께했다. .profile시작시 어떻게 로드 합니까?

나는 통해 쉘에 액세스 SSH : ssh myusername@remotemachine. 관리자 권한이 있습니다.



답변

Bash가 대화식 로그인 셸로 시작할 때 처리 할 있는 파일 중 하나 는 ~/.profile입니다.

대화 형 비 로그인 셸로 시작할 때는 그렇지 않습니다. 그것은 처리 /etc/bash.bashrc하고 (해당 파일 또는 유사한 파일이 배시의 버전을 사용하는 경우) ~/.bashrc.

다음을 추가 할 수 있습니다 ~/.bashrc(그러나 루프 또는 값이 실수로 변경되지 않도록주의 하십시오 ).

. $HOME/.profile


답변

쉘을 시작하는 방법에 따라 다릅니다. 다른 사람들이 말했듯이 로그인 쉘은 프로파일을로드합니다 (먼저 .bash_profile을 찾은 다음 .profile을 시도합니다). 이 중 하나를 찾으면로드합니다. 비 로그인 쉘 (대화식 또는 비 대화식)은 .bashrc를 소스로합니다.

모든 것을 .bashrc에 넣는 것이 좋습니다. tty는 단순한 장치 이름이 아니고 실제 TeleType을 의미했을 때 .profile / .bashrc 스플릿은 일종의 임의적이며 유닉스 시절에 더 의미가 있습니다. 서버에 대한 ‘메인’로그인에서 메일을 확인하는 것과 같은 특정 작업을 시작하고 다른 쉘의 일반적인 설정 작업을 시작했습니다. 대부분의 Linux에서 지금 로그인하게되면 일부 그래픽 인터페이스 (KDE, gnome, CDE ‘shudder’)에 로그인 할 때 실제로 쉘에 로그인하지 않습니다. 세션 관리자가 “스폰 로그인 프로세스”를 처리합니다. 지금은 덜 관련이 있습니다.

내 제안 : .profile을 전적으로 구성하십시오.

[ -f $HOME/.bashrc ] && . $HOME/.bashrc

.bashrc의 첫 번째 줄로, bash 스크립트를 실행할 때 발생하는 이상한 일을 조기에 피하십시오.

[[ $- != *i* ]] && return


답변