当前位置: 首页 > 科技观察

简单易用的终端工具介绍Screen

时间:2023-03-19 13:30:56 科技观察

screen是GNU开发的命令行终端工具,提供从多个终端窗口连接到同一个shell会话(会话共享)。当网络中断或终端窗口意外关闭时,屏幕中运行的程序仍然可以运行(系统自带的终端窗口,当窗口意外关闭时,终端窗口中运行的程序也会终止。).安装screen工具it@serverc:~$sudoaptinstallscreen-y*CentOS需要先安装epel-release才能安装screen(CentOS使用yum或dnf安装软件)。在主机A上创建一个名为it的sessionscreensessionit@serverc:~$screen-Sit在主机B上,通过ssh连接到主机A,查看已有的screensessionit@workstation:~/ansible$sshit@10.10。10.108通过-ls选项it@10.10.10.108'spassword:WelcometoUbuntu20.04.1LTS(GNU/Linux5.4.0-60-genericx86_64)......上次登录:ThuJan1413:57:322021it@serverc:~$screen-lsThereisascreenon:2107.it(01/14/2107:30:27)(附)1Socketin/run/screen/S-it。然后加入sessionit@serverc:~$screen-xit这样,双方就可以共享一个screensession,无论谁运行什么命令,对方都能看到;当需要退出session时,可以运行exit退出session(运行exit时,双方都会退出screensession),或者通过Ctrl+A,D退出单个session(Ctrl+A后接D).当网络中断或窗口意外关闭时,任务继续运行。在Linux中,打开两个终端窗口。我们的分支称它们为A窗口和B窗口。在A窗口中,运行pingit@workstation:~$ping10.10.10.1PING10.10.10.1(10.10.10.1)56(84)bytesofdata.64bytesfrom10.10.10.1:icmp_seq=1ttl=64time=1.21ms64bytesfrom10.10.10.1:icmp_seq=2ttl=64time=1.22ms64bytesfrom10.10.10.143timetl=6=1.19ms.......然后在窗口B,运行psaux得到系统处理,然后通过greppsaux|greppingit23360.00.23171448740?ssl20200:17/usr/libexec/gsd-housekeepingit1535850.00.012764872pts/3S+14:530:00ping10.10.1074030.1it15036过滤@workstation:~$coep--0gr=0gr:5Autoping我们看到ping正在运行。关闭A窗口后,我们进入B窗口(此时只有一个窗口),运行之前的psaux命令it@workstation:~$psaux|greppingit23360.00.23171448740?ssl20200:17/usr/libexec/gsd-housekeepingit1536510.00.0121082964pts/2S+14:570:00grep--color=autoping此时ping命令已经结束重新打开一个新的终端窗口作为窗口A运行screenit@serverc:~$screen-Stest然后运行ping命令it@workstation:~$ping10.10.10.1PING10.10.10.1(10.10.10.1)56(84)bytesofdata.64bytesfrom10.10在屏幕窗口中。10.1:icmp_seq=1ttl=64time=1.21ms64bytesfrom10.10.10.1:icmp_seq=2ttl=64time=1.15ms64bytesfrom10.10.10.1:icmp_seq=3ttl=64time=1.21ms…………......然后关闭A窗口,回到B窗口,运行psaux命令;housekeepingit1549640.00.012768940pts/3S+15:020:00ping10.10.10.1it1549860.00.012108736pts/4S+15:050:00grep--color=autoping我们发现当我们想回到之前的时候ping命令还在运行pingsession,可以通过screen-rit@workstation:~$screen-rtest*恢复session如果只有一个screensession,后面的session名称可以省略。如果不知道,或者忘记session命令,可以通过screen-ls查看主机上当前运行的screen会有上下分屏,创建一个screensessionit@serverc:~$screen-StestPressCtrl+A,然后Shift+S打开分屏;按Ctrl+A,然后按Tab,切换到下面的画面但是下面的画面什么都没有,需要用Ctrl+A,然后按C在下面的画面中创建一个终端,这样我们就可以在下面的画面中执行命令了下面的屏幕,如果我们需要在不同的屏幕之间切换,我们可以通过按Ctrl+A,然后按Tab来切换。当我们需要退出时,可以通过exit命令退出(在一屏运行exit命令后,只有终端退出,分屏状态不退出,所以需要通过之前的方法切换到另一屏,然后再次运行exit退出)。