读书频道 > 系统 > linux > Linux就是这个范儿
4.5.4 环境变量
2014-07-05 15:29:52     我来说两句 
收藏    我要投稿   

本文所属图书 > Linux就是这个范儿

本书内容源自淘宝技术大学的培训实战。由来自阿里巴巴集团的资深Linux 系统专家赵鑫磊和同样来自阿里巴巴集团的支付宝网络技术有限公司的高级专家Jie Zhang(张洁)共同著写。两位作者用轻松、诙谐的语言讲解了  立即去当当网订购

当Linux程序启动时,它的运行环境会包含一组名字和值的关联(名字和值都是字符串)。有些是由用户手工设置的,有些是由系统在登录时设置的,有些是由shell或虚拟终端 设置的。这就是环境变量。在Linux下,环境变量一般会携带文件搜索路径、系统默认值、当前用户ID和进程ID等信息,以及其他有关程序运行时环境的关键信息。

环境变量的读取是非常容易的。在C和C++中,环境变量的值可以通过库函数getenv获得。Perl和Python在启动时,会初始化环境变量字典对象。其他语言通常也都采用以上两种方式之一。常见的系统环境变量见表4-1的描述,注意大小写。
表4-1 常见系统环境变量


变量名 用  途
USER 当前会话登录的账户名(BSD约定)
LOGNAME 当前会话登录的账户名(System V约定)
HOME 当前会话的用户home目录,这个变量非常重要,很多程序要通过这个环境变量来了解自己的用户配置文件的位置
COLUMNS 文本控制台或虚拟终端窗口以字符为单位的列数,通过这个环境变量,CLI的程序可以了解一行内最多能输出多少字符
LINES 文本控制台或虚拟终端窗口以字符为单位的行数,通过这个环境变量,CLI的程序可以了解屏幕上最多可以显示多少行文本
SHELL 当前使用的shell的名字
PATH shell搜索可执行程序的目录列表
TERM 当前会话控制台或虚拟终端的名称。最大的用途就是程序能够知道可以使用哪些特性,比如是否可以输出中文等
需要注意的是,当程序是用shell以外的方式启动时,有些系统环境变量甚至是全部系统环境变量都还未设置。特别是那些守护进程,这些系统环境变量都还未设置——即使设置了,那些值也未必有意义。这类程序,尽量不要使用环境变量。另外,当环境变量有多个值的时候,需要使用冒号“:”作为分割,PATH变量就是最典型的例子。

其实环境变量有时候是很难区分什么是系统的,什么是用户的。如果一定要严格划分,那么任何用户都能访问到的就算是系统环境变量,但是值对于每个用户都可能不同,比如HOME。相反,如果只有某个具体的用户才能访问到的,就应该算是用户环境变量,毕竟那是因具体的某个用户而存在的。

尽管应用程序可以在系统定义的范围之外自由解释环境变量,但是这样的做法在Linux中是很少见的。而且环境变量也不适合把结构化信息作为值传递到程序中(虽然原则上可行)。所以,大多数情况都是直接使用现有的环境变量,标新立异的设计一个新的环境变量大多不是明智之举。应该优先考虑配置文件。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:4.5.3 配置文件
下一篇:4.5.5 命令行选项
相关文章
图文推荐
3.3.6 GNOME的软件管
3.3.5 GNOME的文件管
3.3.4 GNOME的窗口管
3.3.3 收藏夹和快捷
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站