程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的。
系统环境变量:公共的,对全部的用户都生效。
用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。
2)按生存周期分类。
永久环境变量:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。
临时环境变量:使用时在Shell中临时定义,退出Shell后失效。
Linux环境变量也称之为Shell环境量变,以下划线和字母打头,由下划线、字母(区分大小写)和数字组成,习惯上使用大写字母,例如PATH、HOSTNAME、LANG等。
在Shell下,用env命令查看当前用户全部的环境变量。
上图只截取了部分环境变量,并非全部。
用env命令的时候,满屏显示了很多环境变量,不方便查看,可以用grep筛选。
可执行程序的搜索目录,可执行程序包括Linux系统命令和用户的应用程序,PATH变量的具体用法本文后面的章节中有详细的介绍。
2)LANG
Linux系统的语言、地区、字符集,LANG变量的具体用法本文后面的章节中有详细的介绍。
10)CLASSPATH
JAVA语言库文件搜索的目录,它也不是Linux缺省的环境变量,但对JAVA程序员来说非常重要,具体用法本文后面的章节中有详细的介绍。
如果环境变量的值没有空格等特殊符号,可以不用单引号包含。
采用export设置的环境变量,在退出Shell后就会失效,下次登录时需要重新设置。如果希望环境变量永久生效,需要在登录脚本文件中配置。
用户环境变量只对当前用户生效,设置用户环境变量也有多种方法。
在用户的主目录,有几个特别的文件,用ls是看不见的,用ls .bash_*可以看见。
当用户登录时执行,每个用户都可以使用该文件来配置专属于自己的环境变量。
当用户登录时以及每次打开新的Shell时该文件都将被读取,不推荐在里面配置用户专用的环境变量,因为每开一个Shell,该文件都会被读取一次,效率肯定受影响。
当每次退出系统(退出bash shell)时执行该文件。
同名的环境变量,如果在多个脚本中有配置,以最后执行的脚本中的配置为准。
可执行程序的搜索目录,可执行程序包括Linux系统命令和用户的应用程序。如果可执行程序的目录不在PATH指定的目录中,执行时需要指定目录。
1)PATH环境变量存放的是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录。
export PATH=目录1:目录2:目录3:......目录n:.
3)在用户的.bash_profile文件中,会对PATH进行扩充,如下:
4)如果PATH变量中没有包含圆点.,执行当前目录下的程序需要加./或使用绝对路径。
LD_LIBRARY_PATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同。
4、CLASSPATH
JAVA语言库文件搜索的目录,它也不是Linux缺省的环境变量,但对JAVA程序员来说非常重要。
CLASSPATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同。
1)在Shell下,用export设置的环境变量对当前Shell立即生效,Shell退出后失效。
2)在脚本文件中设置的环境变量不会立即生效,退出Shell后重新登录时才生效,或者用source命令让它立即生效,例如:
如果文章有错别字,或者内容有错误,或其他的建议和意见,请您联系我们指正,非常感谢!