在 iTerm2 中使用 tmux
作为开发者,不断和服务器打交道,最烦躁的是,每次用 ssh 连接服务器时,总担心网络不稳定导致在服务器端执行耗时的任务会被中断。有时候服务器一边在执行命令,一边又想看看服务器内存、CPU 等运行情况,这时候不得不再打开一个终端执行 ssh 连接操作。 最近发现一个好工具:「tmux」,恰好能解决这些问题,今天分享出来。 首先说一说 tmux 的好处。 tmux 优点 分屏 在 Mac 上,iterm2 也是可以做到分屏,但如果结合 iterm2 与 ssh 的话,iterm2 分屏需要不断地 ssh ,导致的后果就是有多个用户连接,使用 who 命令查看登录用户数。 举个例子,如果是 iterm2 分屏三个,则用户连接数为:3 但,如果是用 tmux 的话,相同的目标,用户连接数为:1 attach attach 可以起到保护现场的作用,不至于因 ssh 超时或者异常退出,而丧失了工作环境。 我做了一个测试,先在 tmux 环境下 git clone 代码。 接着关闭 ssh 环境一段时间,然后我重新连接服务器,这时候发现工作环境保持状态,并且持续下载中: 其中原理我觉得可以这么理解:tmux 运行在远程主机上,充当中介的作用。本地终端应首先 ssh 到远程主机,然后运行一个 tmux 会话,在会话内的 shell 中运行任务。当本地切断 ssh 连接时,应当先结束 tmux 会话