文档章节

Linux下screen命令使用教程

hosser
 hosser
发布于 2016/07/03 18:10
字数 1288
阅读 70
收藏 5

Linux下screen命令使用教程技术

maybe yes 发表于2015-07-16 00:30

原文链接 : http://blog.lmlphp.com/archives/130/The_tutorial_of_Linux_command_screen_and_how_to_use  来自 : LMLPHP后院

Linux 下的 screen 命令能够方便的管理桌面会话,每个会话可以包含多个屏幕。使用 screen 可以快捷的保存工作环境,比如有的任务需要执行很长时间,或者网络不稳定的情况下保存桌面环境,下次使用 SSH 登录的时候可以直接进入某个会话,直接提升工作效率。

一开始,想到使用 screen,主要是有些进程需要执行很长时间,如果连接突然断开,或者网络不稳定的情况下会话退出了,进程就会被终止。使用 screen 可以很好的解决这个问题,使得进程可以常驻后台运行。本人使用的是 Ubuntu 系统,相信其他系统也差不多一样。在 Ubuntu 下安装非常方便,直接 $ apt-get install screen 就可以搞定。

网上的一些关于 screen 的教程,都不是很清晰,特别是对这个不懂的人,估计看了还是不会玩,下面以通俗的语言来玩玩 screen 命令。

启用 screen,同时开启一个 screen 会话

$ screen

// 执行上面的命令后出现如下全屏界面

Screen version 4.00.03jw4 (FAU) 2-May-06

Copyright (c) 1993-2002 Juergen Weigert, Michael Schroeder
Copyright (c) 1987 Oliver Laumann

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either
version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program (see the file COPYING); if not, write to the Free Software Foundation, Inc., 51
Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Send bugreports, fixes, enhancements, t-shirts, money, beer & pizza to screen@uni-erlangen.de

To use byobu (formerly screen-profiles), exit screen and run 'byobu'.



                                [Press Space or Return to end.]

接着按下回车或者空白就可以,这样系统就会接受 screen 的一些快捷键命令,如按下 ctrl + a 组合键后,然后按下 n ,屏幕左下角会提示 No other window.。

查看有哪些 screen 会话,使用 screen -ls,如下示例。

root@may:~# screen -ls
There are screens on:
        15985.pts-2.may (07/15/2015 12:32:44 PM)        (Attached)
        6293.pts-6.may  (07/14/2015 06:13:38 AM)        (Detached)
        11402.pts-0.may (06/23/2015 05:46:22 AM)        (Detached)
3 Sockets in /var/run/screen/S-root.

root@may:~#

上面例子中最上面的一个会话,就是刚刚打开的。创建一个指定名称的会话,可以使用命令 screen -S name。

screen 的状态有两种,Attached 和 Detached,分别表示前台运行和后台运行。使用 screen -r 会话名 可以将 Detached 状态的屏幕会话状态修改为前台运行,并同时切换到这个会话中。如果会话已经是 Attached 状态下,使用命令 screen -r 会话名 是不能切换到那个会话下的,会提示类似于 There is a screen on:15985.pts-2.may (07/15/2015 12:32:44 PM) (Attached) There is no screen to be resumed matching 15985.pts-2.may. 。如果需要切换到状态为 Attached 的会话下,需要先执行 screen -d 会话名 将会话状态修改为 Detached。将当前会话转为后台运行可以使用快捷键 ctrl+a, d 。如下示例:

root@may:~# screen -r 6293.pts-6.may

...


root@may:/srv/www/webchat.lmlphp.com# screen -ls
There are screens on:
        15985.pts-2.may (07/15/2015 12:32:44 PM)        (Attached)
        6293.pts-6.may  (07/14/2015 06:13:38 AM)        (Attached)
        11402.pts-0.may (06/23/2015 05:46:22 AM)        (Detached)
3 Sockets in /var/run/screen/S-root.

root@may:/srv/www/webchat.lmlphp.com# screen -r 15985.pts-2.may
There is a screen on:
        15985.pts-2.may (07/15/2015 12:32:44 PM)        (Attached)
There is no screen to be resumed matching 15985.pts-2.may.
root@may:/srv/www/webchat.lmlphp.com#

screen 的控制快捷键是 ctrl+a,所有的命令都是在这个控制信号之后,所以在 screen 模式下,ctrl+a 组合是不会将光标回到命令行的最前面的。相关的快捷键如下:
ctrl-a c:创建一个新的 Shell 窗口
ctrl-a ctrl-a:在 Shell 间切换,或者按住 ctrl 连按两次 a
ctrl-a w 显示所有的 Shell 窗口
ctrl-a n 切换到下一个 Shell
ctrl-a p 切换到上一个 Shell
ctrl-a 0…9 同样是切换各个 Shell
ctrl-a d 将会话转为后台运行

一 般情况下,需要断开连接时,最好将所有的 screen 会话状态全部改为 Detached,这样更安全,更稳定,Attached 状态下容易丢失窗口。如果需要删除某个屏幕会话,可以切换到那个屏幕下,使用 exit 命令,或者在会话下使用 ctrl+a k 会话名,系统会提示是否全部关闭所有窗口。

阅(307)评(0)查看评论

本文转载自:http://blog.lmlphp.com/archives/130/The_tutorial_of_Linux_command_screen_and_how_to_use

hosser
粉丝 192
博文 78
码字总数 4614
作品 3
徐汇
私信 提问
Tmux 使用教程 on Fedora 28

Tmux 和 gun/screen 都是优秀的终端复用软件,它的关键的好处就是,保持ssh 登录连接session不中断,并且能支持分屏操作,具备丰富的命令行参数,可以进行动态布局和操作。可以看作为screen ...

xuyaowen
2018/07/27
0
0
SSH远程会话管理工具 - screen使用教程

VPS侦探在刚接触Linux时最怕的就是SSH远程登录Linux VPS编译安装程序时(比如安装lnmp)网络突然断开,或者其他情况导致不得不与远程SSH服务器链接断开,远程执行的命令也被迫停止,只能重新...

芒果龙
2011/11/05
82
0
linux中screen命令的用法

linux中screen命令的用法 作为linux服务器管理员,经常要使用ssh登陆到远程linux机器上做一些耗时的操作。 也许你遇到过使用telnet或SSH远程登录linux,运行一些程序。如果这些程序需要运行很长...

xiaomaimai
2018/06/26
0
0
linux下安装xampp,XAMPP目录结构

XAMPP目录结构 重要的文件和目录 文件/目录 用途 ---------------------------------------------------------------------- Linux下XAMPP环境安装 官方教程:https://www.apachefriends.org......

万里虎
2014/11/29
931
0
Linux 下 8 种优秀的屏幕录制机

屏幕录制机已经成为常见的和良好的实践来记录一个重要桌面会话,例如,你想玩一个难度较大的游戏,并且向记录是如何完成的,或者你打算创建一个视频教程,入门文章或指南,或任何其他活动和记录...

linuxprobe
2016/07/20
2.3K
4

没有更多内容

加载失败,请刷新页面

加载更多

Spring Security 自定义登录认证(二)

一、前言 本篇文章将讲述Spring Security自定义登录认证校验用户名、密码,自定义密码加密方式,以及在前后端分离的情况下认证失败或成功处理返回json格式数据 温馨小提示:Spring Security...

郑清
31分钟前
3
0
php yield关键字以及协程的实现

php的yield是在php5.5版本就出来了,而在初级php界却很少有人提起,我就说说个人对php yield的理解 Iterator接口 在php中,除了数组,对象可以被foreach遍历之外,还有另外一种特殊对象,也就是继承...

冻结not
45分钟前
4
0
servlet请求和响应的过程

本文转载于:专业的前端网站➥servlet请求和响应的过程 1.加载 Servlet类被加载到Java虚拟机中,并且实例化。在这个过程中,web容器(例如tomcat)会调用Servlet类的公开无参构造函数,产生一...

前端老手
45分钟前
4
0
golang 1.13 errors 包来了,不用写“err 气功波”代码

引 这篇是对 errors 包 的姿势挖掘 气功波错误代码 从 http.Get()返回的错误 判断 syscall.ECONNREFUSED 错误.以前要对 go 标准库 error 结构有点熟悉,才能写出下面的代码 func CmdErr(err ...

guonaihong
48分钟前
28
0
喜玛拉雅已听书单

时间倒序排 书名 作者 状态 唐砖 孑与2 进行中 死灵之书(克苏鲁神话合集) 阿卜杜拉·阿尔哈萨德 进行中 赡养人类 刘慈欣 完结 赡养上帝 刘慈欣 完结 中国太阳 刘慈欣 完结 中国太阳 刘慈欣...

Alex_Java
50分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部