如果我对.bashrc进行了更改,如何在不注销并重新登录的情况下重新加载它?
当前回答
我使用easyfengine设置了基于vultr云的服务器。我在/etc/bash.basrc中找到了我的bash文件。
所以source/etc/bash.bashc为我做了这个把戏!
使现代化
在设置裸机(ubuntu 16.04)时,当您尚未设置用户名并通过root登录时,可以使用上述信息。
最好创建一个用户(具有sudo权限),并以该用户名登录。这将为您的设置创建一个目录,包括.profile和.bashrc文件,如前一个资源中所述。
现在,您将编辑和(并源代码)~/.bashrc文件。
在我的服务器上,它位于/home/your_username/.bashrc(其中your_username实际上是您在上面创建的新用户名,现在使用登录)
其他回答
您可以输入长格式命令:
source ~/.bashrc
或者可以使用命令的较短版本:
. ~/.bashrc
根据您的环境,只需键入
bash
也可能起作用。
根据您的环境,您可能希望添加脚本,以便在打开SSH会话时自动加载.bashrc。我最近迁移到了运行Ubuntu的服务器,默认情况下加载的是.profile,而不是.bashrc或.bash_profile。要在.bashrc中运行任何脚本,我必须在每次打开会话时运行source~/.bashrc,这对运行远程部署没有帮助。
要在打开会话时自动加载.bashrc,请尝试将其添加到.profile:
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
重新打开会话,它将加载.bashrc中的所有路径/脚本。
我知道你想要一个shell,因为在注销并再次登录后。我认为实现这一目标的最佳方式是:
exec env -i HOME="$HOME" "$SHELL" -l
exec将替换当前的shell,这样当新的shell退出时就不会剩下它了。env将创建一个新的空环境,使用-i,我们添加$HOME,这样$shell提供的shell(通常是bash)可以找到~/.profile/~/.bash_profile(因此(在ubuntu上或如果指定)~/.bash rc)。不过我不完全确定。
我注意到纯exec bash命令将保留环境变量,因此需要使用exec-c bash在空环境中运行bash。
例如,登录一个bash,然后导出a=1,如果执行bash,则a==1。
如果执行-cl bash,则A为空。
我认为这是完成你工作的最佳方式。
推荐文章
- 安装tzdata非交互式
- 如何从终端/命令行调用VS代码编辑器
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 在Bash中检查变量是否存在于列表中
- 查看PS命令的全部输出
- 确保一次只运行一个shell脚本实例的快速方法
- 如何在Windows命令提示符下运行.sh ?
- “你有邮件”的消息在终端,os X
- 如何从命令行将每两行合并为一行?
- 如何复制在bash所有目录和文件递归?
- 在Bash命令提示符上添加git分支
- 匹配前后的Grep字符?
- 如何在Makefile中设置子进程的环境变量
- 带有多个条件的Bash if语句将抛出错误
- 如何让“wc -l”打印没有文件名的行数?