• 作者:老汪软件技巧
  • 发表时间:2024-08-22 07:06
  • 浏览量:

tmux 是一个终端多路复用器:它允许从单个屏幕创建、访问和控制多个终端。 tmux 可能会与屏幕分离并继续在后台运行,然后重新连接。

第一次看到tmux 的介绍的时候,我其实没什么感觉,觉得没什么.后面用terminal多了,遇到了一些问题,尝试解决,然后我重新认真学习tmux。它改变了我电脑的习惯。

本文将会花十分钟介绍,tmux 的基本使用场景。

什么是 terminal session

回忆一下,你日常工作时候使用terminal 的场景,打开一个 Iterm2 窗口,然后使用ssh 连接一台远程机器,然后进入特定目录,开始工作,完成工作后,关闭Iterm2 窗口。上面这些步骤,就是一个 terminal session 它的生命周期是跟 terminal 的生命周期绑定在一起的,关闭窗口后session就结束,然后下次我们要工作的时候,就重复上面的步骤。

有什么办法,可以将session跟terminal 开来,下次再操作的时候,就不需要重复上面的步骤? tmux可以帮助我们实现这个功能。

This article was first published in the Medium MPP plan. If you are a Medium user, please follow me on Medium. Thank you very much.

{{< adsense >}}

我们看看再 tmux 下如何实现上面这个功能把。

在这个演示中,我首先用tmux new -s test 创建了一个tmux session ,然后登录我的一台开发机器,然后再将session 剥离,回到Iterm2 终端,最后我又使用 tmux attach-session 回到原来的开发机器,跟刚才退出去的时候一模一样。 这就是 tmux 基础的应用了,剥离session,并且保持session 状态。

TL;DR

tmux 可以帮助我们实现:

它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。它可以让新窗口"接入"已经存在的会话。它允许每个会话有多个连接窗口,因此可以多人实时共享会话。它还支持窗口任意的垂直和水平拆分。tmux 基本用法安装 tmux

在Mac上,可以使用brew 来安装 tmux

tmux:  提高终端生产力的利器__tmux:  提高终端生产力的利器

brew install  tmux

其他环境请参考:Installing tmux

启动tmux 与退出 tmux

安装完成后, 在 terminal中输入 tmux 就可以启动一个 tmux session 。输入exit 就会退出 tmux session ,返回到原来的 terminal 页面。

前缀键

跟其他软件不一样的是: tmux 中所有的快捷键都需要和前缀快捷键⌃b来组合使用(注:⌃ 为 Mac 的 control 键),这样其实挺好的,减少了与其他软件冲突的概率。可以通过 ⌃b+? 来查询所有的快捷键。一般把tmux 的快捷键分成三类:窗口管理、窗格管理、以及session 管理。

session 管理

如果运行了多次tmux命令则会开启多个 tmux 会话(session)。在 tmux 会话中,使用前缀快捷键⌃b配合以下快捷键可操作会话:

alias tnew='tmux new -s' # 新建一个会话
alias tls='tmux ls'
alias td='tmux detach' # 分离 会话,会保存分离之前的状态
alias ta='tmux attach -t' # 连接会话
alias tkss='tmux kill-session -t'

窗格管理

Tmux 可以将窗口分成多个窗格(pane),每个窗格运行不同的命令。以下命令都是在 Tmux 窗口中执行。

窗口管理

tmux 还有窗口(window) 的概念,当窗格变得拥挤的时候,我们可以再开一个窗口,下面是窗口一些常用的快捷键。

总结

这篇文章只是总结了一下tmux 的基本使用以及快捷键,还有很多应用场景没有涉及。比如跟vim 配合如何更加高效的在 vim中写代码。希望看过这篇文章的朋友,能够上手体验一下tmux, 使用tmux 生产力。