建立交叉编译环境是嵌入式开发的一个重要的步骤,安装交叉编译环境就是为交叉编译工具设置环境变量。下面就是安装交叉编译环境的一个例子:
首先:安装工作目录。
把解压后的交叉编译工具链arm-Linux-gcc 3.4.1版本复制到/usr/local/arm/3.4.1/
其实:设置环境变量。
#gedit /root/.bashrc
编辑/root/.bashrc 文件,在最后一行export PATH=$PATH:/usr/local/arm/3.4.1/bin
最后:重新登录 Redhat 系统(不必重启机器,开始->logout 即可),使以上设置生效,在命令
行输入 arm-linux-gcc –v 检查是否成功建立交叉编译环境。

分析/root/bashrc文件的内容:
.bashrc:
······
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export PATH=$PATH:/usr/local/arm/3.4.1/bin
前面三行的意思是“如果/etc/bashrc这个文件存在,那么就执行它”,最后一行是我自己加的,用于修改PATH变量,这里是设置环境变量所起的作用就是当运行arm-linux-,就会运行export PATH=$PATH:/usr/local/arm/3.4.1/bin中对应的命令。而且每次登录时,环境变量PATH都会自动修改为我需要的值.

提问1:在Linux操作系统中设置环境变量用export命令:如export HOME=/home j以后脚本中HOME就代表/home .shell中的arm-linux-gcc命令怎么和/usr/local/arm/3.4.1/bin中的arm-linux-gcc相关联?在语句中不能直接看出他们的关联?
回答:在语句中的确不像例子中那样可以直接看出HOME与/home 的相关性。那是因为环境变量PATH蒙蔽了你的双眼。用$echo $PATH查看环境变量PATH的值(env查看全部环境变量值)

这里补充一下小知识:
通过以下内容说明特殊符号的用法。
export A=/q/jing:aaa/cc/ld
export B=.:/liheng/wang
export A=/cd/cdr:$A
大家注意红色的符号:
: 表示并列含义,例如A变量值有多个,用:符号进行分离。
. 表示你操作的当前目录。例如pap命令会查找B环境变量。
在/home键入pap命令,系统首先在/home目录下(即当前路径)查找关于 B 的内容,如果没有在/liheng/wang目录下查找关于B的内容。
$ 表示该变量本次定义之前的值,例如$A代表/q/jing:aaa/cc/ld。也就是说
A=/cd/cdr:/q/jing:aaa/cc/ld
PATH环境变量作用是决定了shell将到哪些目录中寻找命令或程序。arm-linu-gcc属于命令。
export PATH=$PATH:/usr/local/arm/3.4.1/bin也就不难理解。意思是让PATH以前的值($PATH)和新设的环境变量值(/usr/local/arm/3.4.1/bin)并列,通过符号进行分离。因为arm-Linux-gcc只有在/usr/local/arm/3.4.1/bin下才存在,所以在执行时就能通过符号分离出arm-linux-gcc的路径为/usr/local/arm/3.4.1/bin

提问2:为什么是在/root/bashrc文件中设置?不是在/etc/bashrc或者其他文件中进行设置?
回答:linux给大家提供了自动设置环境变量的方法,那就是修改 .bashrc 文件。一般说来,有两个文件可以提供这种“进入系统时自动设置”的功能,一个是 /etc/bashrc,另一个是 ~/.bashrc。其中/etc/bashrc是被每个用户执行的,而~/.bashrc只被当前用户执行。所以/etc/bashrc只有root用户能更改,而~/.bashrc是各个用户私有的文件。 "~"指的是用户的home目录。我自己用root帐号登录的,所以对我来所~/bashrc就是/root/bashrc。
这样,各个用户有自己独立的".bashrc"文件,可以根据需要自行更改,而不会互相干扰。 /etc/bashrc文件则是共享的,整个Linux中只有一份。一般来说,用户的"~/.bashrc"开头都会调用/etc/bashrc,因此更改/etc/bashrc会影响到所有用户,这个文件一般是root用户管理的。

提问3:Linux系统中/etc/profile与/etc/bashfile文件作用的区别?
(1)/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。他是为用户定制系统定制环境变量。
(2)/etc/bashrc: 是为每一个bash shell的用户定制环境变量,当bash shell被打开时,该文件被读取。~/bashrc是为某个bash shell用户定制环境变量

=======================================================================================


环境变量就是系统或软件设置的一些参数,用户环境变量就是用户登录系统后,都有自已专用的运行环境。在Windows系统中用户环境变量保存在用户家目录,Linux也是同样的。本文主要是讲解Linux常用的环境变量和环境变量的设置。

一、环境变量相关操作(只应用于当前,要永久保存需要写入到相关文件。)
#echo $PATH
显示PATH设置。
#env
显示当前用户变量。
#set
显示当前Shell变量。
#export
显示当前导出成用户变量的shell变量。
#a=abc
定义一个Shell变量。
#export a=abc
定义一个Shell变量,并导出成用户变量。
#unset a
清除环境变量
#readonly a
设置只读环境变量

二、常见的环境变量
PATH      决定了shell将到哪些目录中寻找命令或程序
HOME       当前用户主目录
HISTSIZE     历史记录数
LOGNAME     当前用户的登录名
HOSTNAME   指主机的名称
SHELL      前用户Shell类型
LANGUGE     语言相关的环境变量,多语言可以修改此环境变量
MAIL      当前用户的邮件存放目录
PS1       基本提示符,对于root用户是#,对于普通用户是$
PS2       附属提示符,默认是“>”

三、Linux环境变量设置文件
/etc/profile
全局用户,应用于所有的Shell。
/$HOME/.profile
当前用户,应用于所有的Shell。
/etc/bash_bashrc
全局用户,应用于Bash Shell。
~/.bashrc
局部当前,应用于Bash Sell。

四、其它
在用户目录下用ls -a,能看见很多“.”开头的隐藏文件。如果不是用户建立的,那么这些文件都是环境设置文件。有其它Shell的设置文件,也有软件设置的文件。比如:.lftp,它就是lftp软件的设置文件。如果安装了x-window的话,菜单和桌面设置都在.local里面。这些大家用久了自然就知道了。

export set env区别baidu一下就知道了。

补充:开启启动Xwindow,有些Linux发行版不会加载SHELL环境变量,因为Xwindow有自已的会话设置。例如gnome,有~/.gnomerc 或 /etc/X11/Xsession.d/55gnome-session_gnomerc。


//=============================================================


在 linux 里设置环境变量的方法 ( export PATH )

如果使用源码包安装的软件,在安装完成后一般情况下要设置该软件命令执行的路径,那就是 PATH 变量。如何来设置 PAHT变量呢?我们又三种方法实现
例如:压力测试工具sysbench的命令目录为:/usr/local/sysbench/bin,想要将sysbench工具加入到系统环境变量里,使在root用户下,可以直接执行sysbench命令。

1.直接使用 export 命令

# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

# export PATH=$PATH:/usr/local/sysbench/bin


# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sysbench/bin

注意: 直接使用 export 设置的变量都是临时变量,也就是说退出当前的 shell ,为该变量定义的值便不会生效了。如何能让我们定义的变量永久生效呢?那就看我们的第二种定义的方式


2. 修改 /etc/profile
# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

# vi /etc/profile
export PATH=$PATH:/usr/local/sysbench/bin # 在配置文件中加入此行配置
需要注意的是:修改完这个文件必须要使用 以下命令在不用重启系统的情况下使修改的内容生效
# source /etc/profile
或者是:
# . /etc/profile

# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sysbench/bin
# 配置已经生效


注意:修改 /etc/profile下虽然可以使环境变量永久生效,但在系统重启时,可能不再读取/etc/profile文件中的内容,需要在执行 "source /etc/profile"之后才能使环境变量生效;为了避免重启后环境变量不生效的问题,也可以在/etc/profile.d/目录下简历一个path.sh的文件,将export命令写入其中,这样每次系统重启时,都会自动读取文件内容,使环境变量生效。


3. 修改 .bashrc 文件是在当前用户 shell 下生效
# vi /root/.bashrc 在里面加入:
export PATH=$PATH:/usr/local/mysql/bin
修改这个文件之后同样也需要使用 source 或者是 . 使配置文件生效。
再来使用 echo $PATH看下变量是否生效

# echo $PATH


以上是将一个工具命令加入到root用户下的环境变量中,对于非root用户,一般采用第二种方法,在进行 su - 命令切换时,自动读取 ~/bash_profile文件中的环境变量内容,就可以直接使用相关工具的命令了。

更多相关文章

  1. windows linux 创建oracle用户及表空间
  2. (SqlServer)分离所有用户数据库
  3. 如何限制SQL Server中的用户登录尝试
  4. sql plus如何新建新用户
  5. Mysql 创建,授权,删除,修改用户
  6. 解决用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联
  7. 记一次无备份恢复Mysql误删用户数据
  8. MySQL root 用户密码重置
  9. Mysql5.7.10新加用户

随机推荐

  1. Android权限问题 及 APP应用图标
  2. Android使用TextView实现跑马灯效果
  3. 解决:Android中 Error generating final a
  4. Android(安卓)Studio无线调试app之Androi
  5. 配置新的product(译)——android编译系统
  6. android中的线程池
  7. 收藏Android下bitmap内存限制OUT OF MEMO
  8. ADT在线安装(http://dl-ssl.google.com/an
  9. android ImageView src属性不支持.9图
  10. android之interpolator的用法详解