在ubuntu中导出path和configuration

我正在尝试使用以下方法添加一些导出

# 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 

我有两个问题:

  1. 由于什么原因,它只是不工作,configuration不被AWS读取,就好像它从来没有链接。 我做了这个正确的?

  2. 其次,这是否幸存重启? 在那里,我只需要做一次,当我重新启动服务器,它将仍然在那里,或者而不是我必须将这些命令添加到我的rc.local,以便他们恢复在服务器的每次重新启动。

谢谢你的帮助。

从你的问题中不清楚你正在运行你提交的scriptlet的位置和时间。

在运行scriptlet之后,执行cat /etc/bash.bashrc查看两个导出行是否在那里。

脚本每次运行时在/etc/bash.bashrc添加两行。 如果你运行两次,那么你将有重复的行。 文件/etc/bash.bashrc是一个常规的configuration文件,每次启动都不会重新生成,所以您所做的任何更改都是持久的。 所以,你可能只想在你安装的每个平台上运行一次这个脚本。

无论如何,/ /etc/bash.bashrc可能不是一个将全局添加到PATH的好地方。 你把这些放在/etc/profile 。 但在这之前,请执行echo $PATH来validation/usr/local/bin是否已经存在。 在大多数发行版中,它都包含在PATH开箱即用中。

您对/etc/bash.bashrc所做的更改对于新的bash进程(如运行bashterminal窗口)有效,该进程您进行更改启动。 该更改不影响当前正在运行的窗口。

您在.bashrc文件的/etc/profile中设置的PATH环境variables仅影响bash shell。 如果从/etc/rc.d文件at或者从/etc/rc.d文件启动一个crontab程序,则需要在这些脚本中专门设置PATH ,或者使用etc/environment文件为所有进程设置环境variables。 看到这个链接解释的差异。

系统范围的环境variables可以放在/etc/environment

一旦你把/etc/bash.bashrc加到你提到的行,每个bash进程都应该“知道”它们。 你可以validation这一点,用:

 echo $PATH 

 source /etc/bash.bashrc echo $PATH 

还请查看关于环境variables的Ubuntu社区Wiki。