[bash] 로그 아웃했다가 다시 로그인하지 않고 .bashrc를 어떻게 다시로드합니까?

로 변경하면 .bashrc로그 아웃했다가 다시 로그인하지 않고 어떻게 다시로드합니까?



답변

다음 명령을 입력하면됩니다.

source ~/.bashrc

또는 더 짧은 버전의 명령을 사용할 수 있습니다.

. ~/.bashrc


답변

또는 다음을 사용할 수 있습니다.

exec bash

이것은 똑같은 일을하고 기억하기 쉽습니다 (적어도 나를 위해).

exec명령은 완전히 지정된 명령 줄을 실행하여 쉘 프로세스를 대체합니다. 이 예에서는 현재 셸이 무엇이든 bash(업데이트 된 구성 파일을 사용하여) 새로운 인스턴스로 바꿉니다 .


답변

하려면 보완하고 대비 두 개의 가장 인기있는 답변을, . ~/.bashrc그리고 exec bash:

두 솔루션 모두 효과적으로 다시로드 ~/.bashrc되지만 차이점이 있습니다.

  • . ~/.bashrc또는 현재 쉘source ~/.bashrc보존 합니다 .

    • ~/.bashrc현재 쉘로 다시로드하는 수정 ( 소싱 )을 제외하고 환경 변수, 쉘 변수, 쉘 옵션, 쉘 기능 및 명령 히스토리를 포함 하여 현재 쉘 및 해당 상태보존 됩니다.
  • exec bash또는보다 견고하게 exec "$BASH"[1]현재 쉘 을 새 인스턴스로 교체 하므로 현재 쉘의 환경 변수 (임시 정의한 변수 포함) 보존합니다 .

    • 즉, 쉘 변수, 쉘 기능, 쉘 옵션, 명령 히스토리 측면에서 현재 쉘에 대한 임시 변경 사항이 유실됩니다.

필요에 따라 하나 또는 다른 방법이 선호 될 수 있습니다.


[1] exec bash은 이론적으로 현재 셸을 시작한 것과 다른 bash 실행 파일을 실행할 수 $PATH있습니다. 특수 변수 $BASH에는 항상 현재 셸을 시작한 실행 파일의 전체 경로가 포함 exec "$BASH"되므로 동일한 실행 파일 을 사용해야합니다 .
메모 재 "..."주위 $BASH: 그대로 변수 값 배시에 의해 해석하지 않고, 사용되는 것을 보장을 이중 인용; 값에 공백이나 다른 셸 메타 문자가없는 경우 (이 경우에는 해당되지 않음) 큰 따옴표가 필요하지 않지만이를 사용하는 것이 좋습니다.


답변

누군가 내 대답을 편집하여 잘못된 영어를 추가했지만 여기에 허용 된 답변보다 열등한 원본이 있습니다.

. .bashrc


답변

환경에 따라 입력 만

bash

작동 할 수도 있습니다.


답변

이를 통해 “source ~ / .bashrc”를 입력 하지 않아도 됩니다 .

bashrc 파일을 포함 시키십시오 :

alias rc="vim ~/.bashrc && source ~/.bashrc"

bashrc를 편집 할 때마다 별명 ” rc “를 실행하십시오.


답변

. ~/.bashrc

. POSIX 필수 내장


대안

source ~/.bashrc

source.POSIX sh에서는 bash의 점 / 마침표 와 동의어 이므로 최대 호환성을 위해 마침표를 사용하십시오.

exec bash
  • exec명령 주어진 프로그램으로 대체합니다 … – WhoSayIn