如何从命令行重新加载文件.bash_profile?
我可以让shell通过退出并重新登录来识别对.bash_profile的更改,但我希望能够按需执行。
简单地输入source ~/.bash_profile。
source ~/.bash_profile
或者,如果您喜欢保存击键,您可以键入. ~/.bash_profile。
. ~/.bash_profile
只要确保你对那里的当前状态没有任何依赖关系。
您还可以使用此命令重新加载该用户的~/.bash_profile。
su - username
cd
. .bash_profile
只需键入:
但是,如果您想在终端启动时自动运行它,而不是每次打开终端时运行它,您可以将. ~/.bash_profile添加到~/.bashrc文件。
~/.bashrc
备注:
当您打开终端时,终端以(非登录)交互模式启动bash,这意味着它将源~/.bashrc。
~/.bash_profile仅在交互登录方式中启动时由bash提供。这通常仅当您登录控制台(Ctrl+Alt+F1…F6)或通过ssh连接时。
~/.bash_profile
ssh
将alias bashs="source ~/.bash_profile"添加到您的Bash文件中。
alias bashs="source ~/.bash_profile"
所以下次你可以打电话给bashs。
bashs
如果.bash_profile文件不存在,您可以尝试运行以下命令:
. ~/.bashrc
或
source ~/.bashrc
而不是.bash_profile。
您可以找到有关bashrc的更多信息。
我喜欢这样一个事实,即在您刚刚编辑文件之后,您需要做的就是输入:
. !$
这是您刚刚在历史记录中编辑的文件的来源。请参阅BASH中的BASH是什么。
我使用Debian,我可以简单地键入exec bash来实现这一点。我不能说它是否适用于所有其他发行版。
exec bash
我正在运行macOS v10.12(Sierra)并为此工作了一段时间(尝试所有推荐的解决方案)。我感到困惑,所以我最终尝试重新启动我的计算机!它起作用了。
我的结论是,有时硬重置是必要的。
虽然使用source ~/.bash_profile或前面的答案有效,但需要注意的是,这只会在您正在查看的当前选项卡或会话中重新加载您的Bash配置文件。如果您希望在每个选项卡/shell上重新加载您的bash配置文件,您需要在每个选项卡/shell中手动输入此命令。
如果您使用iTerm中,您可以使用CMD+Shift+I在当前所有选项卡中输入命令。对于终端,引用此问题可能很有用;
使用
alias reload!=". ~/.bash_profile"
或者如果想通过函数添加日志:
function reload! () {echo "Reloading bash profile...!"source ~/.bash_profileecho "Reloaded!!!"}
你只需要输入. ~/.bash_profile。
请参阅'source'有什么作用?。
如果您不介意丢失当前shell终端的历史记录,您也可以这样做
bash -l
这将分叉您的shell并打开bash的另一个子进程。-l参数告诉Bash作为登录shell运行。这是必需的,因为.bash_profile不会作为非登录shell运行。有关此的更多信息,在这里阅读。
-l
如果你想完全替换当前的shell,你也可以这样做:
exec bash -l
上面不会分叉当前shell,而是完全替换它,因此当您键入exit时,它将完全终止,而不是将您丢弃到前一个shell。
exit
简单地重新采购文件不会“重新加载”,因为某些内容首先卸载,然后再次加载。如果这是您想要的,您可以这样做:
hash -r && _SHOW_MESSAGES=1 exec -a -bash bash