Tmux
Tmux 简介
Tmux 是一个终端复用神器;
举个例子,当我们打开一个终端窗口,会话开始,然后通过命令启动程序,如果不通过后台的方式运行程序,关掉终端后程序就会关闭;
因为 终端窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
而 Tmux 解绑了会话和终端窗口。关闭终端窗口再打开,会话并不终止,程序也可以保持运行;
功能
1、单个窗口可以访问多个会话
2、在已存在的会话中 还可以开启新窗口
3、每个会话可以连接多个窗口
4、支持窗口任意拆分(水平 或 垂直)
使用
1、安装
sudo apt-get install tmux
2、会话相关
# 创建会话
tmux new -s <session-name>
# 进入会话
tmux a -t <session-name>
# 退出会话
ctrl+b d
# 列出会话
tmux ls
# 重命名会话
tmux rename-session -t old-name <new-name>
3、窗口相关
# 水平切分窗口
Ctrl+b %
# 垂直切分窗口
Ctrl+b "
# 当前窗口全屏或退出全屏
Ctrl+b z
# 关闭当前窗口(窗口的程序也会终止)
Ctrl+b x
保存与恢复 Tmux 会话
https://www.linuxidc.com/Linux/2015-07/120304.htm
https://zhuanlan.zhihu.com/p/146544540
1、安装 tmux-resurrect
mkdir ~/.tmux
cd ~/.tmux
git clone https://github.com/tmux-plugins/tmux-resurrect.git
vim ~/.tmux.conf
run-shell ~/.tmux/tmux-resurrect/resurrect.tmux
tmux source-file ~/.tmux.conf
2、保存所有会话
在某个会话中
ctrl+b ctrl+s
3、恢复所有会话
在某个会话中
ctrl+b ctrl+r
Tmuxp
介绍
当我们使用 Tmux 创建了很多的会话时,万一机器故障重启,很容易忘记都需要启动哪些会话,此时就需要 一款工具来管理并记录 Tmux 的会话,这个工具就是 Tmuxp;
管理会话的方式是通过 yaml 文件,一个 yaml 文件对应一个会话,在yaml 文件里又可以配置多个窗口,对应一个会话的多个窗口,这点和 k8s 配置服务的方式很像;
通过配置文件管理与记录会话的方式,方便存储业务所需的会话,方便复现业务的启动,方便移植后在新的环境启动,某些方面和K8S的优点比较像;
安装
pip install tmuxp
配置会话
1、 配置
session_name: 4-pane-split
windows:
- window_name: dev window
layout: tiled
shell_command_before:
- cd ~/ # run as a first command in all panes
panes:
- shell_command: # pane no. 1
- cd /var/log # run multiple commands in this pane
- ls -al | grep \.log
- echo second pane # pane no. 2
- echo third pane # pane no. 3
- echo forth pane # pane no. 4
2、 启动
tmuxp load ./mysession.yaml
tmuxp load path/to/my/project/
tmuxp load mysession ./another/project/