8.3.2 进程及通信命令
who和w命令只能查看当前系统用户的情况,而要查询系统中进程的情况,则要使用p s命令。
(1)ps
ps命令的功能是查询系统中当前活动进程的相关信息,该命令的语法格式如下:
ps [选项]
ps命令的常用选项有:
-e:显示所有进程的信息。
-l:以长格式列出进程信息。
-h:不显示标题。
-a:显示所有有终端的进程。
例如,为查看当前进程状况,可直接使用ps命令:
$ps
PID TTY TIME CMD
1309 tty1 0:01 bash
1354 ttyl 0:00 ps
从上述命令的运行结果中可以看到,显示的内容共分为4列,依次为PID(进程标识号)、TTY(关联终端名称)、TIME(进程执行时间)和CMD(该进程的命令行)。
(2)kill
kill命令的功能是向指定进程发送信号,在默认处理方式下,系统将终止指定进程。该命令的常用语法格式如下所示:
kill [选项] 进程标识号
kill命令的常用选项有:
-s 信号:指定需要发送给进程的信号。若没有使用该选项指定要发送的信号,则默认发送SIGTERM。
-l:显示信号名称列表。
例如,要终止进程1409,可以使用下述命令:
$kill 1409
这时发送缺省信号SIGTERM 到进程1409来终止它的运行。
(3)write
write命令的功能是将消息直接发送到另一个用户的终端上,以实现用户之间的通信。write命令的一般格式为:
write 用户名 [终端名]
其中用户名指定接收消息的用户。如果要进行通信的用户在许多终端上都进行了登录,则发送方可以通过终端名来指定要将消息发送到终端。如果接收方在许多终端上都进行了登录,而使用write命令时没有指定终端名,则write命令会自动选择当前空闲时间最少的终端进行通信。
通常情况下,write命令首先进行与接收方的连接。一旦write命令与接收方建立了连接,发送方在终端输入的信息都将在接收方的终端上显示出来,并且这种连接会一直保持下去,直到发送方键入“Crtl+D”为止。但在使用write命令时,有时会出现不能进行通信的情形,如发送方事先用mesg命令禁止了自己终端的消息通道,或接收方当前没有登录到系统上。
例如,用户wang使用write命令与用户zheng通信,可执行以下命令:
$write zheng
此时系统进入发送信息状态,用户可以输入要发送的信息,输入完毕希望退出发送状态时,按“Ctrl+D”即可,如下所示:
Hello:
We have a meeting at Room 412.
Ctrl+D
上述命令执行的结果是用户zheng的屏幕上会显示如下信息:
Message from wang tty3 09:16
Hello:
We have a meeting at Room 412.
(4)mesg
write等通信命令使用户之间相互交流变得极其简单,但系统间的通信也会干扰正常的工作。例如,如果用户正在编辑一篇文章时收到其他用户发布的信息,屏幕就会被这些信息所扰乱,使得编辑工作无法正常进行。想要免除此类不必要的干扰,可以使用mesg命令设定禁止接收他人发布的信息。
mesg命令用来控制其他用户对终端的访问权限,通过它可以设定是否允许其他用户给自己发送信息。对于超级用户,mesg的默认值为禁止;而对于一般用户,系统的默认值为允许。该命令的格式如下:
mesg [选项]
其选项有如下两个:
y:允许其他用户发送信息,是默认值。
n:不允许其他用户发送信息。
如果命令后面没有选项,就显示用户当前的状态是允许还是不允许。
例如,若允许别人给自己发送信息,可输入命令:
$mesg y
(5)wall
如果要向当前登录到系统的所有用户发送信息,可以使用wall命令。wall命令通常由系统管理员使用。例如在系统关闭前,管理员应该向所有登录到系统的用户发出通知,提醒他们在系统关闭前保存有关的数据,此时管理员可以使用wall命令来发布该通知。w all命令的格式为:
wall [消息]其中参数“消息”指定所要发送的信息。如果不指定参数“消息”,则表示从标准输入中读取要发布的信息,此时要通过按“Ctrl+D”来结束消息的输入。
例如,要向所有登录的用户发送消息“Hello,How are you!”,可输入以下命令:
$wall
Hello, How are you!
Ctrl+D
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。