Linux 命令和 Shell 技能
tmux 与 screen:会话管理器比较
tmux 和 screen 解决了同样古老的问题:当你的网络消失时,你的工作不应该消失。会话存在于服务器上,可以在断开连接后继续存在,并且可以划分为多个窗格; screen 是随处可见的稳定祖先,tmux 是继承者,具有更健全的默认值、可编写脚本的窗格和继续发展的生态系统。从功能上讲,它们是十比一的重叠,诚实的选择是您的服务器已有的工具加上您的团队将实际保留的配置习惯。
要点
- 会话卫生是核心价值:tmux new -s部署/屏幕-S部署启动,tmux ls/屏幕-ls查看场,并按确切名称附加,因此重新附加同事的通宵工作是查找,而不是猜测。
- 优雅地分离(前缀-d),故意退出:通过在窗格内退出来关闭整个会话是半完成的长作业丢失的原因; “除非你真心实意地分开”是一种习惯,而不是一种偏好。
- 分割在 tmux 中表现得更好:% 和 " 分割窗格,加上前缀下调整大小的箭头,以及可选的鼠标模式;屏幕计数 | 和 S 朝向相同的末端,并进行更复杂的调整。
- 回滚是悄然决定性的:tmux 复制模式搜索历史记录([ 然后 /),屏幕的 ^a [ 导航可行但很粗糙,并且在多 GB 日志尾部上搜索胜过滚动。
- 脚本性倾向于 tmux:发送键和捕获窗格让自动化驱动和读取会话,这就是 CI 和工具胶更喜欢它的原因; screen 也可以去那里,但使用的是较旧的习语。
- 共享会话在这两种情况下都适用:一个会话的两个附加镜像实时的所有内容,这是实时对有风险的命令进行配对调试或伙伴检查;保持打字纪律,否则镜子也会显示出你的打字错误。
- 配置文化不同:tmux 发展了一个拆分配置生态系统(主题、插件、每个团队的合理默认值),屏幕在一个 ~/.screenrc 上运行;实际上,tmux 可以在整个团队中扩展,并且屏幕保持个性化。
- 重新启动结束一切:会话存在于服务器内存中,因此长时间的作业需要真正的作业(日志、检查点、可重新启动的脚本)加上顶部的会话管理器; tmux 是保险,而不是耐用性。
一线手记
丢失的会话是由于 VPN 故障而终止的六个小时的数据迁移,磁盘上没有任何内容知道我们处于哪个阶段。现在,任何比喝咖啡休息时间更长的事情都会在 tmux 中得到一个名字,并在第二天早上使用 tmux ls 继续,而不是耸肩。
常见问题
如果我只学一门,选哪一门?
tmux,除非你的舰队已经到处运行 screen;它的默认设置、脚本挂钩和社区动力都与过去十年相同,而且习惯的转移足以应对屏幕紧急情况。
两个人共享一个会话安全吗?
是的,这是标准的结对调试动作;两者都看到相同的击键,因此就谁拥有键盘达成一致,并将任何破坏性命令视为带有第二双眼睛的更改请求。
为什么我的会话中的颜色看起来不正确?
术语不匹配:内部终端必须宣布 tmux-256color 或 screen-256color,远程主机必须有条目(infocmp 告诉你),易读性第一,主题自豪性第二。
会话在服务器重新启动后还能继续存在吗?
否:会话存在于内存中,重新启动会清除它们,而磁盘仍然存在;可重新启动的脚本和磁盘上的日志是持久层,tmux 是中断层,混淆两者就是典型的中断。
Kinetikatech 如何在linux 命令和 shell 技能方面为您提供帮助
这类问题我们已处理过数百次:决定管理员是操作服务器还是对抗服务器的命令和脚本编写习惯:使用每个基本安装中的工具搜索、转换、传输和监督文本和进程。通过Linux 服务器安全和服务器管理,您将获得完整闭环:我们评估、实施、全天候值守,并在关键时刻 30 分钟内响应。