Unix中的环境变量的应用

环境变量在Unix操作系统中的地位不用笔者多说,大家都知道。但是在Unix操作系统中,有几个环境变量经常被人所忽视。笔者有时候跟一些经验比较丰富的系统工程师交流时,他们也不知道有这个环境变量。笔者今天就给大家介绍一下这些被忽视的环境变量,以及其应用。帮助大家扫扫认识的盲区。

一、防止文件被意外覆盖。

在Unix操作系统中,有一个很特殊的符号,叫做重定向符。通过这个符号,可以把一些屏幕的显示的结果或者其他内容重定向到一个文件中。显然这个重定向符号很受系统工程师的欢迎。如利用这个符号可以轻易的把当前目录下所有的文件名字保存到一个文件中。但是,这个符号也有一个缺陷。如某个文件已经存在,现在系统工程师再利用重定向符号创建同名的文件时,原来的文件就会在没有任何提示的情况下被覆盖掉。显然如果在操作时一不小心,就会带来不可挽回的损失。有时候,为了避免这种情况,我们系统工程师在使用重定向符号创建文件的时候,还不得不先查看一下当前目录下是否存在这个文件。

为此,有时候我们希望在使用重定向符号创建文件时,默认情况下是不覆盖文件的。如果当目标文件已经存在的话,则系统会提示错误信息。除非用户在重定向符号命令中,利用参数指定让系统覆盖原有的文件。这个需求能够实现吗?答案当然是肯定的。这就需要用到一个被大家所忽略的环境变量noclobber参数。

如我们需要实现上面这个需求的话,则可以进行如下设置。Set –o noclobber。这个命令的意思就是对文件采取了一种保护措施。当重定向需要建立的目标文件已经存在时,系统会提示错误信息(文件已经存在),并拒绝建立这个文件。如此的话,目标文件就不会被意外覆盖掉。不过有时会系统工程师可能知道目标文件的存在。如查看进程时,前后两次执行相同的命令。此时系统工程师就希望重定向符号覆盖原有的文件。此时,系统工程师也不需要去取消这个保护措施。而只需要在重定向符号后面加入一个|参数。如ls *.jpg >| image.txt即可。这个命令的含义是显示当前目录下所有的JPG文件,并把其文件名字保存到image.txt文件中。如果目标文件已经存在的话,就覆盖它。

显然这个noclobber环境变量参数提供了一种文件被意外的保护机制。如果Unix操作系统用作服务器或者开发的目的,则笔者建议启用这个环境变量参数。因为在这些应用场合,重定向符号用的特别多。有时候可能目标文件已经存在,但是可能由于疏忽而导致文件被意外覆盖,那时系统工程师再后悔也没有用了。所以,此时启用这个参数的话,就可以最大限度的降低由此带来的损失。为此笔者建议在这些场合中,最好能够启用这个被人遗忘在角落的环境变量,以提高文件的安全性。

二、~的替换作用。

~在Unix操作系统中叫做代字符。这也是一个在Unxi操作系统中被忽视但是却很有作用的一个环境变量符号。简单的来说,这个代字符可以用来表示主目录。如现在在Unix操作系统上新建了一个用户Jussin,并为其安装了一个邮件客户端。默认情况下这个邮件是保存在其用户的主目录下(如果在安装的过程中没有改变安装路径)。此时在特权用户下,系统工程师需要马上切换到这个用户的主目录下,进行邮件的维护。此时,如果没有这个~代字符的帮助,那么系统工程师不得不先确认这个用户的主目录,然后再利用cd命令一层层的进去。显然这个操作会比较麻烦。其实,在Unix操作系统中,有一种更加简便的方法。如只需要在命令行中输入,cd ~jussin,系统就会自动登录到这个用户的主目录。所以说,我们把这个代字符用来表示用户的主目录。这笔刚才介绍的传统操作要简便许多。

时间: 2024-10-02 19:20:28

Unix中的环境变量的应用的相关文章

Visual Studio 2008 、 Windows 环境变量介绍 和 如何在文件中引用环境变量 .

Visual Studio 2008  和 Windows 环境变量对设置 相对路径很重要,这样便于代码的移植,即使换一台计算机,代码不用更改配置,直接就能用. 可以在项目的"工具""属性页"对话框中任何接受字符串的位置使用这些宏.这些宏不区分大小写.  关于如何自己定义环境变量详见我的另一文章:http://blog.csdn.net/jtop0/article/details/7574139     宏 说明 $(RemoteMachine) 在"调试

Win7系统中的环境变量PATH怎么修改

  方法一.通过命令设置环境变量 1.打开"开始→运行",在运行框中"cmd",回车打开命令提示符窗口; 2.在打开的命令提示符窗口中,输入"path",回车就可查看环境变量设置; 3. 更改环境变量有两种情况: 一是追加方式,就是在不改变环境变量现有设置的情况下,增加变量的值,比如要给环境变量增加一个值为"D:Python"的设置,可以输入"path=%path%;D:Python";而另一种是完全修改方

C语言中使用环境变量的技巧

实例1: 程序readenv.c显示了在c语言中存取环境变量的若干技巧.该程序将以与dos的set命令相同的格式打印出当前所有的环境变量,然后寻找path变量,打印出整个路径字符串.该程序中有两个重要的子程序,find_env_string(),它的主要作用是:根据从调用这传来的要求,或者从环境空间的起点开始,或者从上一次搜索後停留的地方开始,寻找随后的第一个环境字符串,具体程序清单如下. /**************readnv.c****************/ #include #in

Linux有问必答:如何在Linux中修改环境变量PATH

Linux有问必答:如何在Linux中修改环境变量PATH 提问: 当我试着运行一个程序时,它提示"command not found". 但这个程序就在/usr/local/bin下.我该如何添加/usr/local/bin到我的PATH变量下,这样我就可以不用指定路径来运行这个命令了. 在Linux中,PATH环境变量保存了一系列的目录用于用户在输入的时候搜索命令.PATH变量的值由一系列的由冒号分隔的绝对路径组成.每个用户都有特定的PATH环境变量(由系统级的PATH变量初始化)

Java中的环境变量设置---理解

java中环境变量的设置,主要是设置设置JAVA_HOME,CLASSPATH,在path变量中增加java的bin目录.当然现在都是用工具开发,可以不设置CLASSPATH,可能会有问题,所以还是尽量设置. JAVA_HOME C:Javajdk1.6.0_30(java的安装目录,) PATH C:Javajdk1.6.0_30bin(%JAVA_HOME%lib)(不要新建path在原来的path路径上新加java到bin的路径就可以了,) CLASSPATH .;%JAVA_HOME%l

Linux中修改环境变量及生效方法_Linux

在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是"永久的". 要让刚才的修改马上生效,需要执行以下代码 source /etc/profile 以上这篇Linux中修改环境变量及生效方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索

bootargs中的环境变量说明和一些常用的uboot命令

bootargs中的环境变量说明和一些常用的uboot命令      一些常见的uboot命令:Help [command]在屏幕上打印命令的说明Boom [addr]启动在内存储器的内核Tftpboot通过tftp启动内核Saveenv保存环境变量setenv name [value]  设置环境变量 bootargs中的环境变量console:告诉内核从哪接收启动信息  例如:console=ttyS0,115200n8//115200比特率,8位Video:告诉内核信息怎么配置视频设备,例

Linux中修改环境变量PATH

PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻.用以下命令可以看到 PATH的值. $ echo $PATH 例如,在主机中,用户yogin的PATH值为: /opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/yogin/bin 其中":"为分隔符.所以,上面的一串目录可以看成是如下的目录列表. /opt/kde/bin /usr/local/bin /bin:/usr/bin /u

Linux中PATH环境变量的查看和添加方法

$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑 PATH 声明,其格式为: PATH=$PATH:<PATH1>:<PATH2>:<PATH3>:--:<PATHN> 你可以自己加上指定的路径,中间用冒号隔开.环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句: $source .bash_profile 可用 export命令查看P