<code id='buh99'><strong id='buh99'></strong></code>
    <span id='buh99'></span>

    <i id='buh99'></i>

        <dl id='buh99'></dl>

        1. <i id='buh99'><div id='buh99'><ins id='buh99'></ins></div></i>
          <acronym id='buh99'><em id='buh99'></em><td id='buh99'><div id='buh99'></div></td></acronym><address id='buh99'><big id='buh99'><big id='buh99'></big><legend id='buh99'></legend></big></address>
        2. <tr id='buh99'><strong id='buh99'></strong><small id='buh99'></small><button id='buh99'></button><li id='buh99'><noscript id='buh99'><big id='buh99'></big><dt id='buh99'></dt></noscript></li></tr><ol id='buh99'><table id='buh99'><blockquote id='buh99'><tbody id='buh99'></tbody></blockquote></table></ol><u id='buh99'></u><kbd id='buh99'><kbd id='buh99'></kbd></kbd>

            <ins id='buh99'></ins>

          1. <fieldset id='buh99'></fieldset>

            Linux系统中的screen命令基本使用教程

            • 时间:
            • 浏览:9
            • 来源:124软件资讯网

                作为linux服务器治理员,经常要使用ssh上岸到远程linux机械上做一些耗时的操作  。

                也许你遇到过使用telnet或SSH远程登录linux,运行一些法式 。若是这些法式需要运行很长时间(几个小时) ,而法式运行历程中泛起网络故障  ,或者客户机故障  ,这时间客户机与远程服务器的链接将终端 ,而且远程服务器没有正常竣事的下令将被迫终止 。

                又好比你SSH到主机上后 ,最先批量的scp下令  ,若是这个ssh线程断线了  ,scp历程就中止了  。在远程服务器上正在运行某些耗时的作业  ,可是事情还没做完快要下班了 ,退出的话就会中止操作了  ,怎样才好呢?

                我们使用screen下令可以很好的解决这个问题  。实现在断开SSH的情形下,在服务器上继续执行法式  。

                那什么是screen下令?

                Screen被称之为一个全屏窗口治理器 ,用他可以轻松在一个物理终端上获得多个虚拟终端的效果  。

                Screen功效说明:

                简朴来说  ,Screen是一个可以在多个历程之间多路复用一个物理终端的窗口治理器,这意味着你能够使用一个单一的终端窗口运行多终端的应用  。Screen中有会话的观点 ,用户可以在一个screen会话中建立多个screen窗口  ,在每一个screen窗口中就像操作一个真实的telnet/SSH毗连窗口那样  。

                Screen下令语法:

                screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

                Screen下令参数:

                -A -[r|R] 将所有的视窗都调整为现在终端机的巨细  。

                -c filename 用指定的filename文件替换screen的设置文件’.screenrc’.

                -d [pid.tty.host] 断开screen历程(使用该下令时 ,screen的状态一定要是Attached  ,也就是说有用户连在screen里)  。一样平常历程的名字是以pid.tty.host这种形式表现(用screen -list下令可以看出状态)  。

                -D [pid.tty.host] 与-d下令实现一样的功效 ,区别就是若是执行乐成  ,会踢掉原来在screen里的用户并让他logout  。

                -h <行数>   指定视窗的缓冲区行数  。

                -ls或–list 显示现在所有的screen作业  。

                -m 纵然现在已在作业中的screen作业  ,仍强制建设新的screen作业  。

                -p number or name 预先选择一个窗口  。

                -r [pid.tty.host] 恢复离线的screen历程  ,若是有多个断开的历程  ,需要指定[pid.tty.host]

                -R 先试图恢复离线的作业  。若找不到离线的作业  ,即建设新的screen作业  。

                -s shell 指定建设新视窗时 ,所要执行的shell  。

                -S <作业名称> 指定screen作业的名称  。(用来替换[pid.tty.host]的命名方式,可以简化操作).

                -v 显示版本信息  。

                -wipe 检查现在所有的screen作业  ,并删除已经无法使用的screen作业 。

                -x 恢复之前离线的screen作业  。

                Screen下令的通例用法:

                screen -d -r:毗连一个screen历程 ,若是该历程是attached  ,就先踢掉远端用户再毗连  。

                screen -D -r:毗连一个screen历程  ,若是该历程是attached  ,就先踢掉远端用户并让他logout再毗连

                screen -ls或者-list:显示存在的screen历程 ,常用下令

                screen -m:若是在一个Screen历程里 ,用快捷键crtl+a c或者直接打screen可以建立一个新窗口,screen -m可以新建一个screen历程  。

                screen -dm:新建一个screen  ,并默认是detached模式 ,也就是建好之后不会连上去  。

                screen -p number or name:预先选择一个窗口 。

                Screen实现后台运行法式的简朴步骤:

                1> 要举行某项操作时  ,先使用下令建立一个Screen:

                代码如下:

                [linux@user~]$ screen -S test1

                2>接着就可以在内里举行操作了  ,若是你的使命还没完成就要走开的话  ,使用下令保留Screen:

                代码如下:

                [linux@user~]$ Ctrl+a+d #按Ctrl+a  ,然后再按d即可保留Screen

                [detached] #这时会显示出这个提醒  ,说明已经保留好Screen了

                若是你事情完成的话  ,就直接输入:

                代码如下:

                [linux@user~]$ exit #这样就表现乐成退出了

                [screen is terminating]

                3> 若是你上一次保留了Screen  ,可以使用下令检察:

                代码如下:

                [linux@user~]$ screen -ls

                There is a screen on:

                9649.test1 (Detached)

                恢复Screen  ,使用下令:

                代码如下:

                [linux@user~]$ screen -r test1 (or 9649)

                Screen下令中用到的快捷键

                Ctrl+a c :建立窗口

                Ctrl+a w :窗口列表

                Ctrl+a n :下一个窗口

                Ctrl+a p :上一个窗口

                Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

                Ctrl+a K(大写) :关闭当前窗口  ,而且切换到下一个窗口(当退出最后一个窗口时 ,该终端自动终止  ,而且退回到原始shell状态)

                exit :关闭当前窗口  ,而且切换到下一个窗口(当退出最后一个窗口时  ,该终端自动终止  ,而且退回到原始shell状态)

                Ctrl+a d :退出当前终端 ,返回加载screen前的shell下令状态

                多窗口

                screen  ,像许多的窗口治理器一样  ,能支持多窗口 。这个功效在处置惩罚多个使命且同时没有打开新的会话时 很有用  。作为一个系统治理员 ,我经常要同时开四五个SSH会话  。在每个shell下 ,我可能要处置惩罚两三个使命  。不使用screen的话  ,需要15个SSH 会话 ,15次登录 ,15个窗口等等  。使用screen  ,每个系统都分配到一个单独的会话中  ,我通过screen来治理系统上差别的作业 。

                要打开新的窗口  ,只需要使用“Ctrl-A”“c” 。建立的新的窗口会显示一个默认的下令提醒符  。例如 ,我可以运行top下令后再打开一个新的窗口来做其它的事情  。Top继续留在那运行!可以亲自实验一下 ,启动screen并运行top 。(注:为了节约空间我截断了多个屏幕 。)

                启动top

                代码如下:

                Mem: 506028K av, 500596K used, 5432K free,

                0K shrd, 11752K buff

                Swap: 1020116K av, 53320K used, 966796K free

                393660K cached

              < p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME

                6538 root 25 0 1892 1892 596 R 49.1 0.3

                6614 root 16 0 1544 1544 668 S 28.3 0.3

                7198 admin 15 0 1108 1104 828 R 5.6 0.2

                现在可以通过“Ctrl-A”“c”来打开一个新窗口

                代码如下:

                [admin@ensim admin]$

                To get back to top, use "Ctrl-A "n"

                Mem: 506028K av, 500588K used, 5440K free,

                0K shrd, 11960K buff

                Swap: 1020116K av, 53320K used, 966796K free

                392220K cached

              < p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME

                6538 root 25 0 1892 1892 596 R 48.3 0.3

                6614 root 15 0 1544 1544 668 S 30.7 0.3

                你可以建立多个窗口然后通过“Ctrl-A”“n”切换到下一个窗口 ,或者使用“Ctrl-A”“p”返回上一个窗口  。当你在其它窗口事情时  ,其它窗口的每个法式都市保持运行  。

                退出screen

                有两种方式退出screen  。第一种和登出一个shell一样 ,你可以通过“Ctrl-A”“K”或者“exit”来终止一个窗口  。这样当前的窗口会被关闭  ,若是你打开了多个窗口  ,你就会直接转到其余中的一个  ,而若是是仅有的一个窗口时 ,你就退出了screen  。

                另外一种退出screen的方式是分散窗口  。这种方式只是简朴地关闭了窗口但历程仍运行着  。若是你有确定要长时间执行的历程  ,还需要关闭SSH法式时  ,你便可以使用“Ctrl-A”“d”分散窗口 。这会使你回到shell中  。所有的screen窗口都待在那里  ,你可以稍后重新接受它们  。(译者注:这很像我们现实中的最小化窗口和法式后台运行)

                接受会话

                假设你正用着screen花了很长时间编译着一个法式  ,突然间你的毗连断开了 。请不用担忧  ,screen会生存你的编译进度  。重新登录你的操作系统后使用screen列表工具检察有哪些会话正在运行:

                代码如下:

                [root@gigan root]# screen -ls

                There are screens on:

                31619.ttyp2.gigan (Detached)

                4731.ttyp2.gigan (Detached)

                2 Sockets in /tmp/screens/S-root.

                在这里  ,我有两个差别的screen会话  。要需要重新接受其中一个  ,使用恢复窗口的下令:

                代码如下:

                [root@gigan root]#screen -r 31619.ttyp2.gigan

                只需要使用 -r 选项再接会话的名  ,现在你便可以重新回到适才的屏幕  。令人欣喜的是  ,你还可以在任何地方重新接受  。岂论在办公室照旧其它客户端上 ,你都可以使用screen来启动一项事情然退却出  。

                多窗口

                screen  ,像许多的窗口治理器一样  ,能支持多窗口  。这个功效在处置惩罚多个使命且同时没有打开新的会话时 很有用  。作为一个系统治理员 ,我经常要同时开四五个SSH会话 。在每个shell下  ,我可能要处置惩罚两三个使命 。不使用screen的话  ,需要15个SSH 会话  ,15次登录 ,15个窗口等等  。使用screen ,每个系统都分配到一个单独的会话中  ,我通过screen来治理系统上差别的作业 。

                要打开新的窗口  ,只需要使用“Ctrl-A”“c” 。建立的新的窗口会显示一个默认的下令提醒符  。例如  ,我可以运行top下令后再打开一个新的窗口来做其它的事情  。Top继续留在那运行!可以亲自实验一下  ,启动screen并运行top  。(注:为了节约空间我截断了多个屏幕 。)

                启动top

                代码如下:

                Mem: 506028K av, 500596K used, 5432K free,

                0K shrd, 11752K buff

                Swap: 1020116K av, 53320K used, 966796K free

                393660K cached

              < p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME

                6538 root 25 0 1892 1892 596 R 49.1 0.3

                6614 root 16 0 1544 1544 668 S 28.3 0.3

                7198 admin 15 0 1108 1104 828 R 5.6 0.2

                现在可以通过“Ctrl-A”“c”来打开一个新窗口

                代码如下:

                [admin@ensim admin]$

                To get back to top, use "Ctrl-A "n"

                Mem: 506028K av, 500588K used, 5440K free,

                0K shrd, 11960K buff

                Swap: 1020116K av, 53320K used, 966796K free

                392220K cached

              < p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME

                6538 root 25 0 1892 1892 596 R 48.3 0.3

                6614 root 15 0 1544 1544 668 S 30.7 0.3

                你可以建立多个窗口然后通过“Ctrl-A”“n”切换到下一个窗口 ,或者使用“Ctrl-A”“p”返回上一个窗口 。当你在其它窗口事情时 ,其它窗口的每个法式都市保持运行  。

                退出screen

                有两种方式退出screen  。第一种和登出一个shell一样  ,你可以通过“Ctrl-A”“K”或者“exit”来终止一个窗口  。这样当前的窗口会被关闭  ,若是你打开了多个窗口  ,你就会直接转到其余中的一个 ,而若是是仅有的一个窗口时  ,你就退出了screen  。

                另外一种退出screen的方式是分散窗口  。这种方式只是简朴地关闭了窗口但历程仍运行着  。若是你有确定要长时间执行的历程 ,还需要关闭SSH法式时  ,你便可以使用“Ctrl-A”“d”分散窗口  。这会使你回到shell中  。所有的screen窗口都待在那里  ,你可以稍后重新接受它们 。(译者注:这很像我们现实中的最小化窗口和法式后台运行)

                接受会话

                假设你正用着screen花了很长时间编译着一个法式  ,突然间你的毗连断开了 。请不用担忧  ,screen会生存你的编译进度  。重新登录你的操作系统后使用screen列表工具检察有哪些会话正在运行:

                代码如下:

                [root@gigan root]# screen -ls

                There are screens on:

                31619.ttyp2.gigan (Detached)

                4731.ttyp2.gigan (Detached)

                2 Sockets in /tmp/screens/S-root.

                在这里 ,我有两个差别的screen会话  。要需要重新接受其中一个  ,使用恢复窗口的下令:

                代码如下:

                [root@gigan root]#screen -r 31619.ttyp2.gigan

                只需要使用 -r 选项再接会话的名  ,现在你便可以重新回到适才的屏幕  。令人欣喜的是  ,你还可以在任何地方重新接受 。岂论在办公室照旧其它客户端上  ,你都可以使用screen来启动一项事情然退却出  。