手把手教你使用终端复用神器 Tmux,丢掉鼠标不是梦[视频]

手把手教你使用终端复用神器 Tmux,丢掉鼠标不是梦[视频]

今天给大家介绍下如何使用终端复用神器 tmux,笔者现在每天无论是本机开发还是登录服务器几乎都离不开它了。

为什么要使用 tmux ?

很多开发者经常登录到服务器都遇到这些尴尬:

  • 想同时打开多个目录不得不开很多终端标签来回切换
  • 开了一个 vim 窗口之后,想切到其他目录不得不重新打开个一个终端窗口 ssh 到服务器
  • 运行一个脚本,服务器断掉失联之后当前进程被服务器给无情地杀掉,不得不用 nohup 等方式让脚本在后台跑
  • 每次 ssh 到服务器都要重新切到工作目录,打开多个进程等,之前的工作记录会丢失
  • 鼠标是个伟大的发明,但不幸的是,开发者使用终端的时候在鼠标和键盘之间来回移动和定位,不仅浪费时间,还可能会影响你的思路
  • ......

今天介绍的 tmux 可以说很好地解决了这些问题,并且能够解放我们的双手,在终端下摆脱对鼠标的依赖。使用 tmux 的会话功能可以保留工作区,重新 ssh 之后快速恢复上去,工作记录不会丢失。(tmux 对应的是 screen 之类的终端复用软件,和 iterm2/sourceCRT 不是一类软件)

什么是 tmux ?

Tmux 是一个终端复用工具,用于在一个终端窗口中运行多个终端会话,比如我们可以实现非常炫酷的效果:


安装也比较简单, mac 用户

# 安装 brew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 使用 brew 安装 tmux
brew install tmux

ubuntu 用户可以 sudo apt-get install tmux 安装它。

Tmux 概念和使用

tmux 默认的快捷键前缀是 ctrl+b ,当然你也可以修改它,不过这里为了简化,我都使用默认按键。(小提示:我把 capslock 键修改成了 ctrl 键,因为 Ctrl 使用特别频繁,很多键盘键位 ctrl 键使用起来不是特别方便,尤其是笔记本键盘,小指头会疼)

tmux 中有几个重要概念:

  • 会话(session): 建立一个 tmux 工作区会话,会话可以长期驻留,重新连接服务器不会丢失,我们只需重新 tmux attach 到之前的工作区就可以恢复会话,这样你的工作区就可以常驻服务器了,非常方便
  • 窗口(window): 容纳多个窗格
  • 窗格(pane): 可以在窗口中分成多个窗格,每个窗格都可以运行各种命令


视频里我会介绍这些概念并从零开始演示我日常是如何使用 tmux 的,我们仅仅使用它的最基本用法,无需记忆那么多的快捷键就能愉快地使用 tmux 了。

手把手教你用终端复用神器 tmuxhttps://www.zhihu.com/video/1020251819833970688

使用一些第三方工具比如 tmuxp/terminator,我们甚至还可以将 tmux session 管理自动化,比如为一个项目配置 tmuxp 文件然后直接加载生成 tmux 会话,感兴趣可以看看这一篇文章里的演示。

除此之外,共享账户使用原生 tmux attach 到同一个会话或者使用 wemux 之类的工具还能实现结对编程,比如在一个窗口里打开两个 pane,左边的人用 vim,右边的人用 emcas 分别编辑。或者让两台电脑 attach 到同一个会话,在其中一个电脑写代码也会在另一个电脑同步显示,营造一种电脑自己会写代码的诡异场景。

如果你们在同一个服务器上,不同的人还可以 attach 到同一个会话里,然后你的操作对他也是可见的,对于演示代码或者给别人讲解命令的时候会很方便。

https://www.zhihu.com/video/1021330853158395904

如果你自己懒得配置,也可以使用别人配置好的 tmux,比如这个oh-my-tmux 配置:

效果是这样的:

课程推荐:

参考

Tmux 速成教程:技巧和调整

tmux-cheatsheet.markdown

Tmux使用手册

本书简介 | tmux-Productive-Mouse-Free-Development_zh

往期文章:

编辑于 2020-06-29 00:27

文章被以下专栏收录