如何重新加载.从命令行bash_profile

如何从命令行重新加载文件.bash_profile

我可以让shell通过退出并重新登录来识别对.bash_profile的更改,但我希望能够按需执行。

1052758 次浏览

简单地输入source ~/.bash_profile

或者,如果您喜欢保存击键,您可以键入. ~/.bash_profile

. ~/.bash_profile

只要确保你对那里的当前状态没有任何依赖关系。

您还可以使用此命令重新加载该用户的~/.bash_profile。

su - username
  1. 保存.bash_profile文件
  2. 通过键入cd转到用户的主目录
  3. . .bash_profile重新加载配置文件

只需键入:

. ~/.bash_profile

但是,如果您想在终端启动时自动运行它,而不是每次打开终端时运行它,您可以将. ~/.bash_profile添加到~/.bashrc文件。

备注:

当您打开终端时,终端以(非登录)交互模式启动bash,这意味着它将源~/.bashrc

~/.bash_profile仅在交互登录方式中启动时由bash提供。这通常仅当您登录控制台(Ctrl+Alt+F1F6)或通过ssh连接时。

alias bashs="source ~/.bash_profile"添加到您的Bash文件中。

所以下次你可以打电话给bashs

如果.bash_profile文件不存在,您可以尝试运行以下命令:

. ~/.bashrc

source ~/.bashrc

而不是.bash_profile

您可以找到有关bashrc的更多信息。

我喜欢这样一个事实,即在您刚刚编辑文件之后,您需要做的就是输入:

. !$

这是您刚刚在历史记录中编辑的文件的来源。请参阅BASH中的BASH是什么

我使用Debian,我可以简单地键入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运行。有关此的更多信息,在这里阅读

如果你想完全替换当前的shell,你也可以这样做:

exec bash -l

上面不会分叉当前shell,而是完全替换它,因此当您键入exit时,它将完全终止,而不是将您丢弃到前一个shell。

简单地重新采购文件不会“重新加载”,因为某些内容首先卸载,然后再次加载。如果这是您想要的,您可以这样做:

hash -r && _SHOW_MESSAGES=1 exec -a -bash bash