终端复用器tmux教程
目录
* Tmux 是什么
tmux Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机。是BSD实现的Screen替代品,相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。 tmux 是一个与 GNU screen 类似的程序,可作为后者的替代品使用。 感觉更加好用 ,screen常常是那个历史什么的不能用 类似的终端复用器还有 GNU Screen。Tmux 与它功能相似,但是更易用,也更强大。
* 基本用法
** install
- Ubuntu 或 Debian
$ sudo apt-get install tmux
- CentOS 或 Fedora
$ sudo yum install tmux
- Mac
$ brew install tmux
** 启动与退出
和screen 一样 键入tmux命令,就进入了 Tmux 窗口
按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口。
** 最常用的日常启动开始
启动 tmux 后,在窗口底部有状态行显示,其中包括已创建的窗口列表、当前窗口(使用 * 表示)等。
与 GNU screen 相似,tmux 也使用快捷键来执行相关操作。要创建一个新的窗口,可以按 C-b c,即先按 Ctrl-b,再按 c。在各个窗口间切换可使用下列快捷键:
C-b n 切换到下一个窗口
C-b p 切换到上一个窗口
C-b 0、C-b 1……C-b n 切换到第 n 个窗口
分离会话可执行 C-b d 。
通过man tmux可以获得更详尽的 tmux 使用指南。
* 会话管理
* 新建会话
第一个启动的 Tmux 窗口, 如梭screen 编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。
使用编号区分会话,不太直观,更好的方法是为会话起名
mux new -s <session-name> $ tmux new -s 36
** 分离会话
Tmux 窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离。
ctrl +d b
tmux ls命令可以查看当前所有的 Tmux 会话。
** 接入会话
tmux attach命令用于重新接入某个已存在的会话。
# 使用会话编号 $ tmux attach -t 0
# 使用会话名称 $ tmux attach -t <session-name>
我的就是 tmux attach -t 36
** 会话快捷键
下面是一些会话相关的快捷键。
Ctrl+b d:分离当前会话。 Ctrl+b s:列出所有会话。 Ctrl+b $:重命名当前会话。
* 最简操作流程
综上所述,以下是 Tmux 的最简操作流程。
新建会话tmux new -s my_session。起名 不然下次不好找 在 Tmux 窗口运行所需的程序。 按下快捷键Ctrl+b d将会话分离。 下次使用时,重新连接到会话tmux attach-session -t my_session。
# 重命名会话
tmux rename-session -t abc cba
trouble
tmux attach-session -t myevan sessions should be nested with care, unset $TMUX to force unset TMUX
运维操作流程
如何在linux终端里创建一个tmux窗口的同时直接在窗口终端里执行命令呢? 这就需要用到tmux send -t session_name "command" ENTER!!!
杀死会话
tmux ls # 使用会话编号 $ tmux kill-session -t 0
* 窗格操作
** 划分窗格
- 划分上下两个窗格
$ tmux split-window
- 划分左右两个窗格
$ tmux split-window -h
** 5.2 移动光标
tmux select-pane命令用来移动光标位置。
# 光标切换到上方窗格 $ tmux select-pane -U
# 光标切换到下方窗格 $ tmux select-pane -D
# 光标切换到左边窗格 $ tmux select-pane -L
# 光标切换到右边窗格 $ tmux select-pane -R