感谢支持
我们一直在努力

Linux下关于环境变量的一些心得

一、Linux下环境变量的定义


首先,环境变量分为两种,系统环境变量和用户环境变量。
系统环境变量对所有用户都有效,二用户环境变量只对某个用户有效。
Linux下,环境变量被分别保存在多个文件中。


第一级:


/etc/profile
该文件在用户第一次登录的时候被加载(?引用他处,为什么是第一次登录),也是操作系统定义环境变量时读取的第一个文件。


此文件为所有的用户设置环境信息。
在我使用的Ubuntu 10.10中,该文件默认并没有直接定义全局变量,而是通过读取/etc/profile.d 、/etc/profile.d/*.sh和/etc/bash.bashrc。


第二级:


/etc/environment
该文件是用户在登录操作系统之后,操作系统配置环境时所使用的第二个文件。
顾名思义,该文件中保存了一系列环境变量,这些变量将对所有的用户和终端起效。


到这一级为止,文件定义的都是系统环境变量,之后的文件都是在定义用户变量。


第三级:
~/.bash_profile
在登录的时候配置环境所用到的第三个文件。
值得注意的是在不同Linux中,这个文件的名字不同,可能的名字有~/.bash_profile、~/.bash_login、~./profile其中的一种或者几种。www.linuxidc.com如果存在的话,执行的顺序为~/.bash_profile、~/.bash_login、~/.profile。
在我手里的Ubuntu10.10中,只有一个~/.profile
在我的操作系统中,该文件定义了变量的使用,通常情况下第四级中的~/.bashrc被忽略。


第四级:
~/.bashrc
该文件包含了专用于一个用户的bash的环境信息,每次登录或者新开shell的时候(包括在图形界面下打开新的终端),该文件被读取。
该文件只会在新开的终端中起效。原有终端不会受到影响。


~/.bash_logout
该文件在每次退出bash的时候被执行。


二、Linux下环境变量的使用


1、shell命令
set显示当前shell的变量,包括了当前用户的变量。
注意,”shell的变量”包括当前用户的一系列文件以及shell自身的变量,比如BASH、BASH_ARGC等。
shell变量的定义可以通过直接输入命令”aaa=bbb”,来实现定义变量aaa的值为bbb。


在我手中的Ubuntu10.10中这个命令如果不带参数直接执行的话,不会显示变量,而是显示了大量的代码。
若要查询某个shell变量的值,可以使用命令”set|grep 变量名”。


env则只显示当前用户的变量。
export若不带参数则显示用户变量的shell变量,若带参数,则将该shell参数添加至用户变量。


readonly命令可以将变量设定为只读,只读的参数不能被修改或者删除。


2、C程序命令
getenv()返回一个环境变量。


setenv()设置一个环境变量。


unsetenv()清除一个环境变量。


3、常见的环境变量
PATH:决定了shell将在哪些目录中寻找命令和程序
HOME:当前用户的主目录
MAIL:当前用户的邮件存放目录
SHELL:当前用户用的是那种Shell
HISTSIZE:保存历史命令记录的条数
LOGNAME:当前用户的登录名
HOSTNAME:主机的名称。
LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量
PS1:基本提示符,对于root是#,对于普通用户为$,在我手中的ubuntu10.10中则是一个字符串,显示了用户名、系统名和当前目录名在内的信息。
PS2:是附属提示符,默认是”>”。可以修改此环境变量来修改当前的命令符。

赞(0) 打赏
转载请注明出处:服务器评测 » Linux下关于环境变量的一些心得
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏