ytalk 是 talk 命令的增强版本,支持多个用户同时参与同一个聊天会话。它将终端屏幕分割成多个部分,每个用户都可以在自己的部分输入文本,并实时看到其他用户的输入。
# 安装 ytalk 客户端
sudo apt install ytalk
# 安装 ytalk 守护进程(如果需要)
sudo apt install ytalkd
# 安装相关依赖
sudo apt install libncurses5-dev
# CentOS/RHEL 7/8
sudo yum install ytalk
# Fedora
sudo dnf install ytalk
# 从源码编译安装
sudo yum install ncurses-devel
wget http://www.ytalk.org/download/ytalk-3.3.0.tar.gz
tar -xzf ytalk-3.3.0.tar.gz
cd ytalk-3.3.0
./configure
make
sudo make install
# 基本语法
ytalk [选项] [用户1[@主机1]] [用户2[@主机2]] ...
# 邀请模式
ytalk -i [选项] 用户[@主机]
参数说明:
用户 - 要聊天的用户的登录名主机 - 远程主机的主机名或IP地址| 选项 | 说明 |
|---|---|
-h 或 --help |
显示帮助信息 |
-v 或 --version |
显示版本信息 |
-x 或 --debug |
启用调试模式 |
-i |
邀请模式,邀请用户加入聊天 |
-s 文件 |
将会话保存到指定文件 |
-n 昵称 |
设置用户昵称 |
-c 文件 |
使用指定的配置文件 |
-p 端口 |
指定连接端口 |
-a |
自动接受所有邀请 |
-d |
在后台运行(守护进程模式) |
# 用户A:发起与用户B和用户C的三方聊天
ytalk alice bob charlie
# 用户B和用户C的终端会收到邀请:
# ytalk invitation from alice@localhost
# Accept invitation? [y/n]
# 用户B和用户C接受邀请后,三方聊天开始
# 与远程主机上的用户聊天
ytalk bob@server1 charlie@server2
# 或者使用IP地址
ytalk bob@192.168.1.100 charlie@192.168.1.101
# 远程用户需要运行ytalk服务或使用相同的命令加入
# 用户A:创建一个聊天会话并邀请用户B
ytalk -i bob
# 或者邀请多个用户
ytalk -i "bob charlie david"
# 被邀请的用户会收到通知,可以选择加入
# 将会话保存到文件
ytalk -s /tmp/chatlog.txt alice bob
# 聊天结束后,可以查看保存的记录
cat /tmp/chatlog.txt
# 保存记录并设置昵称
ytalk -n "ChatMaster" -s chatlog.txt alice bob
# 创建配置文件
cat > ~/.ytalkrc << 'EOF'
# ytalk 配置文件
set nickname "MyNick"
set autosave yes
set savefile ~/.ytalk_history
set bell on
EOF
# 使用配置文件启动
ytalk -c ~/.ytalkrc alice bob
=== ytalk 聊天室:alice, bob, charlie ===
[系统消息] charlie 已加入聊天
--------------------------------------------------
[alice]
你好,大家好!
我正在测试 ytalk 的多用户功能。
[bob]
嗨 alice!这个工具很不错。
它可以支持多少人同时聊天?
[charlie]
据我所知,ytalk 可以支持多个用户。
我们三个人肯定没问题。
[你的输入区]
在这里输入你的消息...
按回车发送,Ctrl+C 退出
--------------------------------------------------
屏幕布局说明:
| 命令/快捷键 | 功能 |
|---|---|
| Ctrl + C | 退出聊天 |
| Ctrl + L | 刷新屏幕 |
| Ctrl + Z | 挂起 ytalk 会话 |
/help |
显示帮助信息 |
/who |
显示在线用户 |
/nick 新昵称 |
更改昵称 |
/msg 用户 消息 |
发送私密消息 |
/quit 或 /exit |
退出聊天 |
/save 文件 |
保存聊天记录 |
/clear |
清屏 |
/invite 用户 |
邀请用户加入 |
# ytalk 用户配置文件
# 设置昵称
set nickname "ChatUser"
# 自动保存聊天记录
set autosave yes
set savefile ~/.ytalk_history
# 消息铃声设置
set bell on
set beep on
# 屏幕设置
set reverse off
set bold off
# 颜色设置(如果终端支持)
set color_user "green"
set color_system "yellow"
set color_input "cyan"
# 自动接受邀请
set autoaccept no
# 忽略列表
ignore user1@host1
ignore user2@host2
# 好友列表
friend bob@localhost
friend alice@192.168.1.100
# 默认端口
set port 12345
# 调试模式
set debug off
# 系统级 ytalk 配置
# 全局设置
set maxusers 20
set timeout 300
set logfile /var/log/ytalk.log
# 安全设置
set allow_remote yes
set require_auth no
# 网络设置
set port_range 12345:12355
set bind_address 0.0.0.0
# 服务设置
set daemon_mode no
set pidfile /var/run/ytalkd.pid
# 启动 ytalk 守护进程
sudo ytalkd -d
# 指定端口运行
sudo ytalkd -p 12345 -d
# 使用配置文件
sudo ytalkd -c /etc/ytalkd.conf -d
# 查看运行状态
ps aux | grep ytalkd
netstat -tlnp | grep ytalkd
# /etc/ytalkd.conf 示例
port = 12345
max_users = 50
timeout = 600
log_file = /var/log/ytalkd.log
pid_file = /var/run/ytalkd.pid
allow_remote = true
require_auth = false
# 启动服务
sudo ytalkd -c /etc/ytalkd.conf -d
# 停止服务
sudo kill $(cat /var/run/ytalkd.pid)
可能原因: ytalkd 服务未运行或防火墙阻止
解决方案:
# 1. 检查 ytalkd 服务状态
ps aux | grep ytalkd
# 2. 启动 ytalkd 服务
sudo ytalkd -d
# 3. 检查防火墙设置
sudo iptables -L -n | grep 12345
sudo ufw status
# 4. 检查端口是否监听
sudo netstat -tlnp | grep :12345
# 5. 使用不同端口尝试
ytalk -p 12346 user@host
可能原因: 用户未登录或网络问题
排查步骤:
# 1. 检查用户是否登录
who
w
# 2. 检查用户是否运行 ytalk
ps aux | grep ytalk | grep username
# 3. 检查网络连通性
ping remote-host
telnet remote-host 12345
# 4. 检查用户配置
cat ~/.ytalkrc
# 5. 使用调试模式
ytalk -x user@host
可能原因: 终端兼容性问题
解决方案:
# 1. 检查终端类型
echo $TERM
# 2. 设置正确的终端类型
export TERM=xterm
ytalk user@host
# 3. 调整终端尺寸
stty rows 40 cols 80
ytalk user@host
# 4. 使用简单模式
# 某些版本支持简单显示模式
ytalk -s simple user@host
# 5. 检查终端颜色支持
tput colors
# 如果小于 8,可能需要调整颜色配置
irssi, weechat
功能丰富的IRC客户端,支持多服务器、多频道、脚本扩展等。
# 安装 irssi
sudo apt install irssi
irssi -c irc.freenode.net
screen / tmux终端复用器,支持多窗口和会话共享,适合团队协作。
# 使用 tmux 共享会话
tmux new -s shared
# 其他人加入
tmux attach -t shared
Slack, Discord, Mattermost
功能完整的团队协作工具,支持文件共享、视频通话等。
nc (netcat)简单的网络工具,可以创建基本的聊天服务器。
# 服务端
nc -l 12345
# 客户端
nc server 12345
telegram-cliTelegram 的命令行客户端,支持现代聊天功能。
# 安装 telegram-cli
sudo apt install telegram-cli
telegram-cli
开发团队在服务器上进行实时讨论和问题解决,无需离开终端环境。
教师和学生之间的实时问答和讨论,支持多个学生同时参与。
多个系统管理员协作处理故障,实时分享信息和命令输出。
talk双向聊天
write单向消息
wall广播消息
mesg消息控制