Skip to content

TUI 终端用户界面

Shortlinker 提供了一个交互式的终端用户界面(TUI),让你可以在命令行中可视化管理短链接。

启动 TUI

bash
./shortlinker tui

界面概览

TUI 界面主要分为以下几个区域:

┌─────────────────────────────────────────────────────────┐
│  Shortlinker - Terminal UI                             │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  短码         目标 URL                    点击数  状态  │
│  ────────────────────────────────────────────────────  │
│  github       https://github.com          142    活跃  │
│  google       https://google.com           89    活跃  │
│  temp         https://example.com           5    过期  │
│                                                         │
├─────────────────────────────────────────────────────────┤
│  详情面板                                               │
│  短码: github                                          │
│  目标: https://github.com                              │
│  创建时间: 2024-12-01 10:30:22                         │
│  过期时间: 永不过期                                     │
│  点击次数: 142                                         │
│  密码保护: 否                                          │
└─────────────────────────────────────────────────────────┘
  q:退出  x:导出/导入  /:搜索  ↑↓:导航  Enter:详情

快捷键

主界面操作

快捷键功能
/ 向上/向下移动选择
j / k向下/向上移动选择(Vim 风格)
PageUp / PageDown翻页(每次 10 条)
Home / g跳到顶部
End / G跳到底部
s切换排序列(短码 / URL / 点击数 / 状态)
S切换排序方向(升序 / 降序)
Space选中/取消选中当前链接(用于批量删除)
Esc清除搜索条件或清空批量选中
/搜索(短码 / 目标 URL 模糊匹配)
Enter / v查看详情
? / h打开帮助
a添加新短链接
e编辑选中的短链接
d删除当前链接(有批量选中时进入批量删除确认)
x导出/导入菜单
y复制选中链接的短码到剪贴板
Y复制选中链接的目标 URL 到剪贴板
q退出(会弹出确认)

添加/编辑界面操作

快捷键功能
Tab切换输入字段
Enter保存链接
Esc取消并返回
Space切换强制覆盖(仅添加界面,且需要焦点在短码字段)

功能说明

1. 浏览链接列表

主界面显示所有短链接的概览信息:

  • 短码:短链接的代码(青色)
  • 目标 URL:重定向的目标地址(蓝色)
  • 过期时间:显示过期时间或 (EXPIRED) 标记(黄色/红色)
  • 密码保护:显示 🔒 图标(紫色)
  • 点击数:显示访问次数(绿色)

高亮选中项会以灰色背景显示。

2. 添加新链接 (按 a)

进入添加界面后,可以配置:

  • 短码(Short Code):留空自动生成随机码
  • 目标 URL(Target URL):必填,必须以 http://https:// 开头
  • 过期时间(Expire Time):可选,支持相对时间(如 1d, 7d)或 RFC3339 格式
  • 密码(Password):可选,密码保护功能(实验性)
  • 强制覆盖:勾选后可覆盖已存在的短码

操作

  • Tab 键在各字段间切换
  • Space 切换"强制覆盖"(需要焦点在短码字段)
  • Enter 保存
  • Esc 取消

3. 编辑现有链接 (按 e)

编辑界面与添加类似,但短码字段为只读。可以修改:

  • 目标 URL
  • 过期时间
  • 密码(留空保持原密码)

注意:创建时间和点击计数会被保留。

4. 删除链接 (按 d)

会弹出确认对话框显示链接详情,按 y 确认删除,按 n 取消。

警告:删除操作不可撤销!

5. 批量选择与批量删除(按 Space + d

  • 在主界面按 Space 选中/取消选中当前链接
  • 选中多条后按 d 会进入批量删除确认框
  • 在批量删除确认框中按 y 执行删除,按 nEsc 取消

6. 导出/导入(按 x

导出功能

  • 默认会给出一个时间戳文件名(如 shortlinks_export_20250115_183000.csv),可编辑修改
  • 导出所有链接为 CSV 格式(带 header)
  • 可用于备份或迁移

导入功能

  • 通过文件浏览器选择要导入的 .csv 文件
  • 批量导入链接(逐条 upsert:同短码会被覆盖)
  • 与 CLI 的导出格式兼容

7. 自动通知服务器

所有增删改(以及导入)完成后,TUI 会通过 IPC 通知服务器执行 ReloadTarget::Data,刷新短链接数据与缓存。

如果 IPC 不可达(服务未运行、ipc.enabled=false、socket 路径不一致等),该通知会被跳过,TUI 本地操作仍可继续。

配色方案

TUI 使用不同颜色标识链接状态:

  • 🟢 绿色:活跃链接
  • 🔴 红色:已过期链接
  • 🔵 蓝色:受保护链接
  • 灰色:选中高亮

使用场景

TUI 模式适用于以下场景:

  1. 可视化管理:直观的界面,适合快速 CRUD 操作
  2. 无需 API:不需要配置 Admin API Token 或启动 Web 服务
  3. 服务器管理:在 SSH 终端中完整管理短链接
  4. 批量操作:支持批量导入与批量删除
  5. 即时反馈:操作立即生效,无需等待 API 响应

限制说明

当前版本 TUI 的已知限制:

  • ⚠️ 仅支持批量删除,不支持批量编辑或批量创建
  • ⚠️ 密码输入显示为遮罩,无法看到实际内容

故障排除

界面显示异常

bash
# 确保终端支持 UTF-8
export LANG=en_US.UTF-8

# 调整终端窗口大小(建议至少 80x24)

无法启动 TUI

bash
# 检查存储后端是否可访问
./shortlinker list

# 查看错误输出
./shortlinker tui

数据不刷新

当前版本没有手动刷新快捷键:

  • 增删改/导入完成后会自动刷新列表
  • 若你正在搜索状态,可按 Esc 清除搜索条件
  • 仍不刷新时,可退出后重新进入 TUI

与其他工具对比

功能TUICLIAdmin APIWeb Panel
查看链接
创建链接
编辑链接
删除链接
导出/导入✅(CSV)
可视化界面
需要鉴权
实时交互
批量操作⚠️ 导入 + 批量删除
远程访问

下一步

基于 MIT 许可证发布