菜鸟科技网

Linux聊天命令有哪些?

Linux 系统提供了多种命令行工具,用于实现本地或远程的文本通信功能,这些工具不仅适用于系统管理员进行远程运维协作,也适合开发者快速共享信息或进行简单的即时交流,以下将详细介绍几种常用的 Linux 聊天命令,包括其基本用法、参数选项及实际应用场景。

Linux聊天命令有哪些?-图1
(图片来源网络,侵删)

本地终端聊天命令

本地聊天命令主要用于同一台主机上的不同终端会话之间通信,适合多用户操作同一服务器时的快速沟通。

write 命令

write 命令允许用户向另一个登录终端发送实时消息,接收方会立即看到弹出的提示(若终端处于活动状态)。
基本语法

write [用户名] [终端名]

示例
向用户 alice 的终端 pts/0 发送消息:

write alice pts/0
Hello, this is a test message from write command.

发送完成后按 Ctrl+D 结束输入,接收方终端会显示类似 Message from root pts/1 on ... 的前缀,随后是消息内容。
注意事项

Linux聊天命令有哪些?-图2
(图片来源网络,侵删)
  • 需确保目标用户已登录且终端可写(如未被其他程序占用)。
  • 若目标用户未开启消息权限(如通过 mesg n 禁用),发送会失败。

wall 命令

wall(write all)用于向系统所有在线用户广播消息,常用于系统维护通知。
基本语法

wall [消息内容或文件]

示例
通过键盘输入广播消息:

wall The system will undergo maintenance at 2:00 AM. Please save your work.

或从文件读取消息广播:

wall /etc/maintenance_msg.txt

效果:所有登录用户的终端会立即弹出消息,前缀为 Broadcast message from root

Linux聊天命令有哪些?-图3
(图片来源网络,侵删)

mesg 命令

mesg 用于控制当前终端是否接收来自其他用户的 writewall 消息。
语法

mesg y    # 允许接收消息(默认)
mesg n    # 禁止接收消息

检查状态

mesg

输出 is y 表示允许,is n 表示禁止。

网络聊天命令

网络聊天命令支持跨主机的文本通信,需依赖网络协议(如 TCP/IP),适用于远程协作或调试。

nc(Netcat)

nc 被称为“网络工具中的瑞士军刀”,可通过 TCP 或 UDP 实现简单的聊天服务。
场景1:点对点聊天

  • 发送端(监听指定端口,如 1234):
    nc -l -p 1234
  • 接收端(连接到对方 IP 的 1234 端口):
    nc 192.168.1.100 1234
    ```  会实时传输至对方终端,按 `Ctrl+C` 终止连接。  

场景2:文件传输
发送方通过 nc 发送文件:

nc -l -p 1234 < file.txt

接收方保存文件:

nc 192.168.1.100 1234 > received_file.txt

常用参数

  • -l:监听模式
  • -p:指定端口
  • -u:使用 UDP 协议(默认 TCP)

telnet

telnet 是基于 TCP 的远程登录工具,也可用于简单聊天(需目标端口开放 Telnet 服务)。
示例
连接到远程主机的 23 端口(默认 Telnet 端口):

telnet 192.168.1.100 23

连接成功后可直接输入文本进行通信,但 Telnet 流量未加密,安全性较低,现多被 SSH 替代。

ssh 结合命令实现聊天

虽然 SSH 主要用于远程登录,但可通过管道和命令组合实现临时聊天功能。
示例
用户 A 在本地通过 SSH 向用户 B 的远程主机发送消息:

echo "Hello from user A" | ssh userB@remote_host "wall"

或利用 tee 命令实现双向简单聊天(需双方配合):

# 用户 A 执行(监听本地 5555 端口并转发到用户 B 的远程终端)
nc -l -p 5555 | ssh userB@remote_host "tee /dev/pts/0"
# 用户 B 执行(将输入发送到用户 A 的本地 5555 端口)
ssh -R 5555:localhost:5555 userA@local_host "nc localhost 5555"

此方法较为复杂,适合临时应急场景。

专业聊天工具的命令行版

除了系统原生工具,还有一些第三方命令行聊天客户端,支持更丰富的功能(如群组、加密等)。

weechat

weechat 是一个开源的命令行 IRC 客户端,支持 IRC、Slack、Telegram 等协议的扩展。
安装(以 Ubuntu 为例):

sudo apt install weechat

基本使用
启动后通过 /server 命令连接 IRC 服务器(如 irc.freenode.net),再通过 /join #channel 加入频道。
常用命令

  • /query nickname:与用户私聊
  • /msg #channel message:向频道发送消息
  • /part:离开频道

tmux + shell 实现本地协作

tmux 是终端复用工具,可通过共享会话实现多人实时协作。
操作步骤

  1. 用户 A 创建新会话:
    tmux new -s chat_session
  2. 在会话中共享:
    tmux share -t chat_session
  3. 用户 B 加入会话:
    tmux attach -t chat_session

    双方在同一终端会话中操作,输入内容实时同步。

聊天命令对比与选择

以下表格总结了常用命令的适用场景及特点:

命令 类型 协议/依赖 优点 缺点 适用场景
write 本地 本地终端权限 简单易用,无需配置 需目标终端在线且未禁用消息 同主机多终端快速沟通
wall 本地 本地系统广播 支持全局通知 消息无法定向,可能打扰用户 系统维护广播
nc 网络 TCP/UDP 灵活,支持文件传输 需手动指定端口,无加密 临时点对点通信或文件传输
telnet 网络 TCP 系统原生,兼容性好 流量未加密,安全性低 旧系统调试或简单远程交互
weechat 网络 IRC/扩展协议 支持多协议,功能丰富 需学习命令,配置较复杂 长期 IRC 协作或跨平台聊天

相关问答 FAQs

Q1:使用 write 命令时提示“write: alice has messages disabled”,如何解决?
A:这表示目标用户通过 mesg n 禁用了消息接收,可让目标用户执行 mesg y 开启权限,或改用 wall 广播(若需全局通知),或通过 nc 等网络工具绕过本地权限限制。

Q2:如何通过 nc 实现加密聊天?
A:可结合 openssl 使用 SSL/TLS 加密,发送端监听 1234 端口并启用加密:

nc -l -p 1234 --ssl -cert cert.pem -key key.pem

接收端连接时启用加密验证:

nc --ssl 192.168.1.100 1234

需提前生成证书文件(cert.pemkey.pem),确保双方信任证书链。

分享:
扫描分享到社交APP
上一篇
下一篇