查看原文
其他

嵌入式 Linux下永久生效环境变量bashrc

作者:skdkjxy

原文:http://blog.sina.com.cn/s/blog_8795b0970101f1f9.html

.bashrc文件

在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到4个隐藏文件:

.bash_history  记录之前输入的命令

.bash_logout  当你退出时执行的命令

.bash_profile  当你登入shell时执行

.bashrc       当你登入shell时执行

请注意后两个的区别:.bash_profile只在会话开始时被读取一次,而.bashrc则每次打开新的终端时,都要被读取。

这些文件是每一位用户对终端功能和属性设置,修改.bashrc可以改变环境变量PATH、别名alias和提示符。具体如何修改会在下面做介绍。

除了可以修改用户目录下的.bashrc文件外,还可以修改如/etc/profile文件、/etc/bashrc文件及目录/etc /profile.d下的文件。

但是修改/etc路径下的配置文件将会应用到整个系统,属于系统级的配置,而修改用户目录下的.bashrc则只是限制在用户应用上,属于用户级设置。两者在应用范围上有所区别,建议如需修改的话,修改用户目录下的.bashrc,即无需root权限,也不会影响其他用户。

PATH环境变量修改

PATH变量决定了shell 将到哪些目录中寻找命令或程序。如果要执行的命令的目录在 $PATH 中,您就不必输入这个命令的完整路径,直接输入命令就可以了。

一些第三方软件没有将可执行文件放到 Linux 的标准目录中。因此,将这些非标准的安装目录添加到 $PATH 是一种解决的办法。此外,您也将看到如何处理一般的环境变量。

首先,作为惯例,所有环境变量名都是大写。由于 Linux 区分大小写,这点您要留意。当然,您可以自己定义一些变量,如'$path'、'$pAtH',但 shell 不会理睬这些变量。

第二点是变量名有时候以'$'开头,但有时又不是。当设置一个变量时,直接用名称,而不需要加“$”,如导出环境变量:

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

假如环境变量值为:

PATH=/usr/bin:/usr/local/bin:/bin

要获取变量值的话,就要在变量名前加'$':

echo $PATH

则会显示当前设置的PATH变量/usr/bin:/usr/local/bin:/bin。否则的话,变量名就会被当作普通文本了:echo PATH显示PATH

处理 $PATH 变量要注意的第三点是:您不能只替换变量,而是要将新的字符串添加到原来的值中。

在大多数情况下,您不能用PATH=/some /directory,因为这将删除 $PATH 中其他的所有目录,这样您在该终端运行程序时,就不得不给出完整路径。

所以,只能作添加:PATH=$PATH:/some/directory,假如你要添加/usr/local/arm/3.4.1/bin交叉编译命令,则操作为PATH=$PATH:/usr/local/arm/3.4.1/bin这样,PATH 被设成当前的值(以 $PATH 来表示)+新添的目录。

到目前为止,你只为当前终端设置了新的 $PATH 变量。如果您打开一个新的终端,运行 echo $PATH ,将显示旧的 $PATH 值,而看不到你刚才添加的新目录。因为你先前定义的是一个局部环境变量(仅限于当前的终端)。

要定义一个全局变量,使在以后打开的终端中生效,您需要将局部变量输出(export),可以用"export"命令:

export PATH=$PATH:/some/directory

现在如果打开一个新的终端,输入 echo $PATH ,也能看到新设置的$PATH 了。请注意,命令export只能改变当前终端及以后运行的终端里的变量,对于已经运行的终端没有作用

为了将目录永久添加到 $PATH ,只要将"export"的那行添加到.bashrc或/etc/bashrc文件中。


免责声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

5、最后

以上就是本次的分享,如果觉得文章不错,转发、在看,也是我们继续更新的动力。

猜你喜欢:

2020年精选原创笔记汇总

1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。在公众号聊天界面回复1024,即可免费获取!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存