Screen命令使用指南

来源:互联网 发布:安装ubuntu分区不可用 编辑:程序博客网 时间:2024/06/11 10:34

如果你问我什么命令最能提高工作过程中的幸福感,就目前的情况来看,我一定会毫不犹豫地回答:“screen!没错就是screen,一定要会用screen!”至于原因且听下段分解。

1、screen简介

GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。(from维基百科)

2、screen功能

作为一个命令行版本的窗口管理器,screen主要有如下几个功能(如下内容取自维基百科):

(1)会话恢复

只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。

(2)多窗口
在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。
(3)会话共享
Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。

3、使用实例

这部分主要讲我是如何使用screen命令的。其实,screen主要是用在运行作业耗时比较长的情况。比如,我现在从windows用一个ssh的客户端(我一般用SecureCRT)连接到服务器,然后运行一个命令跑起一个作业。如果耗时比较长,我windows端的ssh客户端必须一直开着,不然,服务器上运行的作业就停了。这是很讨人烦的一点,因为即使能够不关机,一直开着这个ssh客户端,万一网络出了问题,还是会悲剧。这里就是screen发挥威力的地方。

screen可以管理一系列的多个会话,然后,可以将要运行的作业跑在某个会话下面。这样,即使windows的ssh客户端关掉或者是网络出了问题,只要没有通过screen将其运行的会话关掉,跑在服务器上的作业仍然会继续运行,而且你可以随时在任何地方(比如换台机器)重新连接服务器,连接到之前的会话来观察作业的运行情况。下面就讲一个使用中的例子。

3.1 使用

为了测试,首先我先写一个比较耗时的任务,这里为了简单,就直接写了两个for循环间隔1s输出,来耗时任务的运行。代码如下:

#!/bin/bash#file name: work.shfor a in aaa bbb ccc;do    echo $a    sleep 1donefor((a = 0;a<1000;a++));do    echo $a    sleep 1done
然后,对这个脚本使用命令“chmod a+x work.sh”来给其添加执行权限,这样运行这个作业的时候只需使用命令“./work.sh”即可。

3.2 在会话中运行作业

(1)创建会话

使用命令“screen -S RunWork”来创建一个screen会话,命令执行之后,就会得到一个新的shell窗口,为了便于标示可以用快捷键Ctrl-a A(就是按下Ctrl+a键,然后按下shift+a),这样窗口上光标会提示给窗口重命名。输入名称“RunWorkWindow”之后,回车就完成了对该窗口的重命名。这里的重命名是为了避免混淆同一会话中的不同窗口,可以用Ctrl-a w快捷键来查看当前的窗口名称,示意图如下:

(2)运行作业与会话detach以及会话恢复

下面使用命令“./work.sh”运行作业,然后用快捷键Ctrl-a d将当前会话detach。这样,即使网络断掉或者关掉ssh的客户端,作业仍然会在服务器上运行,而且可以通过“screen -ls”命令来查看当前有哪些会话以及它们各自的状态。如果想要恢复一个已经detach的会话,只需用“screen -r SessionID”即可(SessionID就是screen -ls命令结果中的每个session前面的数字)。会话被恢复之后,可以看到该会话在命令行的输入结果和输出信息。


到这里,基本上这个例子就结束了。如果要同时运行多个耗时作业,直接多启动几个screen会话就行。

4、总结

有了screen,我们就可以很方便地将作业运行起来,然后自己该干嘛干嘛去。这是我说它能够提升工作中幸福指数的主要原因。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 qq邮箱密码忘了怎么办 qq加不了群怎么办视频 孩子好几天不大便怎么办 宝宝7天没有大便怎么办 40天小孩不拉屎怎么办 40多天婴儿便秘怎么办 小孩拉绿色稀便怎么办 5岁好几天不拉屎怎么办 2个月宝宝不大便怎么办 两月宝宝不拉屎怎么办 好几天没大便了怎么办 初生婴儿便秘解不出大便怎么办 小孩大便拉不出来怎么办 新生儿3天没大便怎么办 新生儿5天没大便怎么办 小孩好几天不大便怎么办 婴儿10天不拉屎怎么办 3岁大便拉不出来怎么办 孩子大便拉不出来怎么办 4岁大便拉不出来怎么办 排位队友太坑怎么办 lol遇到坑b队友怎么办 被冷暴力分手后怎么办 孕早期半夜饿了怎么办 怀孕了月经还来怎么办 大米生虫子吃了怎么办 老公有外遇不回家怎么办 老公和小三有了孩子怎么办 祖坟给人挖了怎么办 妯娌关系和不来怎么办 婆婆老说我不好怎么办 婆婆对我妈不好怎么办 老公嫌老婆胸小怎么办 牙上颚的肉肿了怎么办 乐视手机音量小怎么办 手表日期调过了怎么办 机械表日期不走怎么办 差银行钱还不起怎么办 有人威胁要杀我怎么办 受人威胁要打我怎么办 胳膊起疙瘩很痒怎么办