会话(Session)是 Zellij 最核心的概念之一。一个会话包含了一组标签页和面板的完整布局,以及其中运行的所有进程。通过会话的创建、分离和恢复,你可以随时断开终端连接而不丢失工作状态,稍后重新连接继续工作。本文将全面介绍会话生命周期的管理方法。
一、创建会话
Zellij 提供了多种方式来创建会话,满足不同的使用场景:
直接启动
最简单的方式,直接在终端中运行:
zellij
Zellij 会自动为会话分配一个名称(通常是一个随机的形容词+名词组合,如 bold-moon-42),并创建一个包含单个面板的空白会话。
指定名称
为会话指定一个有意义的名称,方便后续管理和恢复:
zellij -s my-project
这会创建一个名为 my-project 的会话。推荐为不同项目使用不同的会话名称,例如 frontend、backend、devops 等。
使用布局启动
Zellij 支持通过布局文件(KDL 格式)来定义会话的初始面板和标签页结构。使用预定义的布局名称启动:
zellij -l dev-layout
或者指定自定义布局文件的完整路径:
zellij --layout /path/to/layout.kdl
布局文件可以预定义面板的分割方式、每个面板中运行的命令、工作目录等。这在团队协作中特别有用,可以让所有成员使用一致的开发环境布局。
二、分离会话
分离会话是指断开与当前 Zellij 会话的连接,但让会话中的所有进程继续在后台运行。有两种方式可以分离:
快捷键方式
在 Zellij 内部,按以下快捷键组合分离当前会话:
Ctrl+s → d
即先按 Ctrl+s 进入 Session 模式,再按 d 执行分离操作。
命令行方式
在另一个终端窗口中,可以分离指定的会话:
zellij detach
如果有多个会话运行中,可以指定会话名称:
zellij detach my-project
分离后,Zellij 会退出到普通终端,但会话中的所有面板、标签页和运行中的进程都会保留。你甚至可以关闭终端窗口,会话依然在后台运行。
三、恢复会话
当你需要继续之前的工作时,可以恢复(attach)已分离的会话。
列出所有会话
首先查看当前有哪些会话在运行:
zellij ls
或者使用完整命令:
zellij list-sessions
输出会列出所有活跃会话的名称,以及每个会话中标签页的数量等信息。
恢复指定会话
通过会话名称恢复连接:
zellij attach my-project
attach 可以简写为 a:
zellij a my-project
如果不确定会话是否存在,可以使用 -c 选项。当会话存在时恢复它,不存在时则创建一个新的:
zellij attach -c my-project
这在脚本和自动化场景中非常实用,避免了需要先判断会话是否存在的麻烦。
会话管理器
除了命令行操作外,Zellij 还提供了一个可视化的会话管理器。在 Zellij 内部按以下快捷键打开:
Ctrl+s → w
会话管理器会以列表形式展示所有运行中的会话。使用方向键(↑/↓)选择要恢复的会话,按 Enter 连接。这是一个直观且高效的方式来在多个会话之间切换。