终端复用工具 Screen和Tmux

终端复用工具 Screen和Tmux

一、使用场景

场景一:大数据传输

很多人都有过使用 scp 进行过服务器间的大文件网络传输的经历。一般都需要很长的时间,但是如果这期间电脑出现断网或者断电的情况,则会导致远程连接工具无法与服务器通信,从而使得它所控制的数据传输也因此中断。

# 情景再现:
[root@localhost ~]# ls -lh
总用量 20G
-rw-r--r--. 1 root root    20G 921 09:40 win10.tar.gz 

[root@localhost ~]#  scp -P 11020 win10.tar.gz test@test1.cn:/home/test1
0% 8763KB 965.3KB/s 6:10:10

一个 20GB 的大文件,刚刚开始传输,预估耗时约 6 小时,但是我们无法保证中间不出现断网、断电、关机的情况。

在同时传输任务较少时,我们可以使用 nohup 后台运行的方式来解决,但是使用 nohup 会有弊端,具体体现在:若同时传输的任务较多时,很容易混淆无法确认具体是哪个任务对应的哪个传输,而且使用 nohup 的方式每次还会生成一个 nohup.out 临时文件占用磁盘空间。

场景二:多个窗口切换

作为运维工程师,很多时候我们需要查看各种服务器上的不同信息和状态的情况,在这种情况下,一个简单便捷好用的窗口管理软件,可以大大提高我们的工作效率。

场景三:一屏显示多窗口对比文件内容

在我们进行多文件内容对比时,需要创建多个终端,然后手动调整它们的大小和位置,这样就很麻烦。

下面介绍两款终端复用工具可搭配使用解决以上几种场景的痛点

二、终端复用工具1—screen(epel仓库)

1、软件安装

[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install screen

2、创建会话

[root@localhost ~]# screen -S name
-S参数表示创建的会话名字

# 你可以通过快捷键ctrl+a 然后松手,敲个d,也可以临时分离会话,但是会话不会中断

3、screen -ls 可以查看系统当前有的screen

[root@localhost ~]# screen -ls
There is a screen on:
27269.test (Detached)
1 Socket in /run/screen/S-root.
image-20230915125238244

4、恢复之前的session

[root@localhost ~]# screen -r 27269.test
screen -r 可以恢复之前的session
-r后面跟session名

5、多人共享会话

# 可以让多个人一起共享一个session,
# 以两个终端为例,终端1执行的操作会同步显示在终端2

[root@localhost ~]# screen -x 

四、终端复用工具2—tmux(baseos软件仓库)

1、软件安装

[root@localhost ~]# yum install -y tmux.x86_64 

tmux 依赖于 libevent 库和 ncurses 库,系统中原本没有这两个库的话,yum 会在安装时自动一并安装上。

2、启动tmux创建,一个新session

[root@localhost ~]# tmux new -s test_tmux

#创建出一个名字叫做test_tmux的session

image-20230915132306238

在创建会话的同时,tmux 会在会话中创建一个窗口(tmux window)
就是上图中的 test_tmux 0:root@localhost:~*

3.在tmux中创建一个新的窗口

好了,我们试着再创建一个窗口:
第一步:按 Ctrl+B 组合键,然后松开。
第二步:再单独按一下 c 键。

最底部出现了一个 1:bash,如下图所示。

image-20230915132708139
这说明,我们在 tmux session 中又创建了一个窗口。

星号 * 在这里表示的是“当前处于活跃状态的窗口”,也就是哪个窗口现在处于可操作状态,星号 * 就在哪个窗口的后面。

4.在窗口间切换

既然,我们在 test_tmux 这个 session 中已经有了两个窗口,那么如果想在两个窗口间进行切换,应该怎么操作呢?

很简单,假如我们要切换到 0:bash 这个窗口,步骤如下:
第一步:按 Ctrl-B 组合键,然后松开。
第二步:按数字 0 键。

看,我们刚才说的星号(*)移动到 0:bash 的后面。同理,在按下 Ctrl+B 组合键后,按相应数字键,就可以切换到相应的窗口了。

5、上下左右分割屏幕

上下分割屏幕使用的是ctrl+b 松手按"

左右分割屏幕使用的是ctrl+b 松手按%

#如何在多个会话之间切换呢?
ctrl+b 然后↑↓←→去切换光标所在位置
image-20230915133446370

6.退出会话

在命令行执行 exit 命令
image-20230915133015395

7、临时退出session

tmux所有的快捷键都是以ctrl+b开头

ctrl+b 松手,然后按d 临时退出这个session

8、查看已创建session,进入已创建的session

1、想查看当前所有的tmux会话,就使用
tmux ls

[root@localhost ~]# tmux ls
test_tmux: 1 windows (created Fri Sep 15 13:20:51 2023) [155x32]
2、想回去原来的会话就是用
tmux attach -t sessionname
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指尖@韶华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值