xterm终端模拟器实战:从命令行参数到.Xresources配置
说起终端模拟器很多人脑子里冒出来的是 GNOME Terminal、kitty、alacritty 这些潮流货。但我今天想认真聊聊的是那个从 1984 年活到现在的老家伙——xterm。你没看错就是那个在 X Window 系统里出生、比绝大多数用电脑的人年纪都大的终端。只要你还跑着 Xorg、跑着任何 Linux 桌面哪怕只是偶尔需要开一个干净利落的字符界面xterm 都可能是你绕不开、甚至越用越喜欢的工具。这篇东西不是 xterm 的 man page 翻译而是我这么多年在各类服务器、桌面环境、远程会话里折腾 xterm 的实战笔记。我会从它是什么开始讲然后一步步拆解启动参数、菜单操作、uxterm 的编码坑、.Xresources 配置最后整理一份常见问题速查。无论你是刚接触 Linux 的新手还是已经在终端里泡了很多年的老手这篇文章里大概率有你能直接抄走的东西。1. 为什么 2024 年了我还在用 xterm1.1 一个“老古董”凭什么活到现在xterm 是 X Window System 的标准终端模拟器1984 年由 MIT 的 Mark Vandevoorde 开发后来 Jim Gettys 接手再后来一直维护到今天。这个出身意味着两件事第一它是 X11 体系里“不可分割”的一部分几乎所有发行版在安装 X 相关组件时都会默认带上它第二它的代码经过了几十年的打磨稳定性和兼容性好到离谱。很多人觉得 xterm 功能少、界面丑、配置麻烦这话对了一半。它的默认配置确实朴素得不行但 xterm 的设计哲学是“把能力藏起来而不是堆在界面上”。它不靠花哨的 UI 吸引你而是靠扎实的终端语义、完整的控制序列支持、极低的资源占用取胜。我在一台内存只有 512MB 的旧笔记本上同时开十几个 xterm 窗口系统依旧流畅换作现代终端早就开始 swap 了。1.2 xterm 与主流终端模拟器的核心差异拿 xterm 和 GNOME Terminal、Konsole、kitty 这类现代终端做对比你会发现它们的定位完全不同。现代终端追求的是开箱即用的舒适体验标签页、背景透明、字体渲染、GPU 加速、快捷键管理器样样都给你配齐。而 xterm 追求的是“精确、可预测、可脚本化”。具体来说xterm 有几点是绝大多数现代终端比不了的字体回退与 bitmap 字体支持xterm 可以直接使用 X11 的 bitmap 字体-fn参数指定这在某些极简窗口管理器环境、字体服务器异常的场景下是救命稻草。精确的控制序列兼容性终端里跑 TUI 程序比如 htop、vim、tmux时xterm 对光标控制、颜色、鼠标事件的解析非常标准很少出现“花屏”或“控制字符乱飞”的现象。资源占用极低没有 GPU 渲染、没有 Web 引擎一个 xterm 进程的内存占用通常不到 10MB。配置文件是纯文本.Xresources文件里几行配置就能搞定一切改完xrdb重载即刻生效不用重启终端。但这不意味着 xterm 就适合所有人。如果你需要的是“下载即用、界面好看、标签页方便”的体验那现代终端确实是更好的选择。xterm 更适合那些人愿意花半小时读配置文档、喜欢把每一行配置都掌握在自己手里、或者在远程和最小化环境里需要一个绝对可靠底牌的玩家。1.3 什么人最应该学 xterm我总结了三类人可以从 xterm 中真正获益第一类是窗口管理器重度用户尤其是用 i3、dwm、awesome 这类平铺式 WM 的。这些环境里终端是主角而 xterm 因为启动快、配置内聚跟键盘流操作天然契合。第二类是经常处理远程会话和串口连接的人。xterm 对字符集、终端类型TERMxterm的处理非常传统且稳定SSH 到老设备、嵌入式开发板时很多现代终端反而会因为终端类型不匹配而出问题xterm 却几乎从不掉链子。第三类是对终端原理有好奇心的人。xterm 的菜单里藏着许多 X11 底层交互的痕迹比如Allow SendEvents、Show Alternate Screen Buffer拆开琢磨能让你对终端模拟这件事有非常直观的理解。2. 把 xterm 跑起来启动、退出与最常用的命令行参数2.1 启动 xterm 的几种方式安装了 xterm 之后大多数发行版的包名就是xtermDebian/Ubuntu 下用sudo apt install xtermArch 下是sudo pacman -S xterm最直接的启动方法就是在任意终端里敲xterm如果你是从桌面环境的启动器里找它一般被归类在“系统”或“终端”类别下名字就叫“Xterm”或“UXTerm”。但这种方式启动的是默认配置真正好用的 xterm 得靠参数和配置文件“喂”出来。在 X11 环境里你也可以绑定快捷键来启动。比如在 i3 的配置里加一行bindsym $modReturn exec xterm -fa Monospace -fs 12这样每次按 ModEnter 就能弹出一个指定字体的 xterm体验完全不输现代终端的启动速度。注意这里-fa是指定字体族font family-fs是字号font size这两个参数用来调用 X11 的字体渲染跟老式的-fnbitmap 字体不同。2.2 像设置座椅一样设置窗口-geometry、-T、-fnxterm 的命令行参数多到能写一本书但日常高频使用的基本就那几个。我一个个说。窗口尺寸用-geometryxterm -geometry 100x30含义是创建 100 列、30 行的窗口。你还可以指定位置120x3510050表示窗口左上角距离屏幕左边缘 100 像素、上边缘 50 像素。这个参数特别适合脚本和快捷键启动时把窗口摆在固定位置比如右侧放一个80x60-10-10的“监视窗口”随时盯日志。窗口标题用-T或者-titlexterm -T Server Monitor -n monitor-T设置的是窗口标题栏显示的文本-n设置的是 icon 名称。如果你同时开了十来个 xterm 又不用标签页给每个窗口起个清晰标题能让你在 AltTab 切换时少走很多弯路。字体是 xterm 体验的灵魂。老派做法是xterm -fn 9x15这里9x15是一个 bitmap 字体的名字。bitmap 字体在放大缩小后会有锯齿但现在很多复古爱好者反而就爱这个感觉。更现代化的做法是用-fa指定 TrueType 字体xterm -fa DejaVu Sans Mono -fs 12-fa会走 fontconfig 体系和现代桌面应用的字体选择方式一致。我个人常用的组合是-fa JetBrains Mono -fs 11长时间盯代码也不会觉得累。另外还有一个-fb参数可以设置粗体字体的字体族如果某个字体没有真正的粗体版本不设-fb时 xterm 会靠“伪粗体”来渲染效果偶尔会糊。2.3 用 -e 直接执行命令-e是 xterm 里实用性极高的参数用来指定窗口启动后立即执行的命令xterm -e ssh userserver执行完命令之后窗口不会立刻消失而是会显示Process is terminated的提示等键盘输入或鼠标点击后才关闭。这个“停留”行为很多人第一次碰到会愣住实际上这是故意的方便你看到命令的输出和错误信息。更实用的一点是-e后面的命令可以通过 shell 拼出超灵活的启动方式。比如我的脚本里经常写xterm -T 日志追踪 -e sh -c tail -f /var/log/nginx/access.log; exec bash这里exec bash的作用是让 tail 退出后留在 shell 里而不是直接关窗口。这个技巧在调试时非常好用能避免“程序一跑完窗口就消失、日志根本没看清”的窘境。2.4 退出 xterm 的几种方式说到退出xterm 其实有几种路径普通的exit命令或者按CtrlD退出 shell进程结束窗口自动关闭。在窗口里用 xterm 的菜单后面会细说选择Send Signal - HUP相当于给 xterm 进程发挂断信号。直接点击窗口关闭按钮部分窗口管理器下。需要注意的是xterm 对“窗口管理器发送的关闭请求”默认是响应并直接退出的没有现代编辑器那套“有未保存文件时拦一下”的保护。所以如果你在 xterm 里跑着一个重要的任务千万别手滑点了关闭按钮。3. 打开新世界的大门xterm 的菜单、快捷键与剪贴板操作3.1 Ctrl左键与 Ctrl右键两个藏在窗口里的菜单xterm 最反直觉、也最值得花时间研究的交互就是它那两个经典的弹出菜单。按住Ctrl并点击鼠标右键会弹出 Main Options 菜单里面的选项包括字体放大缩小、窗口大小重置、Show Alternate Screen Buffer切换主缓冲区/备用缓冲区、Allow SendEvents等。这里我重点说几个常用的Large/Very Large/Huge 等字体选项点击后窗口里的字体立即变化不用重启。这个在看大段日志、或者需要远端演示时非常方便。Show Alternate Screen Buffer切换主屏幕和备用屏幕。vim、less 这类程序退出时会自动切回主屏幕但如果你在 tmux 会话里手动展示过 alternate buffer这个选项能帮你手动切换回来。Allow SendEvents允许/禁止 X11 的合成事件发送到窗口。这个选项平时别乱开主要是 X11 安全机制相关普通用户用不上。按住Ctrl并点击鼠标左键弹出的是 VT Options 菜单这是更偏终端行为控制的一组选项Scrollbar 开关键打开后窗口右侧会出现滚动条但要注意 xterm 的滚动条默认是“点击两端的箭头来翻页”不是现代终端的“拖拽到任意位置”。这是 xterm 被吐槽最多的地方之一。Jumpscroll 与 Smoothscroll滚动模式切换跳到行尾 vs 平滑滚动。一般保持 Jumpscroll 即可。Reverse Video反转前景和背景色偶尔用来应急看某些配色糟糕的 TUI 程序。Send BREAK/INT/HUP可以手动向当前运行的程序发送终端信号调试时比较有用。3.2 滚动手法ShiftPageUp 与滚动缓冲区xterm 的“历史输出”保存在滚动缓冲区saveline里但默认情况下鼠标滚轮并不直接滚动缓冲区。习惯现代终端的人第一次用 xterm 时转滚轮发现屏幕一动不动会以为它坏了。实际上 xterm 里的滚轮事件取决于启动时的资源设置默认很多情况下确实不支持滚轮滚动你要么启用xterm*selectToClipboard这类资源要么就老实使用快捷键ShiftPageUp向上翻一页ShiftPageDown向下翻一页这两个键配合滚动缓冲区基本能覆盖日常的“往上翻日志”需求。滚动缓冲区的大小由saveLines资源控制默认是 1024 行我习惯设到 10000日志输出多的时候翻起来才不憋屈xterm*saveLines: 100003.3 选择、复制、粘贴X11 剪贴板与三键鼠标X11 的剪贴板机制和 Windows/macOS 最大的不同是它有两套选择一套是 PRIMARY主选择区一套是 CLIPBOARD剪贴板。xterm 对这两套的处理方式非常经典鼠标左键选中文本文本会被同步到 PRIMARY 选择区。此时在另一个 xterm 或任何 X 应用里点击鼠标中键内容就粘贴过去了。这个过程不需要任何 CtrlC/CtrlV很流畅。右键或 ShiftInsertxterm 默认把右键粘贴 CLIPBOARD 缓冲区里的内容。大多数现代桌面环境下CtrlShiftC / CtrlShiftV 也被窗口管理器或编辑器接管但 xterm 本身并不直接支持这种组合所以很多人第一次在 xterm 里按 CtrlShiftV 没反应就是这个原因。双击选择单词、三击选择整行这个行为在 xterm 里开箱即用非常可靠处理日志时特别好使。如果你想在 xterm 里更贴近现代操作可以启动时加一个资源xterm*selectToClipboard: true设置之后鼠标左键选中的内容会直接写入 CLIPBOARD 缓冲区这样你就可以通过 CtrlShiftV 或者中键粘贴到其他应用里。不过有一点要注意这会覆盖掉 PRIMARY 的行为某些老应用的“中键粘贴主选择区”逻辑可能就不灵了建议按需开启。3.4 用 Ctrl中键快速调整字号xterm 有一个很容易被忽略但极其好用的功能按住Ctrl点击鼠标中键会弹出一个字体缩放菜单里面列出了不同级别的字号选项。演示代码、给同事看屏幕的时候两三下就能把字号调大比现代终端的 Ctrl 也不逊色。这个菜单里的字号级别来自于 xterm 的fontMenu资源默认提供Unreadable Small、Tiny、Small、Medium、Large、Very Large、Huge、Escape Sequence等选项后面我会介绍怎么自定义。4. uxterm 和 xterm 到底有什么区别编码体系的坑与应对4.1 uxterm 的本质初次接触 xterm 的人经常会看到一个叫uxterm的命令以为它是一个完全不同的终端其实它只是 xterm 的一个包装脚本wrapper script。uxterm会检查环境变量主要是LANG、LC_CTYPE选择合适的-class和资源文件然后以 UTF-8 模式启动 xterm。换句话说uxterm 不是另一个程序而是“预先帮你把 locale 设置好、以 UTF-8 模式运行的 xterm”。在绝大多数现代 Linux 发行版上直接用xterm命令通常也能得到正确的 UTF-8 行为但如果你发现 xterm 里中文乱码、特殊符号显示异常第一件事就应该是检查 locale 是否匹配必要时直接用uxterm启动试试。我遇到过一个很典型的场景一台服务器用LANGen_US.UTF-8但/etc/default/locale里写的是LANGC。SSH 上去之后手动启动 xterm程序里输出中文文件名时全是乱码。改用uxterm启动或者先在 shell 里export LANGen_US.UTF-8问题立刻消失。4.2 字符编码相关的三个检查点排查 xterm 中文/特殊字符乱码时我一般按以下顺序排查第一步检查环境变量echo $LANG echo $LC_CTYPE确保是xxx.UTF-8。如果输出是POSIX、C或空xterm 就不知道用什么编码解码字节流。第二步检查 xterm 的资源设置xrdb -query | grep -i utf8看是否有xterm*utf8: 1这类设置。如果没有可以在.Xresources里加上xterm*utf8: 1 xterm*locale: true第三步检查字体是否支持。如果 locale 和资源都正确但仍显示方块或问号那大概率是字体不支持对应字符集。比如你想显示中文字体里却没有 CJK 字形。这时用fc-list :langzh看系统里有哪些中文字体然后在启动参数里指定xterm -fa Noto Sans Mono CJK SC -fs 124.3 老设备、纯 ASCII 环境的降级思路不是所有场景都需要 UTF-8。登录老路由器、嵌入式设备、串口控制台时对方的 shell 可能只支持 ISO-8859-1 甚至纯 ASCII。这时候用 UTF-8 模式反而会显示一堆?或乱码。xterm 的好处是可以非常精细地控制编码行为。你可以在启动时指定客户端的字符集xterm -lc -en ISO-8859-1-lc是--login 字符集处理的组合-en指定编码。连老设备时我用过几次比现代终端硬套 UTF-8 省心得多。这也是 xterm 一直舍不得丢掉老编码支持的务实之处。5. 让你的 xterm 更像自己.Xresources 配置与动态调优5.1 配置文件在哪.Xresources 与 .Xdefaults 的前世今生xterm 的配置不走~/.config/xterm/xxx.conf这套现代路径而是写在 X 资源数据库里。你通常会在~/.Xresources或~/.Xdefaults文件里看到这类配置。这两个文件的区别在于时机.Xdefaults是在 xterm 启动时直接读取的而.Xresources需要你用xrdb命令加载进 X server 的资源数据库再由各个应用查询。现代桌面环境一般建议用.Xresourcesxrdb的方式因为资源数据库是全局维护的启动任意 X 应用都可以查询到。你的.Xresources里写完后在 X11 会话里执行xrdb -merge ~/.Xresources配置立即对所有新启动的 xterm 生效不用重启桌面也不用重登。以前我在 GNU Screen 里改完.Xresources以为马上会变结果老样子才发现 xterm 是在启动时读的资源 DB。改完配置必须xrdb -merge一下再开新窗口才生效。已打开的 xterm 窗口则要重启程序或通过菜单里的Main Options - Redraw/Reset Terminal来重新应用部分资源。5.2 一份可以直接抄的完整配置下面是我个人实际在用的.Xresources片段基于它改基本能覆盖日常需求! 通用外观 xterm*faceName: DejaVu Sans Mono xterm*faceSize: 11 xterm*Locale: true xterm*utf8: 1 xterm*saveLines: 10000 xterm*scrollBar: true xterm*rightScrollBar: true ! 配色方案深色背景、亮色文字 xterm*background: #2d2d2d xterm*foreground: #dcdccc xterm*cursorColor: #f0dfaf xterm*pointerColor: #f0dfaf xterm*color0: #2d2d2d xterm*color1: #cc9393 xterm*color2: #7f9f7f xterm*color3: #d0bf8f xterm*color4: #6ca0a3 xterm*color5: #cc9393 xterm*color6: #7cb8bb xterm*color7: #dcdccc xterm*color8: #707070 xterm*color9: #dca3a3 xterm*color10: #bfebbf xterm*color11: #f0dfaf xterm*color12: #8cd0d3 xterm*color13: #fcb3b3 xterm*color14: #b0ebeb xterm*color15: #ffffff ! 光标与按键行为 xterm*cutToBeginningOfLine: false xterm*deleteIsDEL: false xterm*backarrowKey: false xterm*ptyHandshake: true xterm*titeInhibit: false这份配置是深色底、亮色字的一套配色颜色值借鉴了经典的 Zenburn 风格看起来不刺眼长时间用很舒服。5.3 字体选择的实操经验与 xfontsel如果你拿不准用哪个字体或者想系统地看 X11 可用的 bitmap 字体xfontsel命令绝对是神器。启动后你会看到一个字体预览窗口鼠标点击各个格子筛选字体族、字号、字符集等属性窗口底部会实时显示完整的字体名字串。挑好之后把那个字体名字复制到-fn参数或者xterm*font资源里即可。对于 TrueType 字体我一般用系统里的fc-list命令来找fc-list :mono | grep -iE jetbrains|dejavu|cousine|source code然后挑一个顺眼的写进配置。还要留意的一点是xterm 对粗体和斜体的支持高度依赖你选的字体如果某个字体没有真正的粗体文件而 xterm 又检测不到可能会退化成“斜体显示粗体”或者干脆不变。用fc-match -f %{fullname}\n DejaVu Sans Mono:bold可以查系统能否匹配到粗体。5.4 动态调优xrdb 与菜单的配合xterm 的调优可以做到完全不停机。改动配色、字体等静态资源时执行xrdb -merge ~/.Xresources之后新开的 xterm 立即生效窗口字体大小则可以直接靠 Ctrl中键菜单快速切换某些菜单项如Redraw/Reset Terminal可以在不重启的情况下恢复被 ANSI 转义序列或程序搞乱的画面。这里有个小技巧如果你改的是xterm*faceSize资源想让当前窗口也立即变大变小除了重启 xterm还可以在 Ctrl中键菜单里选Escape Sequence它会让 xterm 显示字母对应的控制序列设置完成字体切换。虽然不如重启快但在不想打断当前运行任务时很管用。6. 常见问题与排查技巧实录6.1 高频故障速查表我在使用 xterm 的过程中和帮别人排查时遇到过不少问题下面这张表凝集了最常见的几种先看结论再展开讲现象常见原因解决方案打开后字体特别小眼睛疼默认字体未设置或字号太小启动加-fs 12或在配置里写xterm*faceSize: 12中文/特殊字符显示为方块或问号locale 不匹配、字体缺少对应字形设LANGxxx.UTF-8用uxterm换支持中文的字体鼠标滚轮不能滚动xterm 默认滚轮不映射为滚动缓冲区操作用ShiftPageUp/Down或启用xterm*scrollTtyOutput: false 相关资源右键粘贴没反应X11 剪贴板机制与现代终端不同中键粘贴 PRIMARY 选区或开启selectToClipboardCtrlC 不能复制CtrlV 不能粘贴xterm 不默认支持这些组合键使用鼠标中键/右键或在窗口管理器中配置快捷键窗口标题没变一直是“xterm”未设置-T参数或 shell/程序覆盖标题启动加-T 标题并确认titeInhibit等资源设置合适远程 SSH 下颜色显示不对TERM 环境变量被错误设置确认echo $TERM为xterm或xterm-256color菜单弹不出来组合键被窗口管理器拦截确认窗口管理器未把 Ctrl鼠标点击绑定为其他动作6.2 逐条展开那些年我踩过的坑滚动问题的完整解法。前面说过滚轮在 xterm 下默认可能不滚动。这里说透一点。xterm 的滚动行为由scrollTtyOutputtty 有输出时是否自动滚到底部和scrollKey按键时是否回到底部等资源控制。最简单粗暴的“让滚轮变成滚动历史”的配置是xterm*internalBorder: 2 xterm*ScrollBar: true xterm*scrollTtyOutput: false xterm*scrollKey: true但滚轮本身依然不一定能滚动取决于 X server 如何把滚轮事件翻译成按钮 4/5 事件以及 xterm 是否开启wheelMouse资源。新版本 xterm 中把xterm*wheelMouse: true打开可以让滚轮按键映射为滚动动作体验会好很多。实测下来这个资源在不同发行版表现不完全一致所以我把ShiftPageUp/Down当作永远兜底的手段。颜色不对的坑。如果你设置的color0~color15看起来很合理但程序里的颜色跟你预期差距很大大概率是TERM环境变量没设成xterm-256color。只有TERMxterm-256color时TUI 程序才会发 256 色/真彩色转义序列xterm 也才会正确解析。你可以在.bashrc里加一句case $TERM in xterm*) export TERMxterm-256color;; esac注意远程 SSH 的时候本地 xterm 会把 TERM 传给远端远端 shell 拿到xterm-256color后不会充当任何色彩输出的拦路虎如果你的远端 terminfo 缺少这一项反而会报unknown terminal type。这时可以退而求其次在远端把 TERM 设回xterm。窗口里跑 tmux 后背景色没铺满。这是 tmux 常见的“默认终端色”问题xterm 下尤其显眼。很多时候是因为 tmux 的default-terminal设置和 xterm 的真实背景色不一致。我的做法是在.tmux.conf里显式设置set -g default-terminal xterm-256color set -ga terminal-overrides ,xterm-256color:Tc同时保持 xterm 的 background 资源是具体的颜色值如#2d2d2d而不是black这样绝大多数情况下不会出现“黑边/灰边”问题。退格键和 Delete 键行为异常。xterm 里退格键有时会输出^H有时是^?取决于backarrowKey和deleteIsDEL两个资源。如果你发现Backspace键在 vim 里不进编辑模式反而删不了字符可以试试xterm*backarrowKey: false xterm*deleteIsDEL: false这会让退格键发送 ASCII DEL 或 Ctrl-H 的行为更符合主流习惯然后在 shell 里用stty erase ^H按需进一步校准。旧习惯CtrlShiftC/V 为什么不行。这是现代终端用户转向 xterm 后的第一道坎。上文的 Ctrl中键和 ShiftInsert 就是答案这里不再重复。如果实在改不过来可以在窗口管理器层面做按键转发例如 i3 的bindsym用exec xclip这一套来模拟“复制到剪贴板”不过这已经超出 xterm 本身的范畴就不展开了。6.3 排查思路总结从“现象”倒推“资源”xterm 的问题追踪思路其实非常规律。什么现象不对就往对应的资源去看字体不对查faceName/faceSize/font编码不对查locale/utf8颜色不对查colorN/foreground/background按键不对查keyboard/backarrowKey/deleteIsDEL。因为 xterm 完全是配置驱动几乎所有行为都有对应的资源开关查man xterm里的 RESOURCES 一节比在问答社区里大海捞针快得多。如果改了一堆资源还是不对打开 xterm 的-verbose启动选项它会输出详细的资源配置信息和启动日志xterm -verbose再配合xrdb -query查看当前资源数据库的全部内容基本能定位到 90% 的问题。最后分享一点我的个人习惯xterm 用久了你已经不会再去想“它为什么不支持标签页”因为工作流早就变了我用窗口管理器的快捷键开十几个 xterm每个窗口负责一个任务配合 tmux 在窗口里再分屏、分离会话长连接的稳定性比任何花哨终端都好。xterm 的每个窗口是一个独立的进程一个窗口卡死不会影响其他窗口这在跑长任务时非常安心。真正让我对它“路转粉”的一次是在一台没有桌面环境的精简服务器上做串口调试。系统里没有 GNOME Terminal没有 kitty只有最基础的 Xorg 和 xterm。我靠xterm -e cu -l /dev/ttyUSB0 -s 115200直接打开了串口会话字体、回滚、复制粘贴全都顺畅。那一刻我突然意识到xterm 不像一个“产品”它更像 X11 世界里的一段基础设施——安静、稳定、不邀功但永远在。如果你刚开始接触 xterm我的建议很简单先配好字体和配色把 Ctrl左键/Ctrl右键两个菜单点一遍然后强制自己用一周的 ShiftPageUp 和中键粘贴。适应之后你大概率会发现这个看起来最“土”的终端反而是各种环境下最让你省心的一把利器。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →