tmux安装及使用

tmux安装及使用

tmux是一款很好使用的终端工具,配合shell脚本使用非常方便。

一、tmux安装

终端输入命令:

sudo apt-get install tmux

二、tmux使用

首先需要对tmux使用的名词有一个基本了解:
session :会话
window : 窗口
pane:窗格

可以这样通俗的理解:当前界面的整个终端就是一个session(会话),一个session里面包含了很多个window(窗口),一个window可以被分成很多pane(窗格),关系可以表示如下:
session > window > pane

同时tmux还可以配合shell脚本一起使用,因此会在解算不同操作的终端命令、shell脚本命令以及快捷键等;

值得注意的是在使用tmux快捷键方式时,都需要使用前缀按键ctrl+b来唤醒,所以在使用快捷键需要先按ctrl+b,在按相应快捷键。

在这里插入图片描述

2.1 session的使用

2.1.1 创建session

创建一个新的session,在终端输入tmux,随后会创建一个默认名为0的且有一个windows的session

tmux

在这里插入图片描述通常在使用tmux的时候都需要指定操作的具体session、window和pane,因此为了方便使用需要对不同session、window、pane进行命名操作。

tmux new -s  <session-name> 
# 创建名称为test的session
tmux new -s test

在这里插入图片描述

2.1.2 离开session

有时候需要离开当前session进行其他操作,但是想要保留当前终端的程序继续运行,这时候就需要退出当前session

# 终端命令
tmux detach
# 快捷键
(ctrl + b )+ d

2.1.3 查看session

当我们打开好几个session时需要查看和操作不同session
ps:使用查看session的快捷键时需要在tmux的窗格中操作,同时可以选择操作不同session,退出按Esc

# 终端命令
tmux ls
# 快捷键
(ctrl+b) +s

2.1.4 进入session

进入指定名称session
ps:这里的进入session操作指的是在tmux之外终端选择session,在pane中输入终端命令无效,但是可以通过查看session的快捷方式选择进行指定名称session

# 终端命令
tmux attach -t  <session-name>
## 进入名为test的session
tmux attach -t test
tmux a -t test

2.1.5 选择session

在tmux终端中快速切换到其他session
ps:这里的选择session操作是在tmux终端下进行操作

# 终端命令
tmux switch -t <session-name>
## 选择并进入名为test2的session
tmux switch -t test2

2.1.6 关闭session

当你需要关闭部分session时,可以使用如下命令:
ps:在使用终端命令时当前session会被关闭,也就是说使用tmux ls命令查看session时,此时关闭的session已经不存在了;但是在tmux终端中使用快捷键时会回到你的电脑的终端,使用tmux ls查看session时,关闭的session还在,可以简单理解为快捷键是让当前session在后台挂机,不影响在当前session运行的程序

# 终端命令
tmux kill-session -t <session-name>
## 关闭名为test的session
tmux kill-session -t test

# 快捷键
(ctrl + b) + d

2.1.7 重命名session

对session进行重命令
ps:快捷键方式

#  终端命令
tmux rename-session -t <old-session-name> <new-session-name>
## 将名为 test 的session重命名为 test3
tmux rename-session -t test test3

# 快捷键
(ctrl+b) + $

在这里插入图片描述

2.2 windows的使用

有时候一个窗口不够用就需要重新窗口

2.2.1 创建窗口

# 终端命令
tmux new-window -n <window-name>
## 新建一个名为new_window的窗口
tmux new-window -n new_window

# 快捷键
(ctrl+b)+c

在这里插入图片描述

2.2.2 切换窗口

当一个session有很多window时需要进行窗口的切换

# 终端命令
tmux select-window -t <window-name>
## 切换到名为test的window下
tmux select-window -t test

# 快捷键
## 切换到下一个窗口: (ctrl+b) + n
## 切换到上一个窗口: (ctrl+b) + p
## 切换窗口列表并选择: (ctrl+b) + w
## 切换到指定窗口: (ctrl+b) + num   这里的num是每个窗口前的编号

2.2.3 重命名窗口

有时候需要对窗口进行重命名

# 终端命令
tmux rename-window <old-window-name> <new-window-name>
##  将test窗口重命名为 rename_window
tmux rename-window test rename_window

# 快捷键
(ctrl+b) + ,

2.2.4 关闭窗口

# 终端命令
tmux kill-window -t <window-name>
## <window-name> :可以是窗口名称,或者是窗口前面的数字

## 快捷键
(ctrl+b) + &
## 关闭当前窗口

2.3 pane的使用

在tmux中,窗格的使用是最频繁的。每个窗格可以干不同的事,不同的窗格之间是相互独立的。

2.3.1 切割窗口

# 水平切割成上下两部分
## 终端命令
tmux split-window

## 快捷键
(ctrl+b) + "

在这里插入图片描述

## 垂直切割成左右两部分
## 终端命令
tmux split-window -h
## 快捷键
(ctrl+b) + %

在这里插入图片描述

2.3.2 不同窗格间移动光标

光标移动到上/下/左/右
## 终端命令
tmux select-pane -U/-D/-L/-R

## 快捷键
(ctrl+b) + 上/下/左/右键 

2.3.3 关闭当前窗格

# 快捷键
(ctrl+b) + x

2.3.4 放大/缩小当前窗格

# 快捷键
(ctrl+b) + z

2.3.5 当前窗格显示时间

点击回车取消

# 终端命令
(ctrl+b) + t

2.4 tmux常用功能

2.4.1 使用鼠标滚轮

tmux在使用的时候无法使用鼠标滚轮,通常需要设置一下tmux配置,具体操作如下:
按完前缀ctrl+B后,再按冒号:进入命令行模式,
输入以下命令

set -g mouse on

Tip
但在以上设置下,会发现无法用中键向 tmux 中复制文本,也无法将 tmux 中选择好的文本中键复制到系统其他应用程序中。
这里有一个 trick,那就是在 tmux 中不论选择还是复制时,都按住 Shift 键,你会发现熟悉的中键又回来了 ? 此外,还可以使用 Shift+Insert 快捷键将系统剪切板中的内容输入 tmux 中。 相对于 tmux 原生的选择模式(不加 shift 键),使用系统选择有个缺陷,即当一行内存在多个面板时,无法选择单个面板中的内容,这时就必须使用 tmux 自带的复制粘贴系统了。

以上就是tmux常用功能和命令

三、tmux搭配shell脚本的使用

在写shell脚本时搭配tmux的命令可以“多线程”的操作不同窗口进行不同任务的处理,非常方便和高效,接下来将通一个简单的shell脚本对tmux进行一个介绍

## Set Tmux session and window name
session_name="tmux_session"
window_node="tmux_window"

## Kill tmux session of same name if existed
# kill同名session的tumx任务
tmux kill-session -t ${session_name}		

# 创建一个名为“tmux_session"的任务,其中窗口名为”tmux_window"
tmux new -d -s ${session_name} -n ${window_node}   

# Establish and split a new session in the background
# 左右切割窗口并命名为0/1
tmux split-window -h -t ${session_name}:${window_node}
tmux split-window -v -t ${session_name}:${window_node}.0
tmux split-window -v -t ${session_name}:${window_node}.1

# 系统待机2s
sleep 2

# 在当前窗口输入命令"pwd" 并进入到/home/data/emmc路径下运行test.py文件
tmux send -t  ${session_name}:${window_node} "pwd && \
							cd /home/data/emmc &&  \
							python test.py" ENTER
# 在0号窗口输入命令"rostopic list"并启动launch文件
tumx send -t ${session_name}:${window_node} "rostopic list && \
						 roslaunch analysis_imu imu.node" ENTER
				
## Attach the session to front
tmux a -t ${session_name}		 

参考链接:

[1] 一文助你打通 tmux
[2] 终端工具tmux使用教程 — 脚本启动程序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值