.bashrc
를 변경하면 로그아웃했다가 다시 로그인하지 않고 어떻게 다시 로드합니까?
질문자 :Jed Daniels
긴 형식 명령을 입력할 수 있습니다.
source ~/.bashrc
또는 더 짧은 버전의 명령을 사용할 수 있습니다.
. ~/.bashrc
George Hawkins
또는 다음을 사용할 수 있습니다.
exec bash
이것은 동일한 작업을 수행하며 기억하기 쉽습니다(적어도 저에게는).
exec
명령은 지정된 명령줄을 실행하여 셸 프로세스를 완전히 대체합니다. 이 예에서는 현재 쉘이 무엇이든 새로운 bash
인스턴스(업데이트된 구성 파일 포함)로 대체합니다.
WhoSayIn
가장 인기 있는 두 가지 답변을 보완하고 대조 . ~/.bashrc
및 exec bash
:
두 솔루션 모두 ~/.bashrc
효과적으로 다시 로드하지만 차이점이 있습니다.
. ~/.bashrc
또는source ~/.bashrc
는 현재 쉘 세션을 보존 합니다.-
~/.bashrc
를 현재 셸로 다시 로드하는 수정 사항 ( sourcing )을 제외 하고 현재 셸 프로세스와 상태 가 유지 되며 여기에는 환경 변수, 셸 변수, 셸 옵션, 셸 기능 및 명령 기록이 포함됩니다.
-
exec bash
또는 더 강력하게exec "$BASH"
[1] 은 현재 쉘 을 새 인스턴스로 대체 하므로 현재 쉘의 환경 변수 (임시, 세션 내에서 정의한 환경 변수 포함)만 보존합니다. .- 즉, 쉘 변수, 쉘 기능, 쉘 옵션, 명령 기록과 관련하여 현재 쉘에 대한 모든 임시 변경 사항이 손실됩니다.
필요에 따라 하나 또는 다른 접근 방식이 선호될 수 있습니다.
[1] exec bash
는 이론적으로 현재 셸을 시작한 것과 다른 bash
$PATH
앞부분에 나열된 디렉토리에 존재한다면. 특수 변수 $BASH
항상 현재 쉘을 시작한 실행 파일의 전체 경로를 포함하므로 exec "$BASH"
는 동일한 실행 파일을 사용하도록 보장됩니다.
$BASH
주위에 "..."
참고 사항이 있습니다. 큰따옴표는 Bash에서 해석하지 않고 변수 값을 있는 그대로 사용하도록 합니다. 값에 포함된 공백이나 다른 쉘 메타 문자(이 경우에는 가능성이 없음)가 없으면 큰따옴표가 꼭 필요하지는 않지만 큰따옴표를 사용하는 것이 좋은 습관입니다.
mklement0
누군가 잘못된 영어를 추가하기 위해 내 답변을 편집했지만 여기에 허용된 답변보다 열등한 원본이 있습니다.
. .bashrc
Randy Proctor
이렇게 하면 "source ~/.bashrc"를 입력 할 필요도 없습니다.
bashrc 파일을 포함하십시오:
alias rc="vim ~/.bashrc && source ~/.bashrc"
bashrc를 편집할 때마다 별칭 " rc "를 실행하십시오.
Roy Lin
환경에 따라 입력만 하면 됩니다.
bash
작동할 수도 있습니다.
James
. ~/.bashrc
대안
source ~/.bashrc
source
는 점/마침표의 동의어입니다.
bash에서는 있지만 POSIX sh에서는 그렇지 않으므로 최대 호환성을 위해 마침표를 사용합니다.
exec bash
exec
명령 은 쉘 을 주어진 프로그램으로 대체합니다... – WhoSayIn
Geoffrey Hale
exec bash는 현재 셸을 다시 실행하고 새 셸을 시작하는 좋은 방법입니다. 답변에 추가하기 위해 $SHELL은 bash인 현재 셸을 반환합니다. 다음을 사용하면 bash뿐만 아니라 현재 셸을 다시 로드합니다.
exec $SHELL -l;
Jimmy MG Lim
환경에 따라 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에 있는 모든 경로/스크립트가 로드됩니다.
karolus
유형:
source ~/.bashrc
또는 더 짧은 형식으로:
. ~/.bashrc
jwismar
나를 위해 PATH를 변경할 때 작동하는 것은 다음과 같습니다. exec "$BASH" --login
Cecília Assis
나는 easyengine을 사용하여 vultr 클라우드 기반 서버를 설정했습니다.
/etc/bash.bashrc 에서 bash 파일을 /etc/bash.bashrc
.
그래서 source /etc/bash.bashrc
가 나를 위해 트릭을 했습니다!
업데이트
베어 서버(ubuntu 16.04)를 설정할 때 아직 사용자 이름을 설정하지 않고 루트를 통해 로그인할 때 위의 정보를 사용할 수 있습니다.
sudo 권한으로 사용자를 생성하고 대신 이 사용자 이름으로 로그인하는 것이 가장 좋습니다.
이렇게 하면 .profile 및 .bashrc 파일을 포함하여 설정을 위한 디렉토리가 생성됩니다.
https://linuxize.com/post/how-to-create-a-sudo-user-on-ubuntu/
~/.bashrc
파일을 편집하고 "소스"합니다.
내 서버에서 이것은 /home/your_username/.bashrc
(여기서 your_username
은 실제로 위에서 생성한 새 사용자 이름이며 이제 로그인합니다)
SherylHohman
msysgit에서 다음 명령을 사용합니다.
. ~/.bashrc
더 짧은 버전
source ~/.bashrc
Sojan Jose
대화형 셸을 가정하고 현재 명령 기록을 유지하고 /etc/profile(/etc/bashrc를 포함한 환경 데이터를 로드하고 Mac OS X에서는 /etc/paths.d/에 정의된 경로를 로드합니다. path_helper), 명령 기록을 추가하고 로그인('-l') 옵션을 사용하여 bash 실행을 수행합니다.
history -a && exec bash -l
beattidp
이것도 효과가 있겠지..
cd ~ source .bashrc
kirti
exec bash
명령이 환경 변수를 보존한다는 것을 알았으므로 빈 환경에서 exec -c bash
예를 들어, bash에 로그인하고 bash를 exec bash
하면 A == 1
export A=1
.
exec -cl bash
하면 A
는 비어 있습니다.
나는 이것이 당신의 일을 하는 가장 좋은 방법이라고 생각합니다.
CatDog
출처 : http:www.stackoverflow.com/questions/2518127/how-to-reload-bashrc-settings-without-logging-out-and-back-in-again
'etc. > StackOverFlow' 카테고리의 다른 글
후행 줄 바꿈을 제거하려면 어떻게 해야 합니까? (0) | 2021.12.21 |
---|---|
내보낸 환경 변수를 어떻게 삭제합니까? (0) | 2021.12.21 |
Git에서 파일에 대한 변경 사항을 추적하고 무시하는 방법은 무엇입니까? (0) | 2021.12.21 |
INNER JOIN, LEFT JOIN, RIGHT JOIN 및 FULL JOIN의 차이점은 무엇입니까? [복제하다] (0) | 2021.12.21 |
배열 반복에 "for...in"을 사용하는 것이 나쁜 생각인 이유는 무엇입니까? (0) | 2021.12.20 |