快速业务通道

unix中挖掘环境变量背后的价值

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-12

环境变量可以作用于用户的整个工作环境.同时相关的应用程序也需要利用这些环境变量来获取进程运行的环境变量.不如邮件监测程序,默认情况下会没隔一段时间去查看一下是否有新的邮件.要实现这个功能的话这个邮件监测程序要知道邮件存储的位置与监测的频率.这两样东西就是通过Unix系统的环境变量来实现的.不过在实际工作中,不少Unix系统工程师忽视了环境变量的作用.或者说,没有把环境变量背后的价值挖掘出来.笔者这篇文章或许能够给广大Unix系统爱好者一点启示.

  一、提示符的作用.

  在谈提示符的价值之前,笔者先给大家看一下dos下提示符的显示格式.如下图所示,是微软XP操作系统下DOS版本的截图.



从这个截图中大家可以看出,DOS下的提示符是比较直观的.先是盘符,然后是当前的绝对路径,然后以>符号结尾.但是在Unix系统中却不是如此.在Unix系统下,其路径不是决定路径,而只是显示当前目录的名称.这就给平时的维护造成了一定的困难.那么在Unix系统下能否按DOS下的提示符格式来显示呢?即显示当前的绝对路径.要实现这个功能,就需要从Unix的提示符说起了.

  提示符信息也是Unix操作系统中的环境变量.在shell环境中有两个提示符,分别为PS1与PS2.其中PS1为主提示字符串,即大家平常所看到的那个提示符(可能是一个美元符号$或者一个#字号).通常情况下,如果当前用户是特权用户,则其主提示符可能为#;如果当前用户为普通用户,则其主提示符就为$符号.另外在shell进程中,还可以运行多条命令.此时系统会显示>提示符,这个提示符就是次级提示符,保存在PS2环境变量中.那么如何通过这个提示符来实现如上的需求呢?且听笔者慢慢道来.

  1、需要显示的就是不管是主提示符还是次级提示符,都以>结束.此时系统工程师可以通过改变主提示符的值来实现.如可以通过$PS1=”>”命令来实现.这个命令的作用就是改变这个环境变量的值.另外有些人可能还喜欢在前面加入c:盘符,此时就可以把主提示符PS1的值设置为”c:>”.不过需要注意的是,Unix的文件系统跟微软的文件系统不一样.在Unix操作系统中,其只有一个跟目录,即一个树状结构;而在Windows操作系统中,每个分区都有一个根目录,都有一个独立的树状结构.故在Unix操作系统中没有C、D、E盘的区分.

  2、其次是要实现在提示符中显示绝对路径.此时需要PWD环境变量的帮助.在Linux系统中,pwd命令可以用来显示当前的绝对路径.不过在Unix操作系统中的BASH中(shell的一种),专门提供了一个PWD环境变量.这个环境变量主要用来存储当前光标所在的绝对路径.PWD是一个动态的环境变量.当用户每次切换目录时,这个环境变量都将被重新赋值.如果要在提示符中显示当前的绝对路径,那么只需要把这个变量赋于给主提示符PS1即可.PWD变量动态改变的特性,此时主提示符也会随着PWD环境变量(绝对路径)的改变而改变.具体的赋值命令为:$PS1=’ $PWD’.这里笔者要强调一个小细节.当把一个环境变量赋值给另外一个环境变量时,则需要加入$符号.否则的话,Unix操作系统会把这个变量当作一个普通的字符串来对待.笔者在给学员进行培训时,这是他们经常犯的错误.这注意是他们可能受到以前经验的影响.在一些开发环境中编程的时候,在把某个变量的值赋值给其他变量时,不需要在变量前加入$等类似的特殊符号.但是这里需要注意,在Unix操作系统中如果把某个环境变量的值赋值给另外一个环境变量,要用$符号来标示,否则的话系统会把这个环境变量名字当作普通的字符来处理.

  提示符除了可以模拟实现DOS提示符显示格式之外,还有其他一些重要的作用.如大部分系统工程师在管理Unix服务器的时候,不会直接通过Unix终端控制台来进行.而是利用ssh等远程连接协议进行远程登陆,进行远程维护.如果企业中Unix服务器比较多的话,系统工

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号