Linux 环境变量(PATH)

1、什么是环境变量
环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

简单地说这里的“Path”就是一个变量,里面存储了一些常用命令所存放的目录路径。

环境变量相当于给系统或用户应用程序设置的一些参数, 具体起什么作用这当然和具体的环境变量相关. 比如path, 是告诉系统, 当要求系统运行一个程序而没有告诉它程序所在的完整路径时, 系统除了在当前目录下面寻找此程序外, 还应到哪些目录下去寻找; 再如tc或vc++中, set include=path1;path2; 是告诉编译程序到哪里去找.h类型的文件; 当然不仅仅是指定什么路径, 还有其它的作用的, 如set dircmd=/4 设置一个环境变量的作用是在使用dir命令时会把/4作为缺省的参数添加到你的dir命令之后, 就像你的每个命令都加了/4参数, 它实际上是给命令解释程序command设置的一个环境变量, 并且是给dir这个内部命令设置的。

shell环境依赖于多个文件的设置。当shell被调用时,它从两个初始文件读取命令。/etc/profile包含了系统变量,它由系统管理员维护,由系统管理员设置本地系统变量和特殊命令。普通用户的启动信息文件($HOME/.bash_project)由各用户自己维护,该文件可以被修改以实现任何特定的系统初始化。

只有在特定的情况下才读取profile文件,确切的说是在用户登陆的时候。当运行shell脚本或subshell以后,就无须再读profile.虽然所有profile都可选的,但是基本上所有系统都有/etc/profile.

如果定义了变量ENV且已经传递到环境中,则所有的bash shell都要读取并调用由这个变量制定的文件所包含的命令。这个文件用来定义所有bash shell的特征,而不仅仅是登陆到shell。这个文件的典型的名字是$HOME/.bashrc

当用(系统管理员)新建用户时,.bash_profile、bashrc和其他公共的环境文件模板将复制到/etc/skel这个目录下面。可以编辑这些初始化设置,也可以在此目录下添加附加的文件。

Example:

一个典型的系统profile(/etc/profile):

PATH=$PATH:/usr/qa/tools/bin

ENV==$HOME/.bashrc

ORACLE_HOME=/dbs/oracle

ORACLE_SID=qadb

Export PATH ENV ORACLE_HOME ORCAL_SID

Cat /etc/motd

一个典型的用户profile(.***我也不知道是哪个文件。。草):

PATH=$PATH:$HOME/bin

TEAM=uvt1224 export TERM

sttyintr \^C

cal

mesg n

一个典型的用户 bashrc file (.bashrc):

alias dir=ls lf='ls -FC'

PSI='$PWS[!]>'

set -o vi

别名和其他bash专用的定义应该放在.bashrc文件(不应在.bash_profile) 中定义;否则会导致找不到某些命令。

应该记住profile文件和.bashrc文件的区别:两个profile都只在系统启动时被读取一次,而.bashrc在系统启动和每次调用shell的时候都要被读取。

2、修改环境变量
PATH是环境变量,要大写,那几个目录是你放置linux命令的目录,输入命令后系统会去PATH中寻找是否存在该命令
查看当前环境变量:
echo $PATH
也可以用set命令看一下。

添加PATH环境变量,第1种方法:
[root@lx_web_s1 ~]# export PATH=/usr/local/webserver/mysql/bin:$PATH

再次查看:

[root@lx_web_s1 ~]# echo $PATH         
/usr/local/webserver/mysql/bin:/usr/local/webserver/mysql/bin/:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

说明添加PATH成功。

上述方法的PATH 在终端关闭 后就会消失。所以还是建议通过编辑/etc/profile来改PATH,也可以修改家目录下的.bashrc(即:~/.bashrc)。
 
添加PATH环境变量,第2种方法:
# vim /etc/profile
在最后,添加:
export PATH="/usr/local/webserver/mysql/bin:$PATH"(注意:= 即等号两边不能有任何空格)
保存,退出,然后运行:
#source /etc/profile
不报错则成功。这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变

添加PATH环境变量,第3种方法:

#vi ~/.bash_profile
修改PATH行,把/etc/apache/bin添加进去,比如我原来的是:

PATH=$PATH:$HOME/bin:
export PATH

然后我添加一个路径变成:

PATH=$PATH:$HOME/bin:$ORACLE_HOME/OPatch  (用分号隔开)
export PATH

这种方法是针对用户起作用的.

添加PATH环境变量,第4种方法:

#vi ~/.bashrc

PATH=$PATH:/etc/apache/bin

export PATH

这种方法也是针对用户起作用。比如如果是在root权限操作,则root用户有效。

注意:想改变PATH,必须重新登陆才能生效,以下方法可以简化工作:

如果修改了/etc/profile,那么编辑结束后执行source profile 或 执行点命令 ./profile,PATH的值就会立即生效了。
这个方法的原理就是再执行一次/etc/profile shell脚本,注意如果用sh /etc/profile是不行的,因为sh是在子shell进程中执行的,即使PATH改变了也不会反应到当前环境中,但是source是在当前 shell进程中执行的,所以我们能看到PATH的改变。

时间: 2024-11-01 15:42:54

Linux 环境变量(PATH)的相关文章

Linux系统下修改环境变量PATH路径的三种方法

  电脑中必不可少的就是操作系统.而Linux的发展非常迅速,有赶超微软的趋势.这里介绍Linux的知识,让你学好应用Linux系统.比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格)

Linux有问必答:如何在Linux中修改环境变量PATH

Linux有问必答:如何在Linux中修改环境变量PATH 提问: 当我试着运行一个程序时,它提示"command not found". 但这个程序就在/usr/local/bin下.我该如何添加/usr/local/bin到我的PATH变量下,这样我就可以不用指定路径来运行这个命令了. 在Linux中,PATH环境变量保存了一系列的目录用于用户在输入的时候搜索命令.PATH变量的值由一系列的由冒号分隔的绝对路径组成.每个用户都有特定的PATH环境变量(由系统级的PATH变量初始化)

Linux环境变量

1.什么是环境变量 bash shell用一个称作环境变量的特性来存储有关shell会话和工作环境的信息,它允许你在内存中存储数据,以便运行在shell上的程序和脚本访问 在bash shell中,环境变量分为两类:全局变量和局部变量 (1)全局环境变量 全局环境变量不仅对shell会话可见,对所有shell创建的子进程中需要获得父进程信息的程序来说非常有用.Linux系统在你开始bash会话之前就设置了一些全局环境变量 系统环境变量的一律用全大写字母以区别与普通用户的环境变量 查看全局变量,可

设置Ubuntu环境变量 PATH 的方法 及配置备份

在Ubuntu中有如下几个文件可以设置环境变量  /etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.  /etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量  ~/.profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况

Win7系统中的环境变量PATH怎么修改

  方法一.通过命令设置环境变量 1.打开"开始→运行",在运行框中"cmd",回车打开命令提示符窗口; 2.在打开的命令提示符窗口中,输入"path",回车就可查看环境变量设置; 3. 更改环境变量有两种情况: 一是追加方式,就是在不改变环境变量现有设置的情况下,增加变量的值,比如要给环境变量增加一个值为"D:Python"的设置,可以输入"path=%path%;D:Python";而另一种是完全修改方

win7系统怎么设置环境变量path

  1.通过单击"我的电脑→属性→高级"标签的"环境变量"按钮设置; 温馨提示:第一种设置环境变量的方式只对当前运行窗口有效,关闭运行窗口后,设置就不起作用了.     方法二: 1.在"开始→运行"框中输入"cmd"后按"确定"按钮;   2.在命令提示符下输入"path"即可查看环境变量设置;   更改环境变量有两种情况: 一是追加方式,即在不改变环境变量现有设置的情况下,增加变量的

Linux环境变量加载的研究

我们经常遇到在linux执行某条命令时出现xxx文件没找到的问题.很多情况都不是库没有安装,而是环境变量的错误. 但是,我明明是设置了环境变量啊.所以,我对此进行了试验. 我们登录linux有很多种,bash来交互式执行,或者直接非交互式执行命令.在我的试验后,发现,原来这几个的环境变量加载都是不同的. 相关文件: 从电脑上,我找到这么几个相关文件. 1 /etc/profile 2 /etc/environment 3 /etc/bashrc 4 ~/.bash_profile 5 ~/.ba

oracle字符集是ZHS16GBK Linux环境变量zh_CN.G130,存到数据库里是乱码

问题描述 oracle字符集是ZHS16GBK Linux环境变量zh_CN.G130,存到数据库里是乱码 汉字存进数据库里是乱码,但程序在写LOG日志时能够输出正确的中文 在前端和其他系统交互中的数据也是中文没有错误,谁能帮忙解决一下?

java-关于linux环境变量的问题

问题描述 关于linux环境变量的问题 这环境变量太奇怪了, 用普通用户修改 /etc/profile 添加jdk环境变量 关闭命令窗口重新打开, 输入java -version,能正常输出, 如果 su root 后,再运行java -vertion就报无此命令了, 然后再 su 回普通用户, 输入java -vertion 也成无此命令了,这是什么情况呢? 在切换到其实用户后,怎么才能正常的运行命令呢? 解决方案 你可能输错命令了吧,是java -version不是java -vertion