screen简介
Screen是大多数Linux发行版自带的一款软件,适用于多种场景,比如你需要使用scp拷贝大量文件时,可以在新的screen中完成(相当于在后台完成);或者你可以在不同的screen中设置不同的环境变量。这些问题均可通过screen解决。
开启一个screen:你只需要在命令行输入screen,然后按回车即可。
然后,那你就进入了一个screen,但是这个screen与之前的shell界面完全相同,工作时你可能无法确定自己正处于哪个screen。所以我们需要进行一些设置。
1. 使用exit
退出当前的screen窗口。 2.
在自己的$HOME
目录下建立一个.screenrc
的文件,文件内容为
1
2
3rdstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "
这个界面让screen和普通的shell区别开来了,接下来我们在这个screen中做点事情,比如我们用vi test.cpp
打开一个文件,然后输入点什么,如下图所示:
我们先不要保存这个文件,而是先按Crtl+a
组合键,然后按d
,退出当前的screen窗口,我们会回到之前的shell中。
我们用exit
命令退出当前的远程登陆窗口,然后重新连接,再用screen –ls
命令看一下会输出什么:
screen –ls
命令会列出当前已经挂起的screen窗口,显示格式为<pid>.<tty>.<host>
,我们现在用命令screen –r 24765
来连接这个已经挂起的screen,我们会看到之前的工作依然存在,它并没有因为我们退出远程登陆窗口而退出,极端的情况,当你在screen中做事情的时候,网络突然断开,你来不及通过Ctrl+a, d
来挂起一个screen,你重新连接之后,你依然可以通过screen –ls
看到之前的screen,并且依然可以通过screen –r <pid>
来连接它,你之前的工作不会断掉,因为screen会在你失去连接的时候自动挂起。
当然,你可以用screen –S screenname
来建立一个名字叫做screenname的screen,下次,你就可以用screen –r screenname
或者screen –r pid
来连此接screen了。关于更多screen的命令行选项,你可以通过命令screen –h
来查看。
现在我们来介绍一下在screen内部的一些操作,对screen的操作都是以Ctrl+a
组合键开始的,我们在app
screen内部输入Ctrl+a, ?
可以看到关于screen操作的组合键的所有介绍,
接下来我们介绍几个简单的命令:通过Ctrl+a, A
来给当前窗口设置名称,比如我们设置当前窗口0的名称为compile,而不是默认的bash,我们按Ctrl+a,A,会出现如下的界面:
我们删除掉bash,输入compile,回车,会看到窗口的名称已经变为compile。
接下来我们再用Ctrl+a,c
来建立一个新的窗口1,然后继续用Ctrl+a,A
给新的窗口1更名为Amber,完成后,我们继续Ctrl+a,c
建立新的窗口2,用Ctrl+a, A
给新的窗口2更名为Gromacs,操作无误的话,我们会看到如下的界面:
我们现在已经在一个叫做app的screen内建立了三个窗口,分别为compile,编号为0;Amber,编号为1;Gromacs,编号为2。三个窗口代表了三个不同的shell,我们可以在这三个shell内设置不同的环境变量,他们彼此之间相互不影响。当然,我们必须通过命令行的方式设置环境变量。
接下来我们首先介绍如何在这三个窗口之间切换。
在同一个screen的不同窗口之间切换很容易,按Ctrl+a
,窗口号就可以在不同的窗口之间切换,如Ctrl+a,0
切换到compile,Ctrl+a,1
切换到Amber。
我们现在已经建立好一个叫做app的screen,它包含了三个窗口,我们每次登陆的时候可以用screen –r app
连接到这个screen,退出的时候我们用Ctrl+a,d
挂起它就是,直接关掉putty的窗口也没关系(不建议这么做),screen会自动挂起。
稍微总结一下: 1
2
3
4
5
6
7screen –S app #建议一个名为app的screen
Ctrl+a A # 给screen内的当前窗口设置名称
Ctrl+a c #在当前screen内新建一个窗口
Ctrl+a $num #切换到窗口号为$num的窗口
Ctrl+a d #挂起当前screen
screen –ls #列出当前存在的screen
screen –r app #连接到名称为app的screen
本文转自大连分中心的使用说明。