Screen 与 tmux

GNU Screen 和 tmux 都是类 Unix 平台上的终端复用器。从某种意义上说,他们可以看作是文本控制台(而不是 X 窗口系统)的窗口管理器。Screen 无疑是最知名的终端复用器,也因为这一点,它也成为衡量其它替代品的标准。

授权

作为 GNU 的一个项目,Screen 是在 GPL 条款下分发的,而 tmux 是在 BSD 许可证的条款下分发的。

特点

复用

显然,作为终端复用器,Screen 和 tmux 都能在同一时刻同一个会话中管理多个 shell 实例,或者“窗口”。

持久

GNU Screen 和 tmux 都允许用户分离或重新挂接终端会话,分离后,留下的 shell 和它们的子进程都由复用器管理着。

共享会话

不管是 Screen 还是 tmux,都能让多个用户在同一时刻同时连上同一个会话。

仅 tmux

下面的特性是 tmux 特有的,GNU Screen 没有。

客户/服务器系统

当第一个 tmux 会话创建后,一个服务器实例就自动启动了,而会话则作为客户端运行着。再有新的会话被创建的话都是作为客户端,连接到同一个服务器实例的。用户可以输入命令进入任意一个客户端来控制服务器实例、当前会话或者任何一个客户端。

界面

鉴于 Screen 使用 Ctrl-A 作为命令前缀,影响了多数 shell 移动光标到行首的快捷键功能,tmux 的命令前缀是 Ctrl-B,影响了多数 shell 的默认的用来移动光标到前一个字符的快捷键。如果有需要保留 Ctrl-A(Screen) 或 Ctrl-B(tmux) 标准的 shell 行为,它们都允许配置使用别的命令前缀。

性能

Tmux 的创建是为了提供一个简单的、现代的、轻量级的、BSD 授权的用来替代 GNU Screen 的替代品。一般而言,tmux 的设计目标是要保证较快且足够轻量级。客户/服务器的体系结构也保证了在增加会话的时候资源的使用尽可能少。

英文原文:Screen vs tmux

Advertisements

#bsd, #gpl, #screen, #terminal, #tmux, #unix