如何使用Linux Screen命令
Linux Screen命令允许您:
- 在一个SSH会话中使用多个Shell窗口。
- 即使在网络中断的情况下,也要保持Shell处于活动状态。
- 从多个位置断开并重新连接到Shell会话。
- 运行长时间运行的进程,而无需维护活动的Shell会话。
Linux Screen命令提示
我们每天都会使用Screen命令,因此当我们找到好的提示时会不断添加新的提示。
用yum安装Screen命令
可能是您的系统上已经有Screen命令了。在大多数Red Hat和CentOS发行版中,您可以在/ usr / bin / screen中找到Linux Screen命令。要查看Screen命令是否在您的路径中,可以使用which命令:
1个 2 | # which screen /usr/bin/screen |
如果没有Screen命令,则可以从RPM或系统的软件包文件中轻松安装它。例如,在CentOS上,您可以使用yum安装Screen命令:
1个 2 3 | # yum install screen ... Complete! |
由于您可能已经拥有Linux Screen命令或可以使用RPM,因此我不会从源头介绍Screen命令的构建。让我们继续介绍如何使用Screen命令。
启动Linux Screen命令
与其他任何命令一样,从命令行启动Screen命令:
1个 | # screen |
您现在位于Screen命令内的窗口内。除了一些特殊字符外,此功能就像普通的shell。
控制指令
命令:“ Ctrl-a”
Screen命令使用命令“ Ctrl-a”( 即控制键)和小写字母“ a”作为信号,将命令发送到Screen命令而不是Shell。
例如,先按“ Ctrl-a”,再按“?”。您现在应该拥有Screen命令帮助页面。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 | Screen key bindings, page 1 of 4.
Command key: ^A Literal ^A: a
break ^B b only Q clear C other ^A colon : pow_break B copy ^[ [ pow_detach D detach ^D d prev ^P p ^? digraph ^V readbuf < displays * redisplay ^L l fit F removebuf = flow ^F f reset Z focus ^I screen ^C c hardcopy h select ' help ? silence _ |
按键绑定是您在按下“ Ctrl-a ” 后Screen命令接受的命令。您可以根据需要使用.screenrc文件重新配置这些键,但我只使用默认值。
建立视窗
命令:“ Ctrl-a”“ c”。
要创建一个新窗口,只需使用“ Ctrl-a”“ c”。
这将使用默认提示为您创建一个新窗口。您的旧窗口仍处于活动状态。
例如,我可以先运行然后打开一个新窗口来执行其他操作。顶级保持运行!它仍然在那里。要自己尝试,请启动Screen命令,然后运行顶部。(注意:为了节省空间,我将一些Screen命令截断了。)
从头开始
1个 2 3 4 5 | top - 09:10:33 up 35 days, 17:26, 1 user, load averag Tasks: 131 total, 1 running, 130 sleeping, 0 stoppe Cpu(s): 0.4%us, 0.2%sy, 0.0%ni, 99.4%id, 0.0%wa, 0 Mem: 12302040k total, 6363652k used, 5938388k free, Swap: 1052248k total, 12k used, 1052236k free, |
现在打开一个新窗口,其中:“ Ctrl-a”“ c”
您的顶部窗口仍在运行,您只需切换回它即可。
在Windows之间切换
命令:“ Ctrl-a”“ n”
Screen命令允许您前进和后退。在上面的示例中,您可以使用“ Ctrl-a”(n)返回顶部。此命令将您切换到下一个窗口。
窗户就像旋转木马一样工作,并会循环回到您的第一个窗户。
您可以创建多个窗口,并在下一个窗口中使用“ Ctrl-a”,“ n”或在上一个窗口中使用“ Ctrl-a”,“ p”来切换它们。
每个进程将一直运行,直到您杀死该窗口。
从Screen命令上拆卸
命令:“ Ctrl-a”“ d”
分离是Screen命令上最强大的部分。Screen命令允许您从窗口分离并稍后重新连接。
如果您的网络连接失败,Screen命令将自动断开您的会话!
您可以使用“ Ctrl-a”,“ d”从窗口分离。
这将使您进入Shell。
所有Screen命令窗口仍然存在,您可以稍后将其重新连接。
当您使用rsync进行服务器迁移时,这非常有用。
重新连接到Screen命令
如果连接断开或从Screen命令上脱离,则可以通过运行以下命令重新连接:
1个 | [jeffh@office ~]$ screen -r |
这将重新连接到您的Screen命令。
但是,如果您有多个Screen命令,则可能会得到以下信息:
1个 2 3 4 5 | [jeffh@office ~]$ screen -r There are several suitable screens on: 31917.pts-5.office (Detached) 31844.pts-0.office (Detached) Type "screen [-d] -r [pid.]tty.host" to resume one of them. |
如果得到这个,只需指定所需的Screen命令即可。
1个 | [jeffh@office ~]$ screen -r 31844.pts-0.office |
记录Screen命令输出
作为顾问,我发现跟踪我对某人服务器所做的事情很重要。幸运的是,Screen命令使这变得容易。
使用“ Ctrl-a”“ H”创建会话的运行日志。
Screen命令将通过多个会话将数据追加到文件中。使用日志功能对于捕获所做的工作非常有用,尤其是在进行大量更改时。如果出现问题,可以查看日志。
获取警报
Screen命令可以监视窗口的活动或不活动。如果您要下载大文件,进行编译或等待输出,则该功能非常有用。
如果正在等待长时间运行的程序的输出,则可以使用“ Ctrl-a”“ M”查找活动。当在该Screen命令上注册输出时,Screen命令将在页面底部闪烁警报。
我在运行需要很长时间才能返回数据的命令时使用它。我可以启动命令,切换到另一个窗口,而不必继续切换回去检查状态。
您还可以监视不活动状态。为什么要使用这个?
如果要下载大文件或编译程序,则在没有更多输出时会得到通知。这是完成该工作的好信号。要监视静音或无输出,请使用“ Ctrl-A”“ _”。
锁定Screen命令会话
如果您需要离开计算机一分钟,可以使用“ Ctrl-a”“ x”锁定Screen命令会话。 这将需要密码才能再次访问会话。
1个 2 | Screen used by root <jeffh>. Password: |
停止画面
完成工作后,建议您停止会话,而不要保存以供以后使用。要停止Screen命令,通常只需在shell中键入exit。这将关闭该Screen命令窗口。您必须关闭所有Screen命令窗口才能终止会话。
关闭所有窗口后,您应该会收到有关Screen命令终止的消息。
1个 | [screen is terminating] |
或者,您可以使用“ Ctrl-a”,“ k”。如果您想终止Screen命令,应该会收到一条消息。