关于linuxPATH的作用.docx
《关于linuxPATH的作用.docx》由会员分享,可在线阅读,更多相关《关于linuxPATH的作用.docx(7页珍藏版)》请在冰豆网上搜索。
关于linuxPATH的作用
关于PATH的作用:
PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。
比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:
/sbin:
/usr/bin:
……。
其中的冒号使目录与目录之间隔开。
关于新增自定义路径:
现在假设你新安装了一个命令在/usr/locar/new/bin下面,而你又想像ls一样在任何地方都使用这个命令,你就需要修改环境变量PATH了,准确的说就是给PATH增加一个值/usr/locar/new/bin。
你只需要一行bash命令exportPATH=$PATH:
/usr/locar/new/bin。
这条命令的意思太清楚不过了,使PATH自增:
/usr/locar/new/bin,既PATH=PATH+":
/usr/locar/new/bin";通常的做法是把这行bash命令写到/root/.bashrc的末尾,然后当你重新登陆LINUX的时候(应该是linux启动时就会执行这个文件),新的默认路径就添加进去了。
当然这里你直接用source/root/.bashrc执行这个文件重新登陆了。
你可以用echo$PATH命令查看PATH的值。
关于删除自定义路径:
当某天你发现你新增的路径/usr/locar/new/bin已经没用了的话,你可以修改/root/.bashrc文件里面你新增的路径。
或者你可以修改/etc/profile文件删除你不需要的路径
Linux中的环境变量
分类:
Linux操作系统2010-08-0310:
32234人阅读评论(0)收藏举报
linuxshellpathbashredhatcommand
1、引言
在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“commandnotfound”的提示内容。
如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。
这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。
本文基于RedHat9.0,详细讲解了环境变量定制的问题。
2、变量简介
Linux是一个多用户的操作系统。
每个用户登录系统后,都会有一个专用的运行环境。
通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。
用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。
3、定制环境变量
环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。
对于Linux来说一般是bash,但也可以重新设定或切换到其它的Shell。
根据发行版本的情况,bash有两个基本的系统级配置文件:
/etc/bashrc和/etc/profile。
这些配置文件包含两组不同的变量:
shell变量和环境变量。
前者只是在特定的shell中固定(如bash),后者在不同shell中固定。
很明显,shell变量是局部的,而环境变量是全局的。
环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。
对于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。
下面通过几个实例来说明。
3.1使用命令echo显示环境变量
--------------------------------------------------------------------------------
#本例使用echo显示常见的变量HOME
$echo$HOME
/home/lqm
--------------------------------------------------------------------------------
3.2设置一个新的环境变量
--------------------------------------------------------------------------------
$exportHELLO=“Hello!
”
$echo$HELLO
Hello!
--------------------------------------------------------------------------------
3.3使用env命令显示所有的环境变量
--------------------------------------------------------------------------------
$env
SSH_AGENT_PID=1875
HOSTNAME=lqm
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
……
--------------------------------------------------------------------------------
3.4 使用set命令显示所有本地定义的Shell变量
--------------------------------------------------------------------------------
$set
BASH=/bin/bash
……
--------------------------------------------------------------------------------
3.5 使用unset命令来清除环境变量
--------------------------------------------------------------------------------
$exportTEST=“test” #增加一个环境变量TEST
$env|grepTEST #此命令有输出,证明环境变量TEST已经存在了
TEST=test
$unset$TEST#删除环境变量TEST
$env|grepTEST #此命令无输出,证明环境变量TEST已经存在了
--------------------------------------------------------------------------------
3.6 使用readonly命令设置只读变量
如果使用了readonly命令的话,变量就不可以被修改或清除了。
示例如下:
--------------------------------------------------------------------------------
$exportTEST="Test..." #增加一个环境变量TEST
$readonlyTEST#将环境变量TEST设为只读
$unsetTEST#会发现此变量不能被删除
-bash:
unset:
TEST:
cannotunset:
readonlyvariable
$TEST="New"#会发现此变量不能被修改
-bash:
TEST:
readonlyvariable
--------------------------------------------------------------------------------
3.7 用C程序来访问和设置环境变量
对于C程序的用户来说,可以使用下列三个函数来设置或访问一个环境变量。
getenv()访问一个环境变量。
输入参数是需要访问的变量名字,返回值是一个字符串。
如果所访问的环境变量不存在,则会返回NULL。
setenv()在程序里面设置某个环境变量的函数。
unsetenv()清除某个特定的环境变量的函数。
另外,还有一个指针变量environ,它指向的是包含所有的环境变量的一个列表。
下面的程序可以打印出当前运行环境里面的所有环境变量:
--------------------------------------------------------------------------------
#include
externchar**environ;
intmain()
{
char**var;
for(var=environ;*var!
=NULL;++var)
printf("%s/n",*var);
return0;
}
--------------------------------------------------------------------------------
3.8 通过修改环境变量定义文件来修改环境变量。
需要注意的是,一般情况下,这仅仅对于普通用户适用,避免修改根用户的环境定义文件,因为那样可能会造成潜在的危险。
--------------------------------------------------------------------------------
$cd#到用户根目录下
$ls-a #查看所有文件,包含隐藏的文件
$vi.bash_profile #修改环境变量定义文件
--------------------------------------------------------------------------------
然后编辑你的PATH声明,其格式为:
PATH=$PATH:
:
:
:
------:
你可以自己加上指定的路径,中间用冒号隔开。
环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:
$source.bash_profile
需要注意的是,最好不要把当前路径“./”放到PATH里,这样可能会受到意想不到的攻击。
完成后,可以通过$echo$PATH查看当前的搜索路径。
这样定制后,就可以避免频繁的启动位于shell搜索的路径之外的程序了。
4总结
通过以上的设置,你可以有一个比较方便有效的环境来提高你的工作效率了。
Linux环境变量总结
上一篇/下一篇 2010-01-2922:
31:
43/个人分类:
Linux
查看(225)/评论(0)/评分(0/0)
现在每天测试到时候会与Linux打交道,自然也会用到环境变量了。
看了网上几篇文章,结合自己到实践和看法,总结以下Linux的环境变量吧。
一、什么是环境变量?
环境变量相当于给系统或用户应用程序设置的一些参数,具体起什么作用这当然和具体的环境变量相关.
Linux是一个多用户的操作系统。
多用户意味着每个用户登录系统后,都有自己专用的运行环境。
而这个环境是由一组变量所定义,这组变量被称为环境变量。
用户可以对自己的环境变量进行修改以达到对环境的要求。
二、定制环境变量
环境变量是和Shell紧密相关的,它是通过Shell命令来设置的。
环境变量又可以被所有当前用户所运行的程序所使用。
对于bash来说,可以通过变量名来访问相应的环境变量。
下面通过几个实例来说明
1.显示环境变量HOME
$echo$HOME
/home/admin
2.设置一个新的环境变量NAME
$exportNAME="Jay"
$echo$NAME
Jay
3.使用env命令(或export)显示所有的环境变量
$env
HOSTNAME=test
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=202.xxx.xxx.xxx5369422
CATALINA_BASE=/usr/local/jakarta-tomcat
SSH_TTY=/dev/pts/0
ANT_HOME=/usr/local/ant
JAVA_OPTS=-server
USER=admin
...
4.使用set(或declare)命令显示所有本地定义的Shell变量
$set
BASH=/bin/bash
BASH_VERSION='2.05b.0
(1)-release'
CATALINA_BASE=/usr/local/jakarta-tomcat
CATALINA_HOME=/usr/local/jakarta-tomcat
...
5.使用unset命令来清除环境变量
$exportNAME="Jay"
$echo$NAME
Jay
$unsetNAME
$echo$NAME
6.使用readonly命令设置只读变量
$exportNAME="Jay"
$readonlyNAME
$unsetNAME
-bash:
unset:
NAME:
cannotunset:
readonlyvariable
$NAME="New"#会发现此也变量不能被修改
-bash:
TEST:
readonlyvariable
三、常见的环境变量
PATH 决定了shell将到哪些目录中寻找命令或程序
HOME 当前用户主目录
HISTSIZE 历史记录数
LOGNAME 当前用户的登录名
HOSTNAME 指主机的名称
SHELL 前用户Shell类型
LANGUGE 语言相关的环境变量,多语言可以修改此环境变量
MAIL 当前用户的邮件存放目录
PS1 基本提示符,对于root用户是#,对于普通用户是$
PS2 附属提示符,默认是“>”
四、通过C程序来访问和设置环境变量
对于C程序的用户来说,可以使用下列三个函数来设置或访问一个环境变量。
getenv()访问一个环境变量。
输入参数是需要访问的变量名字,返回值是一个字符串。
如果所访问的环境变量不存在,则会返回NULL;
setenv()在程序里面设置某个环境变量的函数;
unsetenv()清除某个特定的环境变量的函数。
另外,还有一个指针变量environ,它指向的是包含所有的环境变量的一个列表。
下面的程序可以打印出当前运行环境里面的所有环境变量:
#include
externchar**environ;
intmain()
{
char**var;
for(var=environ;*var!
=NULL;++var)
printf("%s\n",*var);
return0;
}
五、环境变量文件
通过修改一些相关的环境定义文件来修改环境变量,比如对于多数Linux系统,与环境相关的文件有/etc/profile和~/.bash_profile等。
修改完毕后重新登录一次或运行命令sourcexxx就生效了。
/etc/profile或/etc/bash.bashrc
文件中修改环境变量,在这里修改的内容是对所有用户起作用的;
~/.profile或~/.bashrc文件进行环境变量的编辑,只对当前用户有用。
参考文档: