如果我对.bashrc进行了更改,如何在不注销并重新登录的情况下重新加载它?
当前回答
. ~/.bashrc
.是POSIX授权的内置
选择
source ~/.bashrc
source是点/句点的同义词。在bash中,但在POSIX sh中没有,因此为了获得最大的兼容性,请使用句点。
exec bash
exec命令用给定的程序替换shell…–WhoSayIn公司
其他回答
有人编辑了我的答案,添加了不正确的英语,但这是原文,比公认的答案差。
. .bashrc
请注意,$SHELL可能会产生意想不到的结果例如,连接到Docker环境
echo $SHELL
/usr/sbin/nologin
所以,如果你尝试,你就会断开连接
exec $SHELL
This account is currently not available.
所以你可能需要使用更复杂的东西,比如
exec $(pgrep -l sh | grep "^`echo $$` " | cut -d" " -f2)
假设每个shell都包含“sh”
pgrep -l sh | grep "^`echo $$` " | cut -d" " -f2
生成完整的命令如果有参数或标志,则可能必须使用-f2、3、4或尝试
pgrep -l sh | grep "^`echo $$` " | sed -E 's/^[0-9]+ //'
但请阅读以上所有建议就我个人而言,我不喜欢泄露历史。。。但这取决于你和你的需要
您可以输入长格式命令:
source ~/.bashrc
或者可以使用命令的较短版本:
. ~/.bashrc
假设是一个交互式shell,并且您希望保留当前的命令历史记录并加载/etc/profile(它加载环境数据,包括/etc/bashrc,在Mac OS X上,通过path_helper加载/etc/paths.d/中定义的路径),附加命令历史记录,并使用login('-l')选项执行bash:
history -a && exec bash -l
根据您的环境,只需键入
bash
也可能起作用。
推荐文章
- bash:错误的替换
- 如何在bash中删除字符后的所有文本?
- 如何配置git bash命令行补全?
- Shell脚本:在Shell脚本中执行python程序
- /bin/sh: apt-get:未找到
- Git在终端提交时打开VIM,但无法返回终端
- 如何检索给定相对的绝对路径
- 如何在shell管道中使用“jq”?
- 如何使用jq从JSON获得键名
- 图形化对?
- 我如何能匹配一个字符串与正则表达式在Bash?
- 为什么cURL返回错误“(23)Failed writing body”?
- 在Unix shell中计算一列数字
- 在bash脚本中否定if条件
- 如何撤消“set -e”使bash立即退出,如果任何命令失败?