tmux终端复用器

会话与进程

命令行的经典使用方式:

  • 用户打开一个终端窗口(terminal window);
  • 用户在终端窗口中输入命令: ls、cd等等;

上述用户和计算机之间的这种临时交互,称为一次会话(session),会话的特点是终端窗口和其中启动的命令进程是连在一起的,打开窗口,会话开始,关闭窗口,会话结束,同时会话里运行的进程不论是否运行完,也随之终止。

需求痛点

  • ssh远程访问服务器,因为网络不稳定,编译/下载,或者其他命令被打断,无法持续进行;
  • 台式机的工作现场(环境变量、历史命令等)无法离开工位后,通过笔记本ssh登录使用;

tmux作用

主要是将用户会话和终端窗口“解绑”,将它门分离开,这样如果终端窗口关闭了(断网),和服务器的会话还能挂在后台。
tmux作用如下:

  • tmux允许在单个窗口中,同时去访问多个终端会话:对同时运行多个命令行程序有帮助,比如会话1用来编译,会话2用来下载;
  • tmux可以让终端窗口接入已经存在的会话:比如终端窗口通过ssh连接进入服务器后,还可以通过tmux命令接入已经存在的终端会话;
  • tmux允许每个会话有多个终端窗口:比如张三可以在终端窗口中用tmux使用一个会话,李四一样也可以用这个会话,因此可以多人实时共享终端会话;
  • tmux还可以像vim一样支持窗口任意垂直或者水平拆分;

使用场景

安装tmux

  • ubuntu或者debian(Debian是一个由自由软件社区发布的开放源代码操作系统)安装
sudo apt-get install tmux
  • CentOS或Fedora安装
sudo yum install tmux

常用命令

# 会话管理                                 
1. 启动tmux
tmux

2. 退出tmux
输入exit或者使用快捷键(Ctrl+d)

3. 新建会话
tmux new -s <session_name>

4. 分离会话
tmux detach (或者快捷键Ctrl+b d)

5. 查看会话
tmux ls # 或者是tmux ls-session

6. 接入会话
tmux attach -t session_number 	# 使用会话ID
tmux attach -t <session_name>	# 使用会话名称

7. 杀死会话
tmux kill-session -t session_number	# 使用会话ID
tmux kill-session -t <session_name>	# 使用会话名称

8. 切换会话
tmux switch -t session_number	# 使用会话ID
tmux switch -t <session_name> 	# 使用会话名称

9. 重命名会话
tmux rename-session -t session_number  <new_session_name>


# 窗口操作
1. 划分窗口
tmux split-window  	# 划分上下两个窗口
tmux split-window	# 划分左右两个窗口

2. 窗口间光标切换
tmux select-pane -U # 上方窗口,快捷键:Ctrl+b 方向键↑
tmux select-pane -D	# 下方,快捷键:Ctrl+b 方向键↓
tmux select-pane -L # 左边,快捷键:Ctrl+b 方向键←
tmux select-pane -R #  右边,快捷键:Ctrl+b 方向键→

3. 新建窗口
tmux new-window	# 新建窗口
tmux new-window -n <window_name> # 新建指定名称窗口
Ctrl+b	c	# 新建窗口

4. 关闭窗口
Ctrl+b	&	# 关闭窗口

5. 窗口重命名
tmux rename-window <nwe_name> # 快捷键:Ctrl+b 	',' 然后输入窗口name

6. 窗口切换
Ctrl+b 	p 	# 切换到上一个窗口
Ctrl+b 	n	# 切换到下一个窗口
Ctrl+b	<number>	# 切换到指定编号窗口

7. 在所有窗口中查找内容
Ctrl+b	f	# 在所有窗口中查找内容

在tmux中编译代码

        
ssh username@serverIP # 打开窗口,ssh远程到服务器
tmux new -s build # 创建一个名为new_tmux_name的终端会话'
.... # 执行编译命令:source、make等等
tmux detach # 将build会话和当前窗口分离,也可以执行Ctrl+b  d,将会话分离
# 等一段时间后,假设编译结束了
tmux attach-session -t build  # 再次连接build会话


多个显示器分辨率的tmux attach出现窗口不匹配的问题

主要是多个不同显示大小的终端在attach同一个session,出现窗口不匹配的现象,比如笔记本上tmux attach接入会话激活窗口之后,再到比较大分辨率的PC上去tmux attach窗口,出现窗口显示不完整有一些“…”。
解决方案:将其他较小分辨率的终端detach掉(比如最小的笔记本的的窗口执行:ctrl+a 再执行 shift+d)

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值