SCREEN简单使用

经常需要SSH远程登陆到服务器上,进行编译,安装等需要较长时间才能完成的任务。一般情况下,会为这种长时间任务单独开一个远程终端窗口,在此期间不能关掉窗口或断开连接。但是天有不测风云,总有意外掉线的情况发生,这个时候如果掉线前任务没有完成,就意味着之前的工作白费了,一切重新开始。

之前也苦恼这种情况的发生,直到有一天听人说起Screen能解决这个问题,才算解决一个痛点。二话不说就是一通搜啊。。。
安装
据说一般流行的Linux都会自带,如果运气不好没有安装,CentOS下可使用下面的命令进行安装。
yum install -y screen
Screen特点
1.会话恢复
//只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。
2.多窗口
//在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。
3.会话共享
//Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。
语法
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]
//参数说明
-A    将所有的视窗都调整为目前终端机的大小。
-d <作业名称>    将指定的screen作业离线。
-h <行数>    指定视窗的缓冲区行数。
-m    即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称>    恢复离线的screen作业。
-R    先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s    指定建立新视窗时,所要执行的shell。
-S <作业名称>    指定screen作业的名称。
-v    显示版本信息。
-x    恢复之前离线的screen作业。
-ls或--list    显示目前所有的screen作业。
-wipe    检查目前所有的screen作业,并删除已经无法使用的screen作业。
常用命令
screen的命令说明感觉有些长啊,而且我也用不到那么多功能,就记几个常用的吧。
screen -S test    #创建一个名为test的会话
screen -ls        #列出所有会话
screen -d test    #卸载名为test的会话,但会话中的任务会继续执行
screen -r test    #恢复名为test的会话
exit              #退出当前窗口
常用快捷方式
Ctrl+a c :在当前screen会话中创建窗口
Ctrl+a d  : 效果与screen -d相同,卸载当前会话
Ctrl+a w :显示当前会话中的窗口列表,显示在标题栏中
Ctrl+a n :切换到下一个窗口
Ctrl+a p :切换到上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
//这里的快捷键由三个键组成,如Ctrl+a c,你可以按住Ctrl键,再依次按下a和c。也可以先按一次Ctrl+a,再按一次Ctrl+c。两种方法都是可行的。
就这样吧,嗯,没错,更多用法可以百度了。或者查看帮助文档。就目前的命令,已经够我用段时间了。

原创文章,转载请注明: 转载自 芬芬杨杨
本文链接地址: https://www.codeqin.com/2018/02/26/38.html

此条目发表在Linux 软件分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注