浏览问题我发现了 tmux(我通常使用 GNU Screen)。我的问题是它们各自的优点和缺点是什么。特别是我找不到太多关于 tmux 的信息。
答案1
从他们的网站:
- tmux 与 GNU screen 有何不同?它还提供什么?
与 screen 相比,tmux 具有以下几个优点:
- 明确定义的客户端-服务器模型:窗口是独立的实体,可以同时附加到多个会话并从多个客户端(终端)查看,并且可以在同一 tmux 服务器内的会话之间自由移动;
- 一致的、记录良好的命令界面,无论是交互使用、作为键绑定还是从 shell 使用,都具有相同的语法;
- 可以轻松地从 shell 编写脚本;
- 多个粘贴缓冲区;
- 选择 vi 或 emacs 键布局;
- 限制窗口大小的选项;
- 更有用的状态行语法,能够显示特定命令的第一行输出;
- 更干净、现代、易于扩展、BSD 许可的代码库。
tmux 仍然省略了一些屏幕功能:
- 内置串行和远程登录支持;这很臃肿,不太可能添加到 tmux 中;
- 更广泛的平台支持,例如 IRIX 和 HP-UX,以及奇数终端。
答案2
一个区别在于当多个终端连接到单个会话时两者的行为方式。
通过屏幕,每个连接的终端的视图都是独立的。使用 tmux,所有连接的终端都会看到相同的东西。
假设您有两个终端连接到一个 tmux 会话。如果您^B在一个终端中输入 1,另一终端也会切换到窗口 1。
当您有两个终端连接到一个屏幕会话时,并且您^A在其中一个终端中键入 1,则它对另一个终端没有影响。
这是基于我使用 tmux 1.2 的经验;我看到 1.3 已经发布了,但我没有注意到变更日志中有任何关于此行为变化的内容。
如果您喜欢屏幕行为并希望在 tmux 中使用它:
如果您的原始 tmux 会话被调用0
(默认),那么您可以tmux new-session -t 0
启动一个连接到同一组窗口的新的独立会话,然后该会话可以拥有自己的视图。
答案3
与 GNU screen 相比,tmux 相当新。优点/缺点是一个棘手的问题,因为这两个程序解决的问题大致相同。 tmux 是 BSD 许可的,而 screen 是 GNU GPL 许可的。这对某些人来说很重要。
screen 目前(在 Linux 上)更具代表性,也就是说,与 tmux 相比,您更有可能在给定的 Linux 机器上找到它。然而,tmux 在 OpenBSD 上的表现更为突出,因为它包含在基本安装中。
这两个程序都允许您做同样的事情,尽管事情的状态比这更复杂一些。两者之间的切换并不太复杂,因为许多屏幕功能也已进入 tmux,但如果您是其中任何一个的高级用户,那么在切换到另一个时您可能会发现一些挫败感。
与任何程序一样,这实际上取决于您的需求以及您更喜欢哪个。都尝试一下,看看哪一个适合您。
有关 tmux 的更多信息,请参阅https://tmux.github.io/
答案4
我使用中最大的区别是,在 Gnu Screen 中你只能水平分割帧,而在 Tmux 中你可以水平和垂直分割。这是一个移动目标,尽管正如我在这里所说的垂直分割正在进入屏幕。
除此之外,一切都平淡无奇。