科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道linux下screen命令的使用

linux下screen命令的使用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

系统管理员经常需要远程登录服务器 pd:t 然后在服务器上跑一些程序 'Q=~*S@;M[ 有个时候 iX?G2NQ 得跑很长时间(超过12小时) p+,Gs `N 这是如果程序没结束就退出远程管理终端 z[c#%!wO7:

作者:ccidnet 来源:ccidnet 2007年10月11日

关键字: 使用 命令 screen Linux

  • 评论
  • 分享微博
  • 分享邮件
查看作者资料 发送短消息 发送邮件 引用回复这个帖子 推荐此帖


linux下screen命令的使用


系统管理员经常需要远程登录服务器 pd:t  
然后在服务器上跑一些程序 'Q=~*S@;M[  
有个时候 iX?G2NQ  
得跑很长时间(超过12小时) p+,Gs `N  
这是如果程序没结束就退出远程管理终端 z[c#%!wO7:  
远程跑的程序很有可能就此当掉 k\kuB&  
以前常用的解决方式是用命令nohup +6vMMQ.  
但是nohup也有很多的问题 xoq8;q'.I  
当有了screen l3k^_Wr'  
这一切便都迎刃而解了 CQF bYWPV]  
敲入命令screen +M*n,wrb  
会创建一个跑着shell的单一窗口 n'|)pj  
在这里面 \JW~nd\  
你可以跑你所需要的程序 2k7gQ?p02  
然后Ctrl+a d退出刚创建的窗口(回到进入screen前的环境) SAOM`<I8  
然后再敲入命令screen创建新的终端窗口 eH G4)B_  
就这样 (k@3G0?d  
你可以建立多个有shell的窗口(这些窗口里都可以跑你自己的应用) "D$HD -S  
这样就是你退出远程管理窗口(进入screen的环境) e_ jtd_vy  
你的screen窗间的窗口都不会关闭 ?V i}J  
里面跑得应用自然也不会当掉 *[dcI\  
用screen -ls可以看所有的screen sessions r#9a xU{  
用screen -r sessionid可以进sessionid指定的特定的screen session e I"G5)q9  
最后 .re>]  
screen session不再使用的时候 h4``ol0j  
screen -r sessionid进去 o=UAM7kAlA  
exit退出即可 D%(A=}X6x  
Unix/Linux 工具: Screen 命令使用 <P% <3L}  
screen使用 3_Nx7kf  
使用screen非常简易.只需在SHELL键入screen,便可打开一个screen session。 d}g'g_9  
而在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。现在让我来简单介绍基本的命令C-a c -> Create,开启新的 window &I{!t &c  
C-a n -> Next,切换到下个 window 8)\",j$X%>  
C-a p -> Previous,前一个 window j|zb(pAB   
more.. nHb|E}Zt  
less.. C-a C-a -> Other,在两个 window 间切换 H1;5Zlq  
C-a w -> Windows,列出已开启的 windows 有那些 kNb H'xr  
C-a 0 -> 切换到第 0 个 window I)9G/)Ah  
C-a 1..9 -> 切换到第 1..9 个windowC-a a -> 发出 C-a,在 emacs, ve, bash, tcsh 下可移到行首C-a t -> Time,显示当前时间,和系统的 load ,"$h=r  
C-a K(大写) -> kill window,强行关闭当前的 windowC-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、 U7P6O$p4 E  
复制就像用使用 vi 一样C-b Backward,PageUp ,]7j aG ^  
C-f Forward,PageDown 6tve\9R  
H(大写) High,将光标移至左上角 Wr ] L\$  
L Low,将光标移至左下角 Ng\` ; Bp  
0 移到行首 3H#A`6  
$ 行末 y/@y)|zj  
w forward one word,以字为单位往前移 .K]8ZU*i  
b backward one word,以字为单位往后移 /6m.KZ9  
Space 第一次按为标记区起点,第二次按为终点 [_C>,=  
Esc 结束 copy mode )~gSW_]Y-  
C-a ] -> Paste,把刚刚在 copy mode 选定的内容贴上C-a ? -> Help,显示简单说明C-a d -> detach,将目前的 screen session (可能含有多个 windows) ^}T}%=E2hh  
丢 到后台执行 当按了 C-a d 把 screen session detach 掉后,会回到还没进 screen 时的状态,此时在 screen session 里每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 下次 login 进来时:screen -ls -> 显示所有的 screen sessions aJ9ZkR&Tc  
screen -r [keyword] -> 选择一个screen session 恢复对话若 screen -ls 里有 Attached sessions: 6Na ]UYa O  
screen -d [keyword] -> 强制 detach,以便「接手」过来 实例 2m6VGQc;  
说明看了那么多,让我们用一个实际例子来结束我们今天的学习。在我们开启一个screen后,然后使用joe编辑一个文件,之后因为临时需要离开这时就可以运行Ctrl+a d,显示如下:[becks@ec-base becks]$ screen 0Jb'c7}  
[detached]这个时候当我们运行ps -e 可以看到pts/2这个我刚刚运行的screen正在运行joe 0zoA 3m[[  
6264 pts/2 00:00:00 bash V\S7?sa  
6354 pts/2 00:00:00 joe而当我们回来后想恢复这个session,只需要键入screen -r,而当你有多个session时候,系统将提示你选择一个,如下: 'Q; :h{ m  
[becks@ec-base becks]$ screen -r ^@;; R`p  
There are several suitable screens on: gj    
6263.pts-1.ec-base (Detached) [0MIl&7  
6382.pts-1.ec-base (Detached) i:XrC G  
Type "screen [-d] -r [pid.]tty.host" to resume one of them.输入该session的pid进行恢复 _Ocv_  
[becks@becks becks]$ screen -r 6263想退出screen的session,和退出shell一样,只需要键入exit命令,成功退出后将有以下提示 7z'cmH8 U  
[screen is terminating]
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章