별칭을 사용하려면 터미널을 열 때마다 왜 .bashrc를 제공해야합니까? [복제]

이 줄을 ~/.bashrc파일에 추가했습니다 .

alias myserver='ssh davidfaux@davidfaux.com'

그러나 터미널을 열고 실행 myserver하면 터미널이

-bash: myserver: command not found

그러나 .bashrc 파일을 소싱하면 ( . .bashrc) 별칭이 작동합니다.

그럼에도 불구하고 별명을 사용하기 위해 터미널을 열 때마다 파일을 소스하고 싶지 않습니다. 어떻게하면 되나요?



답변

간단히 말해서, 별명을 잘못된 파일에 넣는 것이므로 .bashrc새 로그인 터미널 인스턴스에서 별명이 작동하도록 소스를 계속 실행해야합니다.

.bashrc가 자동으로 실행되지 않는 이유에 대한 Chris Johnsen의 의견에서

기본적으로 터미널은 / usr / bin / login을 통해 쉘을 시작하여 쉘을 로그인 쉘로 만듭니다. 모든 플랫폼 (Mac OS X이 아닌)에서 bash는 로그인 쉘에 .bashrc를 사용하지 않습니다 (/ etc / profile 및 존재하고 읽을 수있는 .bash_profile, .bash_login, .profile 중 첫 번째 만). 이것이 바로“.bash_profile에 source ~ / .bashrc를 넣는 것”이 표준 조언 인 이유입니다.

자세한 내용은 다음 매뉴얼 페이지를 참조하십시오 bash.

man bash

그런 다음 INVOCATION 섹션 아래를보십시오.


답변

당신은 항상 넣을 수 있습니다

if [ -n "$BASH_VERSION" ] && [ -f $HOME/.bashrc ];then
    source $HOME/.bashrc
fi

파일 ~/.profile또는 ~/.bash_profileMac에 생각합니다.

죄송합니다 . .profile또는에 물건을 넣을 수 있습니다 .bash_profile.