服务端启动到一半停住了,概览页只显示「运行中」,你不知道它卡在哪一步;朋友说进不来,你想确认端口到底有没有开始监听;插件装完没反应,你想看看它到底有没有被加载。这些问题的答案,基本都藏在「终端」页的最后几十行里。
终端不是「高级玩家专属」。它只做两件事:向服务端发命令,以及看服务端正在输出什么。你不需要会写脚本,只要能认出 Done、ERROR、joined the game 这几种行,就能解决大部分问题。
先给你一个心理准备:这一页很「素」,没有搜索框、没有命令历史、也没有「已连接」的小绿灯。理解它缺什么,比记住它有什么更重要。
入口是底部导航的「终端」;顶部标签切换会话,左侧提示符
>是 MC 控制台,$是 Termux。MC 控制台发的是 Minecraft 命令,命令前带不带
/都可以;Termux 里发的是 Linux shell 命令。只有
stop、kill @e[type=!player]、whitelist off三条会弹确认,其它变体不会拦。屏幕只显示最近 300 行,要看全量去文件页打开
logs/latest.log。服务端没运行时,发出去的命令会被静默丢弃,页面不会报错。
入口在哪:底部「终端」,两个会话#
在底部导航点「终端」,进去看到的是一排会话标签,初始有两个:
MC 控制台:接的是 Minecraft 服务端进程的输入输出。你在这里敲的东西就是服务端命令,例如
list、op Steve、stop。这个会话不能关闭。Termux 1:接的是应用内置的 Termux 兼容环境,一个迷你 Linux shell。这里敲的是 shell 命令,例如
ls、pwd、java -version,不是 Minecraft 命令。
点「新建会话」可以加 Termux 2、Termux 3,新建后会自动切过去;Termux 会话右上角有「关闭」,MC 控制台没有。会话标签可以左右滑动。
判断自己在哪个环境,最快的方法不是看标签名,而是看输入框左边的提示符:> 表示 MC 控制台,$ 表示 Termux。敲错环境的代价不大,但会让你误以为「命令没生效」。
list 不会有任何反应list 是 Minecraft 命令,只在 MC 控制台有效;在 Termux 里它会被当成一个不存在的 shell 命令,报 command not found。反过来,ls、cat 这类 shell 命令在 MC 控制台里也只会得到「未知命令」。敲之前看一眼提示符,能省掉一半困惑。
终端缓冲区有限,单行过长还会被截断。要留证据(比如崩溃前的报错)请在关键操作后立刻复制出来,滚出缓冲区的日志找不回来了。
在 MC 控制台发命令:带不带斜杠都行#
在 MC 控制台的输入框里打字,点右边的发送按钮(或回车)即可。开头带不带 / 都可以,应用会自动把开头的斜杠去掉再写给服务端,所以你从教程里复制 /time set day 直接粘进去也能用。
命令发出去之后,回执会出现在日志里。比如 list 会回一行「There are 2 of a max of 20 players online」,help 会回一大段命令列表。看到回执才说明这条命令真的被服务端收到了。
Termux 会话的行为完全不同:空闲时,你发的命令会启动一个新进程执行,输出逐行回填到终端,命令以非 0 退出码结束时末尾会补一句「(退出码 N)」;如果上一条命令还在跑,你再发送的内容会写进它的标准输入,而不是另起一条。Termux 环境没初始化好时,发送会被静默忽略——没有报错,也没有提示,表现就是「点了发送没反应」。
23 个快捷指令,点一下就发#
MC 会话下方有一排快捷指令芯片,点一下等于替你打完整条命令并发送。全部 23 个按用途分组:
| 类别 | 快捷指令 |
|---|---|
| 天气 | 晴天 weather clear、下雨 weather rain、雷雨 weather thunder |
| 时间 | 白天 time set day、夜晚 time set night、正午 time set noon |
| 游戏模式 | 生存 gamemode survival @p、创造 gamemode creative @p、冒险 gamemode adventure @p、旁观 gamemode spectator @p |
| 难度 | 和平 difficulty peaceful、普通 difficulty normal、困难 difficulty hard |
| 实体与玩家 | 杀死实体 kill @e[type=!player]、玩家列表 list、出生点 spawnpoint @p、清空效果 effect clear @p |
| 世界规则 | 保留物品 gamerule keepInventory true、保存世界 save-all |
| 白名单 | 关闭 whitelist off、开启 whitelist on |
| 服务 | 帮助 help、停止服务端 stop |
芯片只在 MC 会话显示,Termux 会话下面是空的——这也是判断当前会话的一个旁证。
这些指令都是发给服务端的,服务端没运行的时候点它们不会生效。@p 表示「最近的玩家」,一个人测试时通常就是你自己;想让指定的人执行,把 @p 换成玩家名。gamerule keepInventory true 打开的是「死亡不掉落」,改完是永久的,会写进世界数据,不是一次性的。
只有三条命令会弹确认框#
在 MC 会话里,命令去掉首尾空白后完全等于下面三条之一时,会先弹「确认执行危险指令」:
stop:停止服务端;kill @e[type=!player]:清除所有非玩家实体;whitelist off:关闭白名单。
弹框正文会说明这条指令可能停服、清实体或关白名单,点「确认执行」才真正发送,点「取消」就什么都不做。快捷指令里的「停止服务端」「杀死实体」「关闭白名单」同样会被拦下来。
拦截是精确匹配:stop 前后多一个空格会被去掉,仍然会拦;但 stop now、kill @e[type=!player,limit=1] 这类变体不会触发确认,会直接发出去。而且它只看命令文本,不看服务端状态、也不知道你刚改过什么。真正危险的操作,先备份、先想清楚,别指望弹窗兜底。白名单一旦关掉,任何人都能进——包括没有正版账号的人。
日志颜色只是上色,不是过滤#
终端里的日志按关键词上色:命令是绿色,错误是红色,警告是黄色,信息是青色,调试是蓝色,下载和成功各有颜色,普通输出是灰的。它只改颜色,不是级别过滤——所有行都还在,只是有的红有的灰,页面里没有「只看错误」这种开关。
显示限制有三个数字,建议记一下:
屏幕最多渲染 300 行,更早的内容不显示;
单行超过 400 字符会被截断并加省略号,长的报错栈会被切;
底层缓冲保留约 1500 行,再多的从头部丢弃。
自动滚动默认跟随最新输出。上翻超过底部两行,自动滚动就会暂停,工具栏按钮随之变成「继续自动滚动」,点一下立刻回到底部;切换会话也会重置回底部。
想看完整、不被截断的日志,别在终端里硬翻:去文件页打开 logs/latest.log,那是服务端自己写的原文,见 服务端目录结构与文件说明。
工具栏:清空、暂停、复制、新会话#
1.5.0 重做了这一页的骨架:会话改成标签形式(MC 控制台 + 你新建的 shell 并列),顶部动作收进标题栏溢出菜单,输入行换成自绘命令行——长命令加中文输入法时,提示符不会再被挤出屏幕。终端还有独立的深浅色(默认深色,与全局主题解耦),长时间看日志不刺眼。
菜单里的五个动作本身没变:
终端设置:只在中文界面显示,里面是日志汉化开关;
清空当前会话:清掉当前会话的显示缓冲,没有确认,点了就清,而且清掉的内容找不回来;
暂停 / 继续自动滚动:上翻日志时避免被新行拽回底部,暂停时图标会高亮;
复制当前日志:把当前会话的日志整体放进剪贴板,复制的是全部显示行,不是屏幕这一屏;
新建会话:加一个 Termux shell。
复制日志是这一页最有用的功能。报错时别只截半屏图,直接复制整段,粘到记事本、发给自己或贴到搜索框里,比手抄关键词可靠得多。开了汉化时,复制到的内容是「中文摘要 + 原文」的形式;要原文就先把汉化关掉再复制。
汉化只改显示,不改错误#
「终端设置」里的日志汉化默认开启,但它有两个前提:只在系统语言是中文时出现入口,也只影响显示。具体表现是:
常见英文日志会被替换成「中文摘要 +
原文:」的形式,例如Done (12.34s)! For help, type "help"会显示成「服务端已启动完成」,下面附原文;玩家进出、在线人数这类行会保留玩家名,例如「玩家 Steve 加入了游戏」;
原始日志文件不变,也不落盘翻译,去文件页看的还是英文;
它不会修复错误,只是让你更快认出「端口被占用」「内存不足」「白名单拒绝」这类关键词;
规则是按优先级匹配的,有些行会被较宽的规则整行改写,摘要可能盖掉更细的信息——排错时以原文为准。
如果摘要和你的判断有冲突,关掉汉化看原文。日志关键词的完整解释在 小白看日志。
没有历史、没有搜索、没有连接状态#
这一页的能力边界很明确,提前知道能少很多徒劳:
没有命令历史:输入框不会记住上一条,切会话就清空,也没有上下键调历史;
没有搜索:300 行里找关键词只能自己翻,或者复制出去再搜;
没有导出:只能复制到剪贴板,不能直接存成文件;
没有连接状态:页面不显示「已连接/未连接」,也不显示服务端是否在运行。
最后一条最坑人:服务端没运行时,MC 命令会被静默丢弃。应用一路把命令写到「服务端输入流」,但那个流不存在,于是什么都不发生,也没有任何报错。你看到的现象就是「发了命令,终端没反应」。
怎么判断终端还能不能发命令?看日志有没有在动,或者切到 概览页 看状态。别在终端页反复敲命令试探。
用终端确认「真的启动成功」#
启动后不要只看概览页的绿点,按这三步确认:
等
Done:MC 控制台出现Done (...s)! For help, type "help",看到这行才算真正启动完成,端口这时才开始监听。发一次
list:能看到「There are 0 of a max of 20 players online」这样的回执,说明命令通路正常。让朋友进服:终端出现
Steve joined the game,才算联机成功,不只是「服务端起来了」。
卡在 Done 之前,就翻最后 20 行找关键词:ERROR、Exception、UnsupportedClassVersionError、Address already in use、OutOfMemoryError。前两个通常是核心或插件出错,第三个是 Java 版本不对,第四个是端口被占用,第五个是内存给少了。对应处理见 启动失败排查。
有了 Done 但朋友仍进不来,问题多半在网络,不在终端,直接看 联机排错。
终端页能看到「MC 控制台」和「Termux 1」两个标签,输入框左侧分别显示
>和$。服务端启动后,控制台出现过
Done (...s)! For help, type "help"。发
list能收到「There are N of a max of M players online」的回执。点「复制当前日志」后,在别处粘贴能看到多行日志,而不是空白。
关掉汉化再复制一次,确认复制到的是英文原文。