/dev/tty文件在Unix操作系统中的妙用
在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命令设置的一些提示信息都会被忽略掉.此时在这个文件中,存储的只有一些必要的运行信息,如错误或者警告信息等等. 2、当作其他命令的参数./dev/tty文件不仅可以用作终端设备来管理,这个文件还可以被用来当作其他命令的参数.一个终端就相当于一个文件,为此在一些命令中如tee命令就可以拿这个文件当作参数.Tee命令是一个分流命令,其主要用途就是把一个输入流的一个副本保存到另外一个文件中.有时候这个特性非常有用.如现在系统工程师需要利用who命令来显示Unix系统的当前登录用户.同时希望把这个显示结果保存到一个特定的文件中.如果没有tee这个命令的话,则需要通过两个步骤才能够完成.需要利用who命令在当前终端中显示相关的结果.然后再利用who >重定向符号把这个命令的显示结果保存到一个特定的文件中.如果一开始就采用who >进行重定向的话,则在用户终端将不会显示任何信息.其直接把结果保存到了一个文件中.而现在系统工程师即希望把命令的结果输出到终端中,同时保存到一个文件中,就需要利用te |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |