답변:
다음 명령을 입력하면됩니다.
source ~/.bashrc
또는 더 짧은 버전의 명령을 사용할 수 있습니다.
. ~/.bashrc
alias editbashrc='vim ~/.bashrc; source ~/.bashrc'
. 사용자 지정 별칭을 사용하는 경우 편집을 수행 한 후 다시로드에 대해 생각할 필요가 없으므로 편집이 훨씬 매끄 럽습니다.
또는 다음을 사용할 수 있습니다.
exec bash
이것은 똑같은 일을하고 기억하기 쉽습니다 (적어도 나를 위해).
exec
명령은 완전히 지정된 명령 줄을 실행하여 쉘 프로세스를 대체합니다. 이 예에서는 현재 셸이 무엇이든 bash
(업데이트 된 구성 파일을 사용하여) 새로운 인스턴스로 바꿉니다 .
source .bashrc
명령 의 차이점을 설명해 주 exec bash
시겠습니까?
source
인수로 전달 된 파일의 내용을 실행하는 내장 쉘 명령입니다 . 따라서 귀하의 예에서는 현재 셸에서 .bashrc 파일을 실행합니다. 그리고 명령은 쉘을 주어진 프로그램으로 대체합니다. 예를 들어, 쉘은 bash로 (업데이트 된 구성 파일로)exec
. ~/.bashrc
실행 되므로 누락 되어 오류 가 있습니다. 쉘에서 찾을 수 없으므로 솔루션도 나옵니다. 나는 이것을 시도했고 도커 이미지는 부드럽게 만들어졌습니다! dash
bash
shopt
source
source ~/.bashrc
는 전체 쉘 환경 을 보존 하지만 (의 소싱으로 수정되었을지라도 ~/.bashrc
) exec bash
현재 쉘의 환경 변수 만 보존합니다 (쉘 변수, 기능, 옵션의 측면에서 현재 쉘에 대한 임시 변경 사항 만 손실 됨). 필요에 따라 하나 또는 다른 방법이 선호 될 수 있습니다.
exec bash
. 이 exec
명령 은 쉘을 프로그램으로 대체합니다 ( 이 경우에는 bash). 따라서 터미널에는 항상 하나의 bash 인스턴스가 존재합니다.
하려면 보완하고 대비 두 개의 가장 인기있는 답변을, . ~/.bashrc
그리고 exec bash
:
두 솔루션 모두 효과적으로 다시로드 ~/.bashrc
되지만 차이점이 있습니다.
. ~/.bashrc
또는 현재 쉘source ~/.bashrc
을 보존 합니다 .
~/.bashrc
현재 쉘로 다시로드하는 수정 ( 소싱 )을 제외하고 환경 변수, 쉘 변수, 쉘 옵션, 쉘 기능 및 명령 히스토리를 포함 하여 현재 쉘 및 해당 상태 가 보존 됩니다.exec bash
또는보다 견고하게 exec "$BASH"
[1] 은 현재 쉘 을 새 인스턴스로 교체 하므로 현재 쉘의 환경 변수 (임시 정의한 변수 포함) 만 보존합니다 .
필요에 따라 하나 또는 다른 방법이 선호 될 수 있습니다.
[1] exec bash
은 이론적으로 현재 셸을 시작한 것과 다른 bash
실행 파일을 실행할 수 $PATH
있습니다. 특수 변수 $BASH
에는 항상 현재 셸을 시작한 실행 파일의 전체 경로가 포함 exec "$BASH"
되므로 동일한 실행 파일 을 사용해야합니다 .
메모 재 "..."
주위 $BASH
: 그대로 변수 값 배시에 의해 해석하지 않고, 사용되는 것을 보장을 이중 인용; 값에 공백이나 다른 셸 메타 문자가없는 경우 (이 경우에는 해당되지 않음) 큰 따옴표가 필요하지 않지만이를 사용하는 것이 좋습니다.
exec $BASH
source ~/.bashrc
이므로 새 세션에서 셸 환경에 대한 변경 사항을 볼 수 있습니다.
누군가 내 대답을 편집하여 잘못된 영어를 추가했지만 여기에 허용 된 답변보다 열등한 원본이 있습니다.
. .bashrc
~/
하지만, 상단의 대답 쇼 이후 모두 source ~/.bashrc
와 . ~/.bashrc
이 대답 그냥 중복으로 삭제해야하는지 궁금합니다.
환경에 따라 입력 만
bash
작동 할 수도 있습니다.
. ~/.bashrc
source ~/.bashrc
source
.
POSIX sh에서는 bash의 점 / 마침표 와 동의어 이므로 최대 호환성을 위해 마침표를 사용하십시오.
exec bash
exec
명령 은 주어진 프로그램으로 쉘 을 대체합니다 ... – WhoSayIn
exec bash
여전히 현재 쉘의 환경을 상속합니다. exec env -i bash
더 가깝습니다 (또는 exec env -i bash -l
현재 로그인 쉘에있는 경우).
환경에 따라 SSH 세션을 열 때 .bashrc가 자동으로로드되도록 스크립팅을 추가 할 수 있습니다. 최근 Ubuntu를 실행하는 서버로 마이그레이션했으며 .bashrc 또는 .bash_profile이 아닌 .profile이 기본적으로로드됩니다. .bashrc에서 스크립트를 실행하려면 source ~/.bashrc
세션을 열 때마다 실행해야 했으므로 원격 배포를 실행할 때 도움이되지 않습니다.
세션을 열 때 .bashrc가 자동으로로드되도록하려면 이것을 .profile에 추가하십시오.
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
세션을 다시 열면 .bashrc에있는 경로 / 스크립트가로드되어야합니다.
vultr cloud 기반 서버를 설정하기 위해 easyengine을 사용했습니다.
에서 bash 파일을 찾았습니다 /etc/bash.bashrc
.
그래서 source /etc/bash.bashrc
나를 위해 속임수를 썼는지!
최신 정보
베어 서버 (우분투 16.04)를 설정할 때 아직 사용자 이름을 설정하지 않았고 루트를 통해 로그인 할 때 위의 정보를 사용할 수 있습니다.
sudo 권한을 가진 사용자를 작성하고 대신이 사용자 이름으로 로그인하는 것이 가장 좋습니다.
.profile 및 .bashrc 파일을 포함하여 설정을위한 디렉토리가 생성됩니다.
https://linuxize.com/post/how-to-create-a-sudo-user-on-ubuntu/
이제 ~/.bashrc
파일 을 편집 (및 "소스") 합니다.
내 서버에서 이것은 /home/your_username/.bashrc
( your_username
위에서 만든 새로운 사용자 이름이며 이제 로그인하십시오)에 있습니다.
msysgit에서 다음 명령을 사용합니다
. ~/.bashrc
짧은 버전
source ~/.bashrc
나는 개인적으로
alias ..='source ~/.bashrc'
내 bashrc에서 ".."를 사용하여 다시로드 할 수 있습니다.
..
이에 대한 별칭으로 사용 cd ..
하므로 혼동 될 수 있습니다.
alias rehash='source ~/.bashrc'
나의 선택이다.
export PATH=$PATH:foo
있다고 가정 해 봅시다export PATH=$PATH:bar
. 당신이 로그인하고 밖으로 백업하는 경우에만bar
PATH에있을 것입니다,하지만 당신은 무엇을 제안 당신이 경우에, 모두foo
와bar
PATH에있을 것입니다. 이 문제를 해결하는 방법을 알고 있습니까?