Linux命令:write
write 命令基本介绍write是 Linux 系统中用于向其他用户终端发送消息的命令。它允许用户与同一系统上的其他登录用户进行实时通信。write是系统用户之间进行即时通讯的工具。资料合集https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a语法write USERNAME [TTY]使用示例1. 向指定用户发送消息writeusername输入示例Hello! How are you? This is a test message.结束输入按CtrlD结束消息输入。2. 向指定终端发送消息writeusername pts/03. 发送单行消息echoHello from write command|writeusername4. 向多个用户发送消息# 向用户组发送消息使用 wall 命令wallHello everyone!5. 在脚本中使用 write#!/bin/bash# 检查用户是否登录ifwho|grep-q^username ;thenechoUser is logged inechoSystem maintenance in 10 minutes|writeusernameelseechoUser is not logged infi6. 发送文件内容catmessage.txt|writeusername输出格式说明接收方看到的消息Message from senderhostname on pts/0 at 10:00 ... Hello! How are you? This is a test message. EOF错误输出示例write: user invalid_user is not logged in write: permission denied write: no tty specified工作原理write 执行流程# 1. 用户执行 write 命令writeusername# 2. 检查目标用户是否登录# 3. 检查目标用户是否允许消息mesg 设置# 4. 读取用户输入# 5. 发送消息到目标用户终端相关文件文件说明/var/run/utmp当前登录用户信息/dev/tty*终端设备文件实用技巧检查用户是否可以接收消息#!/bin/bashUSERNAMEjohn# 检查用户是否登录ifwho|grep-q^$USERNAME;then# 获取用户终端TTY$(who|grep^$USERNAME|awk{print $2})# 检查终端权限PERM$(ls-l/dev/$TTY|cut-c8)if[$PERMw];thenecho$USERNAMEcan receive messageselseecho$USERNAMEhas disabled messagesfielseecho$USERNAMEis not logged infi发送定时提醒#!/bin/bash# 发送提醒消息send_reminder(){localuser$1localmessage$2ifwho|grep-q^$user;thenecho$message|write$userechoReminder sent to$userelseecho$useris not logged infi}# 使用示例send_reminderjohnDont forget the meeting at 3 PM!批量发送消息#!/bin/bash# 向所有登录用户发送消息MESSAGESystem will restart in 5 minutes for maintenance.foruserin$(users);doechoSending message to$userecho$MESSAGE|write$user2/dev/null||truedone相关命令mesg控制终端消息权限wall向所有用户发送消息talk与其他用户进行对话users显示当前登录用户who显示当前登录用户w显示当前登录用户及其活动注意事项目标用户目标用户必须已登录消息权限目标用户必须允许消息mesg y终端指定如果用户登录多个终端可能需要指定终端root 用户root 用户可以向任何用户发送消息结束输入按CtrlD结束消息输入总结write是 Linux 系统中用于向其他用户终端发送消息的工具。它允许用户与同一系统上的其他登录用户进行实时通信。write是系统用户之间进行即时通讯的工具。

相关新闻