Screen使用小议
原链接:http://blog.pcwuyu.com/2013/347.html
原分类:网站建设
很多时候我们会遇到这样的情况,一个任务需要运行很长时间,例如编译某个庞大的软件包,或者运行更新软件包如:apt-get upgrade
等等。每当这个时候,我们被迫一直开启一个ssh客户端的链接,以便观察任务执行的状态、进行下一步操作等等。如果这个时候你的PC机需要关机或者重启,那么对于我们来说可能是个很痛苦的选择,因为一旦ssh连接断开后,想了解任务执行的情况就非常困难了!
这就是我今天向大家推荐Screen
这个软件包的原因,这个软件包可以说是一个虚拟shell环境工具。你可以在你登录到服务器之后,用这个工具创建一个虚拟的shell环境,在这个环境中工作,可以完全不用考虑断开连接对你的影响。下面我介绍一下Screen
的基本使用方法。
首先是安装。大部分的发行版中都默认安装了这个包,检验你的系统中是否有这个包,可以敲命令:screen -list
如果你的系统中有这个包,将会输出:No Sockets found in /tmp/screens/S-root.
`如果没有这个包,那么输出可能是:
-bash: screen: command not found`
如果没有这个包的话,可以自行安装:
如果你使用Ubuntu的话:apt-get install screen
如果你使用CentOS的话:yum install screen
你也可以到Screen的官方网站去下载软件包
安装了Screen之后,你就可以享受他给你带来的方便了。
首先,用你的ssh客户端登录你的服务器。在提示符(#或者$)下输入:screen -S MyScr
(其中“MyScr
”是你为这个虚拟shell环境起的名字,可以自定义)
输入回车之后,你就可以在这个虚拟的shell环境中工作了,你工作的内容都会被一直保留下来。试试吧,在里面敲几个命令,运行几个程序,和平常没有两样吧~~
如果想要退出要怎么办呢?只要按下Ctrl+A
,然后按d
,就可以退出刚刚建立的虚拟shell环境了(名字是MyScr)
若干时间后,你又想继续刚才的工作了,只要再敲:screen -r MyScr
就可以看到刚刚的界面了。怎么样,还是很简单适用的吧,呵呵。
当然,你不给这个虚拟shell环境命名也是没问题的,如果只有一个虚拟环境的话,也可以这样用screen
(回车)
工作……退出……screen -r
继续工作
系统还会默认用PID号码表识screen虚拟的shell环境。
例如,我直接用screen
命令建立了一个虚拟环境,退出之后,我想查看虚拟环境的情况:screen -list
输出应该是类似下面的:There is a screen on:
` 25202.pts-1.firewallX (Detached)`
1 Socket in /tmp/screens/S-root.
其中:“25202”
是这个虚拟环境的PID。不信的话,可以ps查看一下,呵呵~“pts-1”
是说你的ssh客户端登录的系统端口号是pts-1
“firewallX”
是我这台主机的名字
如果你建立了很多虚拟环境,又没有为他们命名的话,就只能用PID
来识别他们了。(记住这个PID号码太烦了吧,还是名字好!)
例如,我现在有两个screen建立的虚拟环境,我输入:screen -list
输出为:There are screens on:
`25202.pts-1.firewallX (Detached)`
` 25403.pts-1.firewallX (Detached)`
2 Sockets in /tmp/screens/S-root.
那么,我如果想进入第二个虚拟环境的话,我可以用什么命令呢?答案如下:screen -r 25403
如果我登录进去之后,用ctrl-a c
再创建一个新的虚拟Shell环境,那么这个环境就是在PID为25403的虚拟环境里面的子虚拟环境。
参考资料:
http://www.gnu.org/software/screen
http://linuxtoy.org/archives/screen.html (其中一些命令可能已经改变了功能)
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。