
我正在尝试使用以下方法添加一些导出:
# SETUP CONFIGS
sudo bash -c "cat >> /etc/bash.bashrc" <<'EOF'
export AWS_CONFIG_FILE=/etc/test/aws.txt
export PATH="$PATH:/usr/local/bin/"
EOF
我有两个问题:
无论出于什么原因,它就是无法工作,AWS 无法读取配置,就好像它从未链接过一样。我这样做对吗?
其次,重启后这些命令还能继续使用吗?也就是说,我是否只需要执行一次,然后当我重启服务器时这些命令仍然会存在,或者我是否必须将这些命令添加到我的 rc.local 中,这样每次重启服务器时这些命令都会恢复。
感谢您提供的任何帮助。
答案1
从您的问题中无法清楚得知您在何时何地运行您所提供的脚本。
运行脚本后,cat /etc/bash.bashrc
查看是否存在两条导出行。
该脚本/etc/bash.bashrc
每次运行时都会添加两行。如果运行两次,则会有重复的行。该文件/etc/bash.bashrc
是常规配置文件,不会每次启动时重新生成,因此您所做的任何更改都是持久的。因此,您可能只想在安装该脚本的每个平台上运行一次该脚本。
无论如何,/etc/bash.bashrc
可能不是将全局添加项放入 的好地方PATH
。您可以将其放入/etc/profile
。但在执行此操作之前,请先echo $PATH
验证 是否/usr/local/bin
已存在。在大多数发行版中,它都包含在开箱即用的 PATH 中。
你对 所做的更改将对新进程(例如你启动的运行的终端窗口/etc/bash.bashrc
)生效bash
bash
后您进行了更改。此更改不会影响当前正在运行的窗口。
您在文件中PATH
设置的环境变量仅影响 bash shell。如果您从 或 从文件启动程序,则需要在这些脚本中专门设置 ,或使用文件为所有进程设置环境变量。请参阅/etc/profile
.bashrc
crontab
at
/etc/rc.d
PATH
etc/environment
这解释差异的链接。
答案2
系统范围的环境变量可以放在中/etc/environment
。
一旦你将上述行添加到/etc/bash.bashrc
,每个 bash 进程都应该“知道”它们。你可以使用以下命令验证这一点:
echo $PATH
和
source /etc/bash.bashrc
echo $PATH
也可以查看 Ubuntu 社区 Wiki环境变量。