贴说网 > 生活 > 正文

​screen(虚拟终端screen)

2024-02-20 11:31 来源:贴说网 点击:

screen(虚拟终端screen)

阿铭linux

近16年的IT从业经验,6年+鹅厂运维经验,6年+创业公司经验,熟悉大厂运维体系,有从零搭建运维体系的实战经验。关注我,学习主流运维技能,让你比别人提升更快,涨薪更多!

有时候我们需要执行一个命令或脚本,需要几小时甚至几天,在这个过程中,如果中途断网或者出现有其他意外情况怎么办,当然也可以把命令或者脚本放到后台运行,不过不保险,无法在屏幕上随时查看,这就要用到虚拟终端screen。

简单来说,screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的SSH连接窗口一样。

1.单个screen建立和退出

如果你系统里没有screen命令,需要先安装screen包

#yuminstall-yscreen

然后直接执行screen命令,则会进入到一个screen里。

screen

screen -ls可以查看已打开的screen会话

#screen-lsThereisascreenon:6183.pts-0.aminglinux01(Attached)1Socketin/var/run/screen/S-root.

ctrl+a,再按d,退出当前screen

退出后,如果想再次登入某个screen会话,可以使用的是screen -r [编号]

#screen-r6202

输入exit,可以直接退出screen会话,再次查看screen列表时,提示没有screen发现。

#screen-lsNoSocketsfoundin/var/run/screen/S-root.

2.

多个screen会话

首选依次创建4个screen,若想进入到其中一个,指定id即可

#screen[detachedfrom6275.pts-0.aminglinux01]#screen[detachedfrom6290.pts-0.aminglinux01]#screen[detachedfrom6305.pts-0.aminglinux01]#screen[detachedfrom6320.pts-0.aminglinux01]

此时查看screen列表,会有多个screen

#screen-lsTherearescreenson:6320.pts-0.aminglinux01(Detached)6305.pts-0.aminglinux01(Detached)6290.pts-0.aminglinux01(Detached)6275.pts-0.aminglinux01(Detached)4Socketsin/var/run/screen/S-root.

3.

使用-S选项来定义screen名字

#screen-S"test_screen"

此时进入screen,执行sleep命令

#sleep300

Ctrl + a ,再按d ,回到当前页面。我们再列出所有的screen

#screen-lsTherearescreenson:6361.test_screen(Detached)6320.pts-0.aminglinux01(Detached)6305.pts-0.aminglinux01(Detached)6290.pts-0.aminglinux01(Detached)6275.pts-0.aminglinux01(Detached)5Socketsin/var/run/screen/S-root.

其中6361就是刚刚定义的test_screen。