捕获传入的终端消息(写入/消息)

捕获传入的终端消息(写入/消息)

write允许向连接的用户终端发送消息。

$ echo "hello budy" | write budy

当消息干扰终端操作时,这会变得非常烦人。彻底的解决方案包括阻止所有传入消息

是否有中间解决方案可以将消息转储到文件而不干扰终端?

答案1

你可能会嘲笑罗艾玛的评论,但我完全同意他的观点。

垃圾邮件发送者放在一边,即使有人write出于善意试图向您发送某些内容,该消息也可能会中断您的工作流程并损坏您的显示(正如您在原始帖子中所说),或者甚至可能完全被忽视(例如,如果您正在运行的实用程序)正在产生大量输出,或者如果您在文本编辑器中滚动等)(发件人也不会知道您错过了该消息)。

write/mesg是近 50 年前的遗留物,反映了那个时代最先进的用户体验。在我看来,它们在当今世界没有立足之地,供应商应该停止提供这些工具(即阻止写入其他人的 tty 的可能性)。

禁用向您的终端发送消息,并要求您的朋友通过其他渠道与您联系。电子邮件、即时消息/聊天软件、电话、短信,应有尽有。 (我是认真的,不是讽刺。)

现在,从技术上讲,可以编写一个实用程序来获取 tty 线路,设置其权限以允许消息,注册 utmp 记录,然后每当收到消息时将其转储到文件中。我不知道有任何这样的实用程序存在,但编写一个应该不难。据称(正如我曾经听说过的那样,我还没有验证过)曾经有一个 KDE 实用程序可以执行此操作,然后将消息显示为图形弹出窗口。


附注:

您的问题涉及“连接的用户”,因此我假设在您的用例中,人们通过 ssh 连接到某个服务器(可能在大学校园左右)。一个类似有趣的问题是mesg/write在图形会话和图形终端模拟器中。

为了mesg/write为了工作,utmp需要注册一个记录。然而,utmp应该包含登录信息,终端仿真器是不是你所在的地方登录到系统。

许多终端仿真器确实执行utmp日志记录,而许多其他仿真器则不执行日志记录。我想世界正在变得越来越少这样做,因为最近出现了许多新的终端模拟器,我怀疑他们是否添加了这个旧功能。还,gnome-terminal 删除了 utmp 日志记录大约 7 年前(如果你感兴趣的话,你可以在那里阅读更多赞成和反对的论点,包括我阐述的观点)。

相关内容