电脑技术学习

/dev/tty文件在Unix操作系统中的妙用

dn001

   在Unix系统中,文件是其中最重要的资源。如标准输出文件、标准输入文件、标准错误文件等等。不过这些文件普通用户与系统工程师都需要用到。而在实际工作中,对于系统工程师来说,还需要掌握/dev/tty这个文件。

  这个文件顾名思义,主要用来表示用户的终端,但是它跟普通的终端又有差异。普通的终端是指一些硬件设备,如显示器等等。通常情况下,标准输出或者标准错误流的文件都会输出到终端中。但是,这些标准的输入输出往往不能够输入到/dev/tty文件中。而是需要通过重定向功能,把一些命令的输出重定向到这个文件中。另外需要说明的是,普通终端的话往往是每个用户之间相互独立的。也就是说,每个用户的输出彼此之间是互不干涉的。在用户A的终端中不能够看到用户B的终端信息。但是/det/tty这个文件由其特殊性。这个终端文件可以由各个用户共享。正是因为这个文件有这方面的特殊性,为此在实际工作中系统工程师经常需要用到这个文件。

  一、系统工程师常见需求描述及实现方案。

  利用这个特殊文件,可以帮助系统工程师解决很多实际问题。

  1、利用这个文件来屏蔽不需要的结果信息。通常情况下,为了提高与用户沟通界面的友好性,往往会在脚本程序中,利用echo命令向用户显示一些提示信息。如一个简单的计算器脚本程序,会提示用户输入相关的参数,如“Put one number等等。有时候,还会在程序的开头显示一大堆的程序说明。这毋庸置疑,可以提高脚本程序的可读性。即方便了用户的使用,而且别的系统工程师借助这些说明也可以顺利对其进行功能上的调整与扩展。不过这也会赞成一些工作上的困扰。如当系统工程师调试脚本程序的时候,这些显示的提示信息反而会增加系统工程师的困扰,会增加他们的阅读量。因为此时用户终端上显示的将士全部的信息,即包括对于应用程序没有实际价值的提示信息,也包括一些应用程序执行过程中的错误信息。这显然会给系统工程师阅读错误信息带来一定的麻烦。另外如笔者谈过,系统工程师可以通过重定向符号把这个终端输出的信息重定向到一个文件中。可是此时这个文件中也会显示全部的信息。而这些信息大部分是系统工程师不需要看到的。系统工程师可能只需要一些相关的参数以及具体的执行结果。如10*10=100。就这么简单,而不需要看到一大堆的提示说明。而且如果这个文件中带有这么多的无用信息,对于其他脚本程序来调用这个文件也不是很方便。遇到这种情况时该如何处理呢?其实系统工程师可以轻松的通过/dev/tty文件来过滤这些无用的提示信息。如只需要把脚本程序的运行结果通过重定向服务重定向到/dev/tty文件中。在这个重定向的过程中,Unix系统的shell会采取一定的内部处理机制,会忽略掉echo等命令。也就是说,只要把命令的标准输出重定向到这个文件中,则利用echo命令设置的一些提示信息都会被忽略掉。此时在这个文件中,存储的只有一些必要的运行信息,如错误或者警告信息等等。

标签: