嵌入式 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、最后

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

推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回归分析——线性回归

机器学习中,对于离散的数据可以做分类问题,那对于连续的数据就是做回归问题,这里对一元线性回归和多元线性回归做一个简介,帮组理解。回归分析:从一组样本数据出发,确定变量之间的数学关系式,对…

编译原理(五)自底向上分析之算符优先分析法

自底向上分析之算符优先分析法 说明:以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记。 基本过程 1. 一般方法:采用自左向右地扫描和分析输入串,从输入符号串开始,通过反复查找当前句型的句柄&#xff0…

做Android开发,要清楚init.rc里面的东西

init.rc 复习看这个之前,先看看大神总结的文章这篇文章总结的非常到位,但是因为代码不是最新的Android版本,对我们最新的Android版本不适用。http://gityuan.com/2016/02/05/android-init/#init rc文件拷贝拷贝其实也就是把文件放到机器的某个…

abap常用系统变量

常用的系统变量如下: 1.sy-pagno当前页号 2.SY-DATUM当前时间 3.SY-LINSZ当前报表宽度 4.SY-LINCT当前报表长度 5.SPACE空字符 6.SY-SUBRC执行状态为0,表示成功. 7.SY-UNAME 用户名 8.SY-UZEIT当前时间 9.SY-TCODE当前的事务代码 10.SY-LSIND列表索引页 11.SY-LISTI上一个列表的…

随机森林

随机森林的思想:随机取样,创建M棵决策树,并对决策树的结果进行投票,选出最多的类别作为最后的分类结果。这里在创建决策树的时候引入了基尼指数的概念,基尼指数和信息增益的作用一样,都是选出数据集的最佳分…

Linux静态库和动态库的设计

静态库和动态库的设计 宗旨:技术的学习是有限的,分享的精神是无限的。 Linux应用程序设计中需要的外部函数主要由函数库和系统调用来提供 Linux应用程序使用的主要函数库均存放于/lib, /usr/lib目录下,其中采用*.so.*方式命名的是动态函数库…

操作excel

static void create(String path) throws Exception {//读取文件FileInputStream in new FileInputStream(path);XSSFWorkbook wb new XSSFWorkbook(in);// 获得该工作区的第一个sheetXSSFSheet sheet wb.getSheetAt(0);int rowNum sheet.getLastRowNum();//行int columnNu…

无法安装软件之解决其一 (windows installer服务篇)

早上接到兄弟求助,无法安装软件,于是把最直接方法告诉他,还原啊。但ghost 进程到一半就当了,真是对不起他。。挂了电话后查了一下,现将方法总结如下:两种环境1 windows 2000系统 中:第一步&…

决策树——CART和模型树

CART树 理解: 如果CART树处理离散型数据,叫做分类决策树,那么,引入基尼指数作为寻找最好的数据划分的依据,基尼指数越小,说明数据的“纯度越高”,随机森林的代码里边就运用到了基尼指数。如…

宏比较值,坑的一B

昨晚上,我准备睡觉,连总给我发了一段代码#include "stdio.h"#define MAX_MACRO(a, b) ((a) > (b) ? (a) : (b)) int MAX_FUNC(int a, int b) {return ((a) > (b) ? (a) : (b)); }int main() {unsigned int a 1;int b -1;printf(&quo…

Linux下Samba服务器搭建

linux文件共享之samba服务器 ——ubuntu 宗旨:技术的学习是有限的,分享的精神是无限的。 关闭LINUX防火墙命令: #ufwdisable 然后就在windows下ping一下linux的IP,如果能ping通,就可以继续下面的内容,如果p…

日志分析linux命令

1、查看文件内容:cat 。-n显示行号。 2. more:全屏幕分页显示文件的内容。下一页:space键;上一页:B;停止:Q;显示下一行:Enter; 3. less:在文件最…

C#比较两时间大小

1。比较时间大小的实验 string st1"12:13"; string st2"14:14"; DateTime dt1Convert.ToDateTime(st1); DateTime dt2Convert.ToDateTime(st2); DateTime dt3DateTime.Now; if(DateTime.Compare(dt1,dt2)>0) msg.Textst1">…

搞懂C++为什么难学,看这篇就够了!

学C能干什么? 往细了说,后端、客户端、游戏引擎开发以及人工智能领域都需要它。往大了说,构成一个工程师核心能力的东西,都在C里。跟面向对象型的语言相比,C是一门非常考验技术想象力的编程语言,因此学习起…

2017 实习面试问题总结(阿里、头条、美团、cvte、乐视、华为)

2017 实习面试问题总结(阿里、头条、美团、cvte、乐视、华为) Java后台面试 常见问题转载于:https://www.cnblogs.com/straybirds/p/8319566.html

SAP BC417 课程中文自学笔记

BC417: BAPI Development for Accessing SAP Components开发自定义 BAPI 的方法http://files.cnblogs.com/qiangsheng/SAP_BC417.rarhttp://files.cnblogs.com/qiangsheng/SAP_BC417_appendix.rar

看图学源码之FutureTask

RunnableFuture 源码学习: 成员变量 任务的运行状态的转化 package java.util.concurrent; import java.util.concurrent.locks.LockSupport;/**可取消的异步计算。该类提供了Future的基本实现,包括启动和取消计算的方法,查询计算是否完成以…

单片机的引脚,你都清楚吗?

第1课:单片机简叙1.单片机可以做什么?目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。小到电话,玩具,手机,各类刷卡机,电脑键盘,彩电,冰箱&…

Graphviz的安装及纠错

在Anaconda Prompt里边输入conda install graphviz 安装成功之后输入pip install graphviz 它会提示成功安装。 启动 Jupyter Notebook ,在文件里边输入 import graphviz 测试,如果没有报错证明,模块安装成功,但是在运行程序…

基于ubuntu13.04搜狗输入法安装方法

基于ubuntu13.04搜狗输入法安装方法 宗旨:技术的学习是有限的,分享的精神是无限的。 sudo gedit etcaptsources.list 在打开的文件中加入以下两行: deb http ppa.launchpad.netfcitx-teamnightlyubuntu quantal main deb-src http ppa.lau…