在Linux下使用源码安装软件的时候,通常只能在软件安装目录下使用该软件命令(使用yum命令安装的除外),如果希望全局使用,可以将软件安装路径添加到系统环境变量里。
假设是/home/myfile/run/script目录下的aa.sh,想要在所有目录都可以运行某个命令,可以使用如下几个方法:
前面两个方法主要是因为/bin目录已经在系统的环境变量里了,下面主要说说怎么添加环境变量
export PATH=/usr/local/webserver/php/bin:$PATH
export PATH=${PATH}:/home/myfile/run/script
这样搜索你执行命令时,系统就会到这个目录查找.
export使用方法为:
export PATH=$PATH:路径1:路径2:路径n;
$PATH为系统变量,表示之前所有设置的路径,如果不加则之前所有的路径都失效。所以必须加上。
sudo vim /etc/profile
#要让修改马上生效,需要在修改后source一下
source /etc/profile
#也可以修改/etc/rc.local文件和/root/.bashrc文件
source .bash_profile
$ vi /home/li/.bashrc
#添加如下内容:
#export 代表声明路径变量,其中每个路径以冒号:分割
export PATH=PATH:新软件路径
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar
注:修改文件后要想马上生效还要运行source /home/li/.bashrc不然只能在下次重进此用户时生效。
sudo vim /etc/environment
#注销或者重启可以使修改生效,如果要使添加的环境变量马上生效可以采取以下方式:
source /etc/environment
source profile
#命令使得当前脚本文件命令生效,即执行脚本的内容,相当于
. profile
通过上面这两个方法运行的环境变量值会传递给父进程
source命令也称为“点命令”也就是一个符号(.).source命令通常用于重新执行刚修改的初始或文件,使之立即生效,而不必注销并重新登录。
/bin/bash test.sh
若通过bash方法,虽然可以运行test.sh来配置环境变量,但是bash命令创建了一个子进程,其定义的变量不会传递给父进程,所以执行完毕后不能够真正修改运行的环境变量
使用readonly命令设置只读变量,如果使用了readonly命令的话,变量就不可以被修改或清除了。
使用unset命令来清除环境变量
unset TEMP_KEVIN
#删除环境变量TEMP_KEVIN
env命令是environment的缩写,用于列出所有的环境变量
env
系统PATH路径所包含的软件目录
echo $PATH
添加软件运行路径到path中
显示环境变量HOME
echo $HOME
/home/terry
用C程序来访问和设置环境变量
对于C程序的用户来说,可以使用下列三个函数来设置或访问一个环境变量。
getenv()访问一个环境变量。输入参数是需要访问的变量名字,返回值是一个字符串。如果所访问的环境变量不存在,则会返回NULL。
setenv()在程序里面设置某个环境变量的函数。
unsetenv()清除某个特定的环境变量的函数。