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

时间:2011-01-05 19:09:08

标签: bash shell .bash-profile

如何从命令行重新加载.bash_profile? 我可以让shell通过退出并重新登录来识别对.bash_profile的更改,但我希望能够按需执行此操作。

13 个答案:

答案 0 :(得分:1604)

只需输入source ~/.bash_profile

即可

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

答案 1 :(得分:92)

. ~/.bash_profile

请确保您对此处的当前状态没有任何依赖。

答案 2 :(得分:28)

只需输入:

. ~/.bash_profile

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

注意:

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

~/.bash_profile仅在交互式登录模式中启动时由bash提供。这通常仅在您在控制台登录时( Ctrl + Alt + F1 .. F6 ),或者通过ssh进行连接。

答案 3 :(得分:14)

您也可以使用此命令为该用户重新加载〜/ .bash_profile。确保使用短划线。

su - username

答案 4 :(得分:11)

  1. 保存 .bash_profile 文件
  2. 输入cd
  3. 转到用户的主目录
  4. 使用. .bash_profile
  5. 重新加载配置文件

答案 5 :(得分:10)

我喜欢这样的事实:在您刚编辑完文件后,您需要做的就是键入:

. !$

这会获取您刚刚编辑过的历史文件。请参阅What is bang dollar in bash

答案 6 :(得分:4)

如果您不介意丢失当前Shell终端的历史记录,也可以这样做

bash -l

那将分叉您的外壳并打开bash的另一个子进程。 -l参数告诉bash作为登录shell运行,这是必需的,因为.bash_profile不会作为非登录shell运行,有关此read here

的更多信息

如果要完全替换当前的外壳,也可以执行以下操作:

exec bash -l

以上内容不会分叉您的当前shell,而是将其完全替换,因此,当您键入exit时,它将完全终止,而不是将您放到上一个shell。

答案 7 :(得分:3)

您只需要输入. ~/.bash_profile

引用:https://superuser.com/questions/46139/what-does-source-do

答案 8 :(得分:2)

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

. ~/.bashrc 

 source ~/.bashrc

而不是.bash_profile。 您可以找到有关bashrc

的更多信息

答案 9 :(得分:2)

我想发布一个快速回答,即在使用source ~/.bash_profile或上述答案时,有一点需要注意的是,这只会在您正在查看的当前标签或会话中重新加载您的bash个人资料。如果要在每个选项卡/ shell上重新加载bash配置文件,则需要在每个选项卡/ shell中手动输入此命令。

如果您使用iTerm, you can use CMD⌘+Shift+I to enter a command into all current tabs。对于终端,引用此issue;

可能很有用

答案 10 :(得分:1)

我使用Debian,我只需键入exec bash即可实现此目的。我不能说它是否适用于所有其他发行版。

答案 11 :(得分:1)

@Multipart
@PUT
@Headers("x-amz-acl:public-read")
Call<Void> uploadFile(@Url String url, @Header("Content-Type") String contentType, @Part MultipartBody.Part part);

或者是否想通过功能添加日志

alias reload!=". ~/.bash_profile"

答案 12 :(得分:0)

我正在运行Sierra,并且正在研究这一段时间(尝试所有推荐的解决方案)。我变得困惑,所以最终尝试重新启动我的电脑!它工作

我的结论是,有时必须进行硬重置