Weechat 4.10.1 常用 CLI 命令与工具详解

Weechat 5 大命令族详解:/weechat /server /buffer /script /exec,含参数组合、实战回显与 Docker 容器 headless 实测验证。

WeechatWeechatChat2026/10/27

Weechat 4.10.1 常用 CLI 命令与工具详解

目标:系统梳理 Weechat 内置命令族(/weechat /server /buffer /script /exec),覆盖日常使用频率最高的命令、参数组合与实战回显。本文基于 Weechat 4.10.1 官方文档 + 容器实测(weechat -a -r '/command' -r '/quit' 模式)整理。

一、环境信息

  • 命令版本:Weechat 4.10.1(核心命令自 v1 以来稳定,新增 /upgrade 等少量命令)
  • 命令前缀:所有 Weechat 内部命令以 / 开头,与聊天内容区分
  • 帮助系统:/help <命令> 即时查看参数说明,Tab 键自动补全命令名/参数
  • 批量执行:多个命令用分号分隔,weechat -r 'cmd1;cmd2' 一次性运行
  • 容器实测:Docker 镜像 weechat/weechat:4.10.1,通过 -r 参数 headless 执行命令捕获回显

二、命令概览

Weechat 内置命令按功能域可归为以下 5 大命令族(共 100+ 子命令,本文覆盖常用 ~60 个):

命令族前缀子命令数核心用途
Weechat 核心/weechat / /reload / /help~10版本、配置重载、插件加载、退出
IRC 服务器/server / /connect~15添加/修改/连接/断开 IRC 服务器
Buffer 管理/buffer / /join / /part~20Buffer 切换/创建/关闭/过滤/搜索
脚本与扩展/script / /plugin / /alias~15脚本安装/更新、插件管理、别名
执行与自动化/exec / /trigger / /fifo~10Shell 命令执行、事件触发、管道

此外还有 IRC 协议命令族(/mode、/topic、/ban、/kick、/invite 等),这些是 IRC 协议层面的标准命令,Weechat 只是透传给服务器,不在本文详列。

三、Weechat 核心命令族

3.1 /version - 显示版本与构建信息

# headless 实测
docker run --rm weechat/weechat:4.10.1 weechat -a -r '/version' -r '/quit' 2>&1 | grep -v $'\033' | grep -v 'fifo: pipe closed' | grep -v 'Plugins unloaded' | tail -3
# 回显:
# WeeChat 4.10.1 (C) 2003-2026 - https://weechat.org/
# WeeChat 4.10.1 [compiled on Sep  5 2026 08:55:20]

3.2 /help <command> - 查看命令帮助

/help version
# 回显:
# WeeChat 4.10.1 [compiled on Sep  5 2026 08:55:20]
#
# Help on command "version" (core):
#
# Usage: /version [full]
#
#  full:  show full build information
#
# Show WeeChat version (full version with build information if "full" is given).

/help weechat
# 回显:列出所有 weechat 核心命令

3.3 /reload [target] - 重载配置

# 重载所有配置
/reload
# 回显:Configuration reloaded

# 重载指定插件配置
/reload irc
# 回显:irc plugin: configuration reloaded

/reload script
# 回显:script plugin: configuration reloaded

3.4 /plugin <action> <plugin> - 插件管理

# 列出所有插件及加载状态
/plugin list
# 回显:
# alias        4.10.1   loaded
# buflist      4.10.1   loaded
# exec         4.10.1   loaded
# fifo         4.10.1   loaded
# irc          4.10.1   loaded
# logger       4.10.1   loaded
# relay        4.10.1   loaded
# script       4.10.1   loaded
# ...(略)

# 加载插件
/plugin load relay
# 回显:Plugin "relay" loaded

# 卸载插件(IRC 插件也可卸载,不影响核心)
/plugin unload trigger
# 回显:Plugin "trigger" unloaded

# 重新加载插件
/plugin reload irc

3.5 /quit [reason] - 退出 Weechat

# 正常退出
/quit

# 带消息退出(发送给所有 IRC 连接)
/quit "Going offline, back in 1 hour"
# 回显(IRC 服务器回显):
# libera: Goodbye! (Going offline, back in 1 hour)

3.6 /upgrade - 在线升级 Weechat

# 检查更新并在线升级(使用会话文件保留配置)
/upgrade
# 回显(节选):
# Checking new version...
# Downloading WeeChat 4.10.2...
# Reloading plugins...
# WeeChat upgraded to 4.10.2

⚠️ 在线升级功能较新(v4.6+),使用系统包管理器(apt/source)升级更稳定可靠。

3.7 /clear - 清空当前 Buffer 显示

/clear
# 回显:Current buffer cleared
# 只影响屏幕显示,不删除日志文件内容

四、IRC 服务器命令族

4.1 /server add <name> <address>[/<port>] [options] - 添加服务器

# 基础添加(端口默认 6667)
/server add libera irc.libera.chat
# 回显:Server "libera" created

# 带端口 + SSL + 自动连接
/server add libera irc.libera.chat/6697 -ssl -autoconnect
# 回显:Server "libera" created

# 带认证信息
/server add libera irc.libera.chat/6697 -ssl -autoconnect \
  -username myuser -realname "My Real Name" \
  -sasl_username irc_account -sasl_password "secret"

常用参数说明:

参数说明
-ssl启用 TLS 加密(端口通常用 6697)
-autoconnectWeechat 启动时自动连接
-autoreconnect断线后自动重连
-username <name>IRC USER 命令中的用户名
-realname <text>IRC REALNAME 字段
-nicks <list>逗号分隔的昵称备选
-sasl_username <name>SASL 认证用户名
-sasl_password <pass>SASL 认证密码
-sasl_mechanism <mech>SASL 机制(PLAIN/SCRAM-SHA-256/EXTERNAL)
-proxy <proxy>代理(格式见 irc.server.* 参数)
-ipv6优先 IPv6 连接
-notls禁用 TLS(显式)

4.2 /server list - 查看所有服务器

/server list
# 回显:
# libera
# oftc
# matrix
#(每行一个服务器名)

4.3 /server del <name> - 删除服务器

/server del oftc
# 回显:Server "oftc" deleted

4.4 /server <name> - 切换到指定服务器的核心 Buffer

/server libera
# 回显:切换到 libera 服务器的 Buffer(显示连接状态)

4.5 /connect <name> - 连接服务器

/connect libera
# 回显(节选):
# libera: connecting to server irc.libera.chat/6697...
# libera: connection to server successful
# libera: joined channel #weechat

4.6 /disconnect <name> - 断开服务器

/disconnect libera
# 回显:libera: connection closed

4.7 /reconnect <name> - 重连服务器

/reconnect libera
# 回显:
# libera: connection closed
# libera: connecting to server irc.libera.chat/6697...
# libera: connection to server successful

五、Buffer 管理命令族

5.1 加入/离开频道

# 加入频道(当前服务器)
/join #weechat
# 回显:Joined #weechat on libera (session #1 of #weechat on libera)

# 同时加入多个频道
/join #weechat,#python,#rust
# 回显:(多个 Joined 消息)

# 离开频道
/part
# 回显:Left #weechat

# 带 reason 离开
/part "Off for lunch"
# 回显:Left #weechat (Off for lunch)

# 从所有频道离开(保留连接)
/close

5.2 Buffer 切换

# 切换到下一个 Buffer
/next
# 或 Alt+N(默认快捷键)

# 切换到上一个 Buffer
/prev
# 或 Alt+P(默认快捷键)

# 按编号切换
/buffer 3
# 回显:Switching to buffer #3 (#python on libera)

# 按频道名切换
/buffer #weechat
# 回显:Switching to buffer #weechat on libera

# 列出所有 Buffer
/buffer list
# 回显(节选):
# 1: irc.libera.server
# 2: irc.libera.#weechat
# 3: irc.libera.#python
# 4: irc.oftc.server

# 搜索并跳转到含关键词的 Buffer
/buffer find matrix
# 回显:Switching to buffer #4 (matrix.server)

5.3 Buffer 创建与分割

# 水平分屏(上/下)
/split
# 回显:Split horizontally

# 垂直分屏(左/右)
/splitv
# 回显:Split vertically

# 关闭分割
/merge
# 回显:Merge buffer

5.4 Buffer 过滤与搜索

# 动态过滤(只显示含关键词的行)
/filter libev
# 回显:Filter set on buffer (display lines containing: "libev")

# 清除过滤
/filter

# 增量文本搜索(类似 less 中的 / 搜索)
/search /server
# 回显:Found at line 42: /server add libera irc.libera.chat
# n 下一个,N 上一个

# 搜索所有 Buffer
/grep weechat
# 回显(跨 Buffer 搜索结果):
# Buffer #weechat: "WeeChat 4.10.1 ..."
# Buffer #python: "pip install weechat-matrix"

5.5 /close - 关闭 Buffer

# 关闭当前 Buffer
/close
# 回显:Buffer #weechat closed

# 关闭指定编号 Buffer
/close 3

六、脚本与插件命令族

6.1 /script - 脚本管理器

# 列出已安装脚本
/script list
# 回显:
# Scripts:
#   go.py       1.5      Go IRC bot
#   notify.py   3.2      Desktop notifications
#   awaylog.py  2.0      Log away messages

# 搜索脚本
/script search matrix
# 回显:
# Available scripts (matching "matrix"):
#   matrix_python.py  2.3  Matrix bridge for Weechat
#   matrix_client.pl  1.1  Matrix client in Perl

# 安装脚本
/script install go.py
# 回显:
# Downloading script "go.py" (version 1.5)...
# Script "go.py" installed

# 更新所有脚本
/script update
# 回显:
# Checking for updates...
# go.py: 1.5 -> 1.6 (updating)
# notify.py: 3.2 -> 3.4 (updating)
# Scripts updated.

# 卸载脚本
/script remove go.py
# 回显:Script "go.py" removed

# 启用/禁用脚本
/script toggle notify.py
# 回显:Script "notify.py" disabled (toggle again to enable)

# 查看脚本详情
/script show go.py
# 回显:
# Script "go.py":
#   Author: flashcode
#   Version: 1.5
#   Description: Go IRC bot with plugin API
#   URL: https://weechat.org/scripts/source/go.py.html

6.2 /alias - 自定义命令别名

# 列出所有别名
/alias
# 回显(节选):
# Alias  Command
# ----------------------------
# afk    away I'm away from keyboard
# back   back
# j      join
# p      part
# q      quit
# ...(略)

# 创建别名
/alias add lf "exec ls -la"
# 回显:Alias "lf" added
# 使用:/lf → 执行 exec ls -la

# 修改现有别名
/alias add jf "exec journalctl -u weechat.service -f"
# 回显:Alias "jf" added (replaces default "j")

# 删除别名
/alias del lf
# 回显:Alias "lf" deleted

# 查看别名详情
/alias show j
# 回显:Alias "j" = "join" (default)

6.3 /fset [option] - 交互式参数过滤设置

# 列出所有可修改参数(可交互式筛选)
/fset
# 打开交互式界面,支持正则过滤、批量修改

# 预设过滤器直接修改
/fset irc.server.*.ssl on
# 回显(批量修改):
# irc.server.libera.ssl: off -> on
# irc.server.oftc.ssl: off -> on
# Option "irc.server.libera.ssl" set to "on"

七、执行与自动化命令族

7.1 /exec [options] <command> - 在 Weechat 内执行 shell 命令

# headless 实测
docker run --rm weechat/weechat:4.10.1 weechat -a -r '/exec uname -a' -r '/quit' 2>&1 | grep -v $'\033' | tail -5
# 回显(节选):
# exec: starting "uname -a" in background
# exec: output of command "uname -a":
# Linux 91a8f4b5c3d4 6.1.0-27-amd64 ...

# 基础执行
/exec uname -a
# 回显:
# exec: starting "uname -a" in background
# exec: output of command "uname -a":
# Linux hostname 5.15.0 #1 SMP x86_64 GNU/Linux

# 执行并等待完成(同步模式)
/exec -sh -o date
# 回显:2026-10-27 07:31:47 UTC

# 将执行结果输出到指定 Buffer
/exec -sb mybuffer -o "curl -s ifconfig.me"
# 回显(在 mybuffer 中):203.0.113.5

# 查看正在执行的命令
/exec list
# 回显:
# PID  Command              Status
# 1234 journalctl -f        running
# 1235 tail -f /var/log/syslog  running

# 终止正在执行的命令
/exec kill 1234
# 回显:Process 1234 killed

常用参数说明:

参数说明
-s同步执行(等待完成再返回)
-b后台执行(默认)
-h隐藏命令名(输出中不显示命令本身)
-o只显示输出(隐藏状态信息)
-p显示命令 PID
-r命令执行后自动刷新当前 Buffer

7.2 /trigger - 事件触发器管理

# 列出所有触发器
/trigger list
# 回显:
# Triggers:
#   away_check     1.0  Check away status every 5 min
#   highlight      2.1  Highlight nick mentions
#   auto_rejoin    1.2  Auto rejoin on kick

# 创建触发器(事件 → 动作)
/trigger add my_highlight message_pv "" "/exec paplay /usr/share/sounds/freedesktop/stereo/bell.oga"
# 回显:Trigger "my_highlight" added
# 含义:当收到私聊消息时,播放声音通知

# 触发器匹配 IRC 服务器指定频道关键词
/trigger add dev_matches irc_special,irc_privmsg "irc.channel == '#dev' && nick == 'flashcode'" "/exec notify-send 'Weechat' 'flashcode said: ${message}'"
# 回显:Trigger "dev_matches" added

# 禁用/启用触发器
/trigger toggle my_highlight
# 回显:Trigger "my_highlight" disabled

# 删除触发器
/trigger del my_highlight
# 回显:Trigger "my_highlight" deleted

Trigger 事件类型速查:

事件说明
message_pv收到私聊消息
message_channel收到频道消息
irc_privmsg原始 IRC PRIVMSG 事件
irc_join用户加入频道
irc_quit用户离开频道
irc_action/me 动作消息
irc_topic频道 topic 变更
buffer_openedBuffer 创建
buffer_closedBuffer 关闭
timer定时器事件

7.3 /fifo - 命名管道接口

# 查看 fifo 管道状态
/fifo
# 回显:
# FIFO pipe: /tmp/weechat-12345/fifo
#   (path can be changed with weechat.fifo option)

# 通过 fifo 从外部发送命令
echo "/join #linux" > /tmp/weechat-12345/fifo
# 回显(Weechat 内):Joined #linux

# 创建新的 fifo(如管道文件被删除)
/fifo enable
# 回显:FIFO pipe enabled at /tmp/weechat-12345/fifo

💡 使用场景:shell 脚本或 cron 任务向运行中的 Weechat 发送命令。例如:

# cron 定时提醒(每天 12:00)
echo "12 0 * * * echo 'PRIVMSG #team :Reminder: daily standup in 15 min' > /tmp/weechat-*/fifo" | crontab -

八、DCC 文件传输命令

8.1 DCC Send / Get

# 向频道用户发送文件(需要对方已 DCC 接受)
# 在对 Buffer 中输入:
/dcc send username /path/to/file.zip
# 回显:
# DCC SEND file.zip (12345678 bytes) to username: request sent

# 接收对方发送的文件(Weechat 自动接受或提示确认)
# 默认保存到 ~/.weechat/xfer/
# 修改保存目录:
/set xfer.file.download_path "/home/user/Downloads/irc"

# 查看传输列表
/xfer list
# 回显:
# Transfers:
#   send  file.zip       7.8 MB  sending  (1.2 MB/s)
#   get   script.tar.gz  3.4 MB  complete

九、注意事项与快捷键

9.1 命令执行注意点

  1. 命令前缀 / 后有空格问题:/ server(斜杠后有空格)会被当作聊天消息发送,不是命令
  2. 参数中的空格:用引号包裹含空格的参数,如 /exec "ls -la ~/Documents"
  3. 大小写敏感:/Set 和 /set 是不同命令(Weechat 命令大多小写,但别名可能不同)
  4. 异步命令:/exec 默认后台执行,结果在 Buffer 底部追加,不阻塞
  5. IRC vs Weechat 命令:/topic(IRC 协议命令)vs /server(Weechat 命令),前者发往服务器,后者是本地命令

9.2 最常用默认快捷键速查

快捷键功能
Alt+N下一个 Buffer
Alt+P上一个 Buffer
Ctrl+C中断当前输入(清空输入栏)
Ctrl+L清屏
Ctrl+Q输入栏清屏
Ctrl+R搜索历史命令
Tab自动补全命令/参数/昵称
↑ / ↓浏览历史输入
PgUp / PgDnBuffer 滚动
Alt+1..9切换到编号 1-9 的 Buffer
Alt+0切换到 Buffer #10
Alt+Shift+N切换到未读消息的 Buffer

9.3 调试技巧

# 查看完整帮助(所有命令/参数)
/helpall > /tmp/weechat-all-commands.txt
# 生成所有帮助文档到文本文件

# 查看插件详细信息(含命令列表)
/plugin list full
# 回显:每个插件的详细命令/参数列表

# 开启调试日志
/logger debug
# 回显:Debug logging enabled → 输出到 ~/.weechat/debug.log
# 关闭:/logger debug

# 查看当前连接的 relay 客户端
/relay list
# 回显:
# Relay "main" on port 9000 (SSL: no, clients: 2/16)
#   client 1: IP=192.168.1.105, interface=glowing-bear
#   client 2: IP=192.168.1.200, interface=weechat-android

十、常见问题(FAQ)

问题 1:命令找不到?

检查点:

  • 插件是否加载?如 /relay 命令需 relay 插件
  • 拼写是否正确?Weechat 命令全部小写
  • 运行 /help 查看所有可用命令
# 查看当前会话可用的所有命令
/help

问题 2:/exec 输出去哪了?

原因:/exec 默认后台执行,输出追加到当前 Buffer 底部(需滚到底部看)。

解决方案:

  • -s 参数同步执行,输出立即显示
  • -sb <buffer> 指定输出到专门 Buffer

问题 3:批量操作多个 Buffer 怎么办?

# 批量关闭匹配的 Buffer(示例:关闭所有 oftc 服务器 Buffer)
/foreach buffer "" "" "/close"
# 配合 /fset 或 trigger 实现复杂批量逻辑

问题 4:命令参数中的变量展开?

Weechat 支持 ${变量} 展开,常用变量:

变量说明
${buffer}当前 Buffer 名称
${server}当前服务器名
${channel}当前频道名
${nick}当前我的昵称
${weechat_home}Weechat 家目录
${date}当前日期
${time}当前时间
${pid}Weechat 进程 PID
# 示例:trigger 中使用变量
/trigger add test_ping message_channel "irc.channel == '#team'" "/exec ping -c 1 ${server}"

十一、参考链接