如果我对.bashrc进行了更改,如何在不注销并重新登录的情况下重新加载它?
当前回答
我编写了一组名为bash_magic的脚本,这些脚本可以跨多个shell自动执行此过程。如果您更新bashmagicshell目录(默认情况下为.bash.d)中的shell文件,它将在下一个提示下自动源代码更新。因此,一旦您进行了更改,只需按Enter键/回车键,任何更新都将被获取。
其他回答
这样,您甚至不必键入“source~/.bashrc”:
包括bashrc文件:
alias rc="vim ~/.bashrc && source ~/.bashrc"
每次您想编辑bashrc时,只需运行别名“rc”
根据您的环境,只需键入
bash
也可能起作用。
我注意到纯exec bash命令将保留环境变量,因此需要使用exec-c bash在空环境中运行bash。
例如,登录一个bash,然后导出a=1,如果执行bash,则a==1。
如果执行-cl bash,则A为空。
我认为这是完成你工作的最佳方式。
或者您可以使用:
exec bash
这样做也是一样的,而且更容易记住(至少对我来说)。
exec命令通过运行指定的命令行完全替换shell进程。在我们的示例中,它用一个新的bash实例(用更新的配置文件)替换当前的shell。
假设是一个交互式shell,并且您希望保留当前的命令历史记录并加载/etc/profile(它加载环境数据,包括/etc/bashrc,在Mac OS X上,通过path_helper加载/etc/paths.d/中定义的路径),附加命令历史记录,并使用login('-l')选项执行bash:
history -a && exec bash -l