http://www.educity.cn 作者:佚名 来源:希赛教育
   二、~的替换作用。

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

    当~符号后面不加用户名,而直接加/符号后者不加任何内容的话,表示当前用户的主目录。如系统工程师往往需要修改用户的配置文件,以达到某些目的。此时系统工程师需要使用vi命令来编辑这个配置文件,如vi $HOME/.profile。这个命令的含义就是打开当前用户主目录下面的。profile配置文件。在输入这个命令的时候,HOME必须大写,以为其代表的是环境变量。在输入这个命令的时候,比较麻烦。一是需要使用$这个特殊符号,二是需要转换大小写模式。因为vi命令必须为小写,而HOME环境变量必须为大写。所以在输入的时候有些不方便。其实此时系统工程师也可以利用~这个代字符来简化输入。如在这个代字符的帮助下,上面这个命令就可以简化为vi ~/.profile即可。这可以就可以免除大小写转换的麻烦。

    另外,我们还可以利用~代字符快速切换到当前用户的主目录。如cd ~就表示切换到当前用户的主目录。这使用起来非常的方便。另外,使用系统工程师还可以使用cd ~-命令,切换到最近一次进入的目录中。也就是说,采用以上这两个命令,可以快速的在最近使用的目录与当前用户主目录之间进行切换。这对于日常的维护工作是非常方便的。有时候系统工程师在开发一些嵌入式程序的时候,也经常需要用到这两个命令。因为其可以非常方便的实现在用户主目录与当前目录之间的切换。所以说,这个~代字符其大部分系统工程师所忽视,其作用仍然不可小瞧。不过其有一个缺点,就是通用性不是很好。据笔者所知,并不是在所有的shell 中都支持这个代字符。如在Bourne shell中,就不支持这个代字符。如使用vi ~/.profile命令,会提示错误信息。所以这是这个代字符最大的缺陷。系统工程师在使用过程中,需要注意这个通用性的问题。如果不考虑这个问题的话,那么这个代字符真的是一个很不错的环境变量。