第二章 (作者:胡靓)
第三节 屏幕显示指令
UNIX基本命令中,提供一些让我们在屏幕上显示字符或文档的命令这些命令让我们以UNIX系统规定的几种方式显示文本内容。除了显示“给自己看”外,还能显示在同一系统上的其他用户的终端上(如果对方允许的话)。
一:直接显示文字
指令:echo [-n] 参数
在这里我们用方括号将选项括起来,说明这个选项是可要可不要的,在本书中以后都将使用这种表示法。
将命令中参数内容直接显示在屏幕上,如果使用“-n”的选项,则写后不换行,紧接行尾出现下一提示符,如果没有“-n”,则写后换行,新提示符出现在下一行的行首。
如:(在此例中我们用斜体来表示用户从键盘键入的内容。)
$echo this is UNIX system <CR>
this is UNIX system
$echo -n i am a user <CR>
i am a user $echo ‘good moring’<CR>
good moring
$
从上面的例子中我们可以看到:要输出的内容可以以参数的形式在命令中给出,好象用不用引号效果也差不多,其实这还是有一定区别的。当我们不用引号时,每个单词相当于一个参数,ECHO命令只在每个参数之间留一个空格,所以它们之间无论有多少空格都只当一个来处理,而用上引号后,总体就是一个参数,字符串可以原样打印。
$echo this is my order.<CR>
this is my order.
$echo 'this is my order.'<CR>
this is my order.
二:按标题显示
banner命令可以将字符放大来显示。该命令没有选项在没有选项时将内容放大138倍显示,一般都看不清楚,所以我们可以用-w
数字的方式来显示,后面的“数字”就表示了放大的倍数。参数就是需要打印的内容。
$banner -w 50 hi! <CR>
三:write命令
echo 和banner命令都是写给自己看的,而write命令就主要是用于写给别人看。当有多个用户同时使用一个分时的UNIX主机时,就可以用这个命令给别人送消息。
write 登录名 [终端号]
write命令可以带两个参数,一个是用户标识符,另一个是终端号,只有当一个用户名在多台终端上登录时,终端号才有意义。所以通常终端号可以省去。
$write ding <CR>
do you have times afternoon?
当我们送出write命令并回车以后,本机提示符$不再出现,这时我们所输入的每一字符都会在对方屏幕上显示。一般来说,我们在给对方发送消息之前,都要先通知一下对方
。这时我们不用再单独通知,因为当我们按下write语句的回车键以后,对方机器会“嘟”一声,中断当前工作,同时显示“message
from *** ”,其中***为发信人的登录标识,然后双方可以对话,当要结束时,可以约定一个代号,然后分别用<ctrl><d>退通话的过程其实就是互相键入想告诉对方的语句,在不管两个终端中哪一个上键入的内容都会显示在对方终端上。为了表示清楚,我们用下划线标出从对方发过来的消息,斜体字是当前用户输入的。如:tty01上:用户hu
tty02上:用户ding
$write ding message from hu.......
hello! hello! 〈CTRL─D〉
message from ding...... $write hu
fine fine
〈CTRL?/FONT>D〉 〈CTRL?/FONT>D〉
或者成如下的对话模式:
$write ding $message from hu.......write
hu
do you want to drink? -o- do you want to
drink?-o-
yes, thanks.-o- yes, thanks.-o-
let's go!-oo- let's go!-oo-
〈CTRL?/FONT>D〉 〈CTRL?/FONT>D〉
$ $
在第二个例子中,当用户ding收到用户hu的呼叫时,他也键入“write
hu”再回车,此时双方可以对话。双方的约定用
"-o-"表示一行的结束 ,用 "-oo-"表示全部对话完毕,最后使用<ctrl><d>,各自退出交互状态。有些系统中,提供命令talk来作对话,talk只能两人对话,用法与write一样。但是talk可以将用户自己写的内容和别人写来的内容分开,而且如果对方不应答就无法交谈。
四:mesg 命令
如果别人没事而我很忙,就会觉得老是有人给我发消息很烦,这时我可以拒绝接收消息,mesg命令就是做这个工作的。
它有三种用法:
1. mesg n
禁止别人送来消息,执行此命令后,若别人还想往我的终端write,他将得到错误信息:“write:permission
denied”,消息无法发出。
2. mesg y
当执行了“mesg n”以后,不再禁止别人往我的终端上“write”,就可以用这个命令解除禁令,允许别人送来消息。
3.mesg
查看当前是否允许别人发送消息过来。
$mesg n
$mesg
is n
$mesg y
$mesg
is y
注意:“mesg n”不能禁止超级用户(root)发来的消息。