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


25

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

alias myserver='ssh davidfaux@davidfaux.com'

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

-bash: myserver: command not found

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

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


3
이 의견 은 그 이유를 설명합니다. 그 질문은 그것을 고치는 방법을 알려줍니다.
ughoavgfhw 2014 년

고마워요! 셸을 시작하면 해당 파일이 순서대로 실행된다는 것을 몰랐습니다. 사실, 추가 . .bashrc.bash_profile작동합니다.
David Faux

@ughoavgfhw 당신은 당신의 의견을 답변으로 바꿀 수 있습니까? 그렇게하면 답으로 표시 될 수 있습니다.
soxman

답변:


25

간단히 말해서, 별명을 잘못된 파일에 넣는 것이므로 .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 섹션 아래를보십시오.


작업을 수행하려면 재부팅해야합니까? source ~/.bashrc.bash_profile에 추가 했지만 여전히 같은 문제에 직면하고 있습니다.
Michiel

1
대부분의 경우 변경 사항을 적용하기 위해 새 터미널 창을 열 필요는 없으며 변경 사항은 새로 열린 창에서만 적용됩니다.
MrDaniel

11

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

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

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

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


이것은 다른 답변에 언급되어 있습니다-왜 이런 것들에 대해 확신하지 못합니까?
user151019

Apple.stackexchange.com/q/12993/22003 과 비슷한 질문을 읽고 개선 사항 을 추가하십시오.
dan

@danielAzuelos 잠깐만; 다른 페이지에 댓글을 달거나 다른 질문에 따라 답변을 업데이트 하시겠습니까?
Dylan

@ Mark 나는 누군가의 터미널 프로세스가 .profile을 소싱하지 못하는 경우와 같은 매우 가설적인 생각을하고 있었습니까? 터미널은 처음부터 시작되지 않았지만 여전히 가능합니다. ... 누군가가 / usr / bin / login 또는 다른 곳에서 해킹하는 것처럼 가능합니다.
Dylan

→ Dylan : apple.stackexchange.com/q/12993/22003 과 비슷한 질문을 읽으면 "아마도?"에 대한 답변을 찾을 수 있습니다.
dan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.