tmux 使用总结

tmux,即 terminal multiplexer,它是一个终端复用工具。

tmux is a “terminal multiplexer”, it enables a number of terminals (or windows)
to be accessed and controlled from a single terminal. tmux is intended to be a
simple, modern, BSD-licensed alternative to programs such as GNU screen.

使用它最直观的好处就是,通过一个终端登录远程主机并运行 tmux 后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机。
—— 百度百科

tmux 还有一个重要功能,就是保存当前会话。假如你使用 ssh 远程连接服务器来工作,当断开连接后,tmux 的会话一直在后台运行(如果一个命令执行时间过长,也不用等它结束后才能断开连接)。下次重新连接服务器后,可以直接还原会话继续之前的工作。

tmux 最重要的功能是会话管理和窗口管理。tmux 可以创建多个会话,每个会话可以创建多个窗口,每个窗口可以分成多个面板(panel)。退出当前会话的行为叫做 detach。还原之前会话的行为叫做 attach。

安装

Ubuntu 安装方法:sudo apt-get install tmux
Mac 安装方法:brew install tmux

开始使用

直接在终端输入 tmux,tmux 就创建了一个会话。终端会打开一个新的窗口,下面有绿色的状态栏,左边是当前窗口的信息,右边是系统时间/日期等信息,这个状态栏可以自定义。
目前只有一个会话,这个会话里面只有一个窗口,这个窗口里面只有一个面板。

tmux 的所有命令都用 ctrl+b 作为前缀。下面是一些常用快捷操作。

面板(panel)操作

ctrl+b %:将当前窗口分为左右两个面板
ctrl+b ":将当前窗口分为上下两个面板
ctlr+b 方向键:切换面板,连续按方向键可以多次切换
ctrl+b z:最大化当前面板,重复此操作回复原来的大小
ctrl+d 或者 ctrl+b x 或者在面板中输入 exit:关闭当前面板
ctrl+b ctrl+方向键:以1个单元格为单位移动边缘以调整当前面板大小
ctrl+b alt +方向键:以5个单元格为单位移动边缘以调整当前面板大小
ctrl+b space:在预置的面板布局中循环切换
ctrl+b q:显示面板编号
ctrl+b !:将当前面板置于新窗口,需要当前窗口有多个面板。
ctrl+b o:在当前窗口中选择下一面板
ctrl+b {:向前置换当前面板
ctrl+b }:向后置换当前面板
ctrl+b ctrl+o:顺时针旋转当前窗口的面板

窗口(window)操作

ctrl+b c:创建新的窗口。可以在下面的状态栏看到窗口的个数和当前在哪个窗口。
ctrl+b &:关闭当前窗口
ctrl+b p:切换到前面(previous)的窗口。
ctrl+b n:切换到后面(next)的窗口。
ctrl+b number:按照数字直接切换窗口。
ctrl+b ,:重命名当前窗口
ctrl+b .:修改当前窗口编号,相当于窗口重新排序
ctrl+b l:在前后两个窗口间互相切换
ctrl+b w:通过列表的形式列出当前所有会话的所有窗口,随意选择
ctrl+b f:在所有会话的所有窗口中查找,并以列表的形式列出

会话(session)操作

如果 tmux 仅仅支持面板操作和窗口操作,那这些功能 iterm2 也能够实现,tmux 最重要的功能是可以操作会话。
在当前面板中输入 exit,退出了当前会话,并且这个会话已经彻底没有了,没有在后台运行。

ctrl+b d 或者输入 tmux detach:退出当前会话(detach),但是会话仍然在后台运行,之后输入 tmux attach 重新打开这个会话(attach)。
ctrl+b D:选择要脱离的会话,在同时开启了多个会话时使用。
ctrl+b s:选择并切换会话,在同时开启了多个会话时使用
ctrl+b ?:列出所有快捷键,按q返回
ctrl+b [: 复制模式,光标移动到复制内容位置,空格键开始,方向键选择复制,回车确认,q/Esc退出
ctrl+b ]: 进入粘贴模式,粘贴之前复制的内容,按q/Esc退出
ctrl+b t: 显示当前的时间
ctrl+b ctrl+z: 挂起当前会话,返回 Shell 界面,会话还是 attach 状态
ctrl+b :: 进入命令行模式,此时可输入支持的命令。比如输入 new -s name,就可以在会话中直接创建新的会话,不用退出来;再比如输入 kill-server,关闭所有 session;还可以输入 set -g mouse on 开始鼠标的支持。

tmux ls 列出当前所有的会话和它们的状态
tmux attach 连接到之前的会话
tmux attach -t name 连接到指定会话,name 是会话的名称,显示在会话列表的最前面。
tmux new -s name 创建会话并命名为 name
tmux rename-session -t 0 database 重命名会话 0 为 database
tmux switch -t name:切换会话

配置

配置快捷键

tmux 的配置文件是 tmux.conf,当前用户的配置在~/.tmux.conf,不同系统的全局配置位置不同,可以通过 man tmux 查看,它的 -f 参数指定了全局配置位置。该系统的全局配置文件在 /usr/local/etc/tmux.conf。如果没有这些文件,可以自己创建。

另外,在使用 brew 安装 tmux 的时候,根据提示,我发现有一个实例配置文件在 /usr/local/opt/tmux/share/tmux/example_tmux.conf,可以参考。

tmux 默认的前缀键 ctrl+b,可以设置为其他。配置文件里面的 C 表示 Ctrl 键。

# Change the prefix key to C-a
set -g prefix C-a
unbind C-b
bind C-a send-prefix

ctrl+a 在终端可以定位到行首,上面的设置可能让它不起作用。按两次 ctrl+a 就可以到行首。

"% 把窗口分为 上下、左右两个面板,这个快捷键可能不太好记,可以用 -| 来代替。

# split panes using | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

修改之后,使用 tmux source-file ~/.tmux.conf 使配置生效。

切换面板的时候,需要按 ctlr+b 方向键,可以设置成 alt+方向键。配置文件里面的 M 表示 Meta,即 Alt 键。

# switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

正常情况下,点击鼠标点击不能切换面板,可以设置让鼠标可以用:

# Enable mouse mode 
set -g mouse on

如果经常修改配置文件,还可以给上面的命令指定快捷键:

# reload config file (change file location to your the tmux.conf you want to use)
unbind r
bind r source-file ~/.tmux.conf

所有的配置可以使用 tmux show-options -g 查看。

其他一些配置示例:

# start with window 1 (instead of 0)
set -g base-index 1

# start with pane 1
set -g pane-base-index 1

# don't rename windows automatically
set-option -g allow-rename off

网上有大量的 tmux 配置文件,可以对界面进行各种配置。千万不要直接复制拿来用。好的方法是自己一个个尝试,一个个配置,你要知道自己使用那些配置所起的作用。

如果有问题,记得使用 man tmuxctrl+b ?。可以在这里查看 man tmux 的所有内容。

参考

  1. A Quick and Easy Guide to tmux
  2. Making tmux Pretty and Usable - A Guide to Customizing your tmux.conf
  3. A tmux Crash Course
  4. Tmux 速成教程:技巧和调整
  5. the tmux manual page
  6. The Tao of tmux
  7. iTerm2 and tmux Integration
好的,下面是 tmux使用文档。 # 什么是 Tmux Tmux 是一个终端复用工具,它可以让你在单个终端窗口中同时运行多个终端会话,并且可以在不同的会话之间切换。 # 安装 Tmux 在 Linux 上安装 Tmux 可以使用以下命令: ```shell sudo apt-get install tmux # Debian/Ubuntu sudo yum install tmux # CentOS/RHEL ``` # Tmux 基础用法 ## 启动 Tmux 启动 Tmux 可以使用以下命令: ```shell tmux ``` ## Tmux 快捷键 Tmux 的所有操作都是通过快捷键来完成的。下面是一些常用的快捷键: - `Ctrl-b ?` 显示快捷键帮助 - `Ctrl-b c` 创建一个新窗口 - `Ctrl-b n` 切换到下一个窗口 - `Ctrl-b p` 切换到上一个窗口 - `Ctrl-b d` 断开当前会话 - `Ctrl-b [0-9]` 切换到指定编号的窗口 - `Ctrl-b "` 水平分割当前窗口 - `Ctrl-b %` 垂直分割当前窗口 ## Tmux 窗口和面板 Tmux 中的窗口和面板类似于屏幕上的分隔符,您可以使用它们将屏幕分成多个区域。 ### 窗口 Tmux 中的窗口是您可以在其中运行应用程序的虚拟终端。默认情况下,Tmux 启动一个窗口,但您可以创建多个窗口。 创建新窗口:`Ctrl-b c` 切换到下一个窗口:`Ctrl-b n` 切换到上一个窗口:`Ctrl-b p` 切换到指定编号的窗口:`Ctrl-b [0-9]` ### 面板 Tmux 中的面板类似于窗口,但它们是窗口的子区域。您可以在面板中运行应用程序,就像在窗口中一样。 水平分割当前窗口:`Ctrl-b "` 垂直分割当前窗口:`Ctrl-b %` 切换到下一个面板:`Ctrl-b o` 在面板之间移动:`Ctrl-b 方向键` 关闭当前面板:`Ctrl-b x` ### Tmux 命令 Tmux 的命令可以通过 `Ctrl-b :` 来输入。 例如: - 保存当前 Tmux 会话:`Ctrl-b :save-buffer /path/to/file` - 加载之前保存的 Tmux 会话:`Ctrl-b :source-file /path/to/file` # 总结 Tmux 可以让你在一个终端窗口中同时运行多个终端会话,这在日常工作中非常有用。掌握 Tmux 的基本用法对于 Linux 用户来说是非常重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值