명령 줄에서 .bash_profile을 다시로드하는 방법은 무엇입니까?


995

명령 줄.bash_profile 에서 어떻게 다시로드 할 수 있습니까?

.bash_profile종료하고 다시 로그인 하여 셸이 변경 사항을 인식 하도록 할 수 있지만 요청시 수행 할 수 있기를 원합니다.

답변:


1881

간단히 입력 source ~/.bash_profile

또는 키 입력 저장을 좋아하는 경우 다음을 입력 할 수 있습니다. . ~/.bash_profile


49
어때요 alias BASHRELOAD=". ~/.bash_profile"? 이 작업을 자주 수행하면 별칭을로 지정할 수 있습니다 br.
bobobobo

1
매번 세션 / 세션 마다이 작업을 수행 해야하는 이유는 무엇입니까? 편집기에서 파일을 열 때 .bash_profile에 대한 변경 사항이 파일에있는 경우에도 지속되도록 변경할 수 없습니다. 혼란스러운.
erwinheiser

3
@erwinheiser 시스템이 파일을로드하고 있습니까? 일부 시스템은 ~ / .bashrc와 같은 다른 파일을 사용합니다.
Graham P Heath

1
로드에 문제가 있는지 알고 싶다면 다음을 사용할 수 있습니다.alias reload='source ~/.bash_profile && echo "File .bash_profile reloaded correctly" || echo "Syntax error, could not import the file"';
Cristian Batista

1
OhMyZsh로 전환 한 것을 잊어 버린 사람들을 위해. ~ / .zshrc를 실행하고 .bash_profile 대신에 변경하십시오.
Sankofa

106
. ~/.bash_profile

현재 상태에 대한 종속성이 없는지 확인하십시오.


15
왜 이것이 작동합니까? 즉, .이 경우 명령은 무엇 입니까?
Jonah

9
도트 연산자 :.source명령 의 별명입니다 .
Graham P Heath

8
@GrahamPHeath-엄밀히 말하면 다른 방법이라고 생각합니다. 는 .보다 오래 source입니다.
Carl Norum

4
source의 배쉬 특정 구현.
Thirupathi Thangavel

7
@StasS - .과는 source문자 그대로 떠들썩한 파티에서 같은 일이다. 링크에서 : " bash에서 source도트 / 마침표 ' .' 의 동의어 이지만 POSIX sh에서는 그렇지 않으므로 호환성을 극대화하려면 마침표를 사용하십시오."
Carl Norum

31

간단히 입력하십시오 :

. ~/.bash_profile

그러나 터미널을 열 때마다 실행하지 않고 터미널이 시작될 때 자동으로 실행되도록 . ~/.bash_profile하려면 ~/.bashrc파일에 추가 할 수 있습니다 .

노트 :

터미널을 열면 터미널은 (비 로그인) 대화식 모드에서 bash를 시작합니다 ~/.bashrc.

~/.bash_profile대화식 로그인 모드 에서 시작될 때만 bash가 제공 합니다 . 일반적으로 콘솔 ( Ctrl+ Alt+ F1.. F6) 에서 로그인하거나을 통해 연결 하는 경우에만 해당됩니다 ssh.


15

이 명령을 사용하여 해당 사용자의 ~ / .bash_profile을 다시로드 할 수도 있습니다. 대시를 사용하십시오.

su - username

6
이것은 이상적인 쉘과는 달리 쉘 내의 전체 쉘을 호출합니다. 다른 옵션은 단순히 관련 파일을 다시 실행합니다. 즉, (A) 실제로 묻는 질문과 관련이 있으며 (B) 껍질을 쌓지 말아야하며 (env vars 등)해서는 안되는 다른 것들을 다시로드 할 수 있습니다. 이 있습니다 (중첩없이) 무조건적인 현재 쉘을 대체 할 적절한 방법이 있지만,이 주제는 오프이기 때문에, 나는 다른 곳에서 검색 할 관심있는 독자를 떠날거야.
underscore_d

3
다른 쉘을 여는 중입니다. 새 터미널을 열거 나 다시 기록 할 수도있는 새로 고침이 아닙니다
Juan Diego


11
  1. .bash_profile 파일 저장
  2. 입력하여 사용자의 홈 디렉토리로 이동 cd
  3. 로 프로필을 새로 고침 . .bash_profile

8
로 집에 가십시오 cd. 필요 없습니다 ~.
roNn23

8
필요 없음 cd– 현재있는 디렉토리에서 다시로드 할 수 있습니다.. ~/.bash_profile
Alex Villa

10

현재 쉘 터미널의 이력을 잃어 버릴 염려가 없다면

bash -l

그것은 당신의 껍질을 포크하고 bash의 다른 자식 프로세스를 엽니 다. 이 -l매개 변수는 bash에게 로그인 쉘로 실행하도록 지시합니다. .bash_profile은 비 로그인 쉘로 실행되지 않기 때문에 필요합니다. 합니다.

현재 쉘을 완전히 교체하려면 다음을 수행하십시오.

exec bash -l

위의 내용은 현재 쉘을 포크하지 않고 완전히 교체하므로 입력 exit하면 이전 쉘로 넘어 가지 않고 완전히 종료됩니다.


당신은 당신이 iterm2를 사용하는 경우 귀하의 역사를 풀어 실 거예요
Xitcod13

4

alias bashs="source ~/.bash_profile"bash 파일에 추가 하십시오. bashs다음에 전화 할 수 있도록


1
나는 reset기억하기 쉽다
jcollum

3

.bash_profile이 존재하지 않으면 다음 명령을 실행하십시오.

. ~/.bashrc 

또는

 source ~/.bashrc

.bash_profile 대신. bashrc 에 대한 자세한 정보를 찾을 수 있습니다


3

사용 source ~/.bash_profile하거나 위에서 언급 한 답변이 작동 하는 빠른 답변을 게시하고 싶었습니다. 이것은보고있는 현재 탭이나 세션에서 bash 프로필 만 다시로드한다는 것입니다. 모든 탭 / 쉘에서 bash 프로파일을 다시로드하려면 각각에이 명령을 수동으로 입력해야합니다.

당신이 사용하는 경우 사용하여 ITerm을, 당신은 사용할 수 있습니다 CMD⌘+ Shift+ I현재의 모든 탭에 명령을 입력합니다 . 터미널의 경우이 문제 를 참조하는 것이 유용 할 수 있습니다 .



2

데비안을 사용하는데 exec bash이것을 입력 하기 만하면 됩니다. 다른 모든 배포판에서 작동하는지 말할 수 없습니다.


2
Mac에서는 작동하지 않습니다 (적어도 내가 사용하고있는 버전에서는
-Sierra

@Ulukai . .bash_profile는 Mac의 홈 디렉토리에 입력 하는 동안 분명히 입력 하면 작업을 수행합니다. 7urkm3n의 답변과 동일합니다.
Cassandra

2
alias reload!=". ~/.bash_profile"

또는 함수를 통해 로그를 추가하려는 경우

function reload! () {
    echo "Reloading bash profile...!"
    source ~/.bash_profile
    echo "Reloaded!!!"
}

아니요, 선호도에 따라 다릅니다. 상태를 보여주는 여분의 인쇄 라인을 추가하고 싶거나 단순히 이동 . ~/. bash_profile 하지 source ~/.bash_profile
않으려면

1

Sierra를 실행 중이며 잠시 동안이 작업을 수행했습니다 (모든 권장 솔루션 시도). 나는 혼란스러워 결국 컴퓨터를 다시 시작하려고했습니다! 그것은 효과가 있었다

내 결론은 때로는 하드 리셋이 필요하다는 것입니다


1
Mike는 모든 것이 새로로드되기 때문에 하드 리셋이 작동합니다. 변경 사항이 적용되는 한 다음 부팅시 적용됩니다. 그러나 항상 bash를 새로 고칠 수있는 명령 / 방법을 찾기 위해 조금 파고 들기가 더 쉬울 것입니다. 재부팅없이이를 달성 할 수있는 방법이있을 것입니다. 물론 최신 변경 사항이 제대로 작동하는지보기에는 너무 많은 시간이 소요됩니다! 아마도 osxdaily.com/2016/06/07/…
Cassandra

1
예, bash 프로파일 / 경로를 다시로드하기 위해 약어 및 전체 명령을 모두 시도했습니다. 작동하지 않고 로그 아웃했다가 다시 작동했습니다. 이상하다
Bjorks 1 번 팬
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.