Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5219373
  • 博文数量: 553
  • 博客积分: 13864
  • 博客等级: 上将
  • 技术积分: 11041
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-28 21:25
个人简介

个人Blog: hhktony.com

文章分类

全部博文(553)

文章存档

2015年(1)

2014年(2)

2013年(12)

2012年(384)

2011年(154)

分类: LINUX

2011-12-01 02:35:08

使用ssh远程连接 linux服务器工作的时候,比如需要编译某些程序而这时网络不稳定断线, 工作就白干了, 又的重新连接重复刚才的工作,这时候 screen就可以派上用场了。
  养成好习惯多用 screen!

1.安装screen
---------------------------------
yum install screen
--------------------------------

2.运行 screen
--------------------------------
screen
--------------------------------

3.用法
  Ctrl+a 然后按c 建立一个新的screen 会话
  Ctrl+a 然后按n 跳转到下一个screen 会话
  Ctrl+a 然后按p 返回到上一个screen 会话
  Ctrl+a 然后按d 将当前的screen 会话放在背景执行
  Ctrl+a 然后按(大写)S 分离一个screen 会话出来,分离后用Ctrl+a 然后按tab键 在分离出来的各screen间跳转。
  screen -ls 列出当前所有的screen会话
  screen -r 进程号之前Ctrl+a 然后按d 放在背景执行的会话呼叫回来。
  ssh中如果发生了突然断线那么你重新登陆后 screen -ls 会发现有screen的状态是处于(Attached)状态此刻我们使用 screen -d 将他强行放到背景,然后再用screen -r 进程号将他呼叫回来。
  如果 screen -ls 看到有死亡的会话 可以用screen -wipe 进程号 将他杀掉。
  eg:
  # screen -list           #可以看到正在运行的screen实例
  There is a screen on:
  80338.ttyp3.chh (Detached)
  1 Socket in /tmp/screens/S-chh.
      # screen -r 80338        #返回
      # exit                  #彻底退出

  Screen 提供了两个主要功能:
  在一个终端内运行多个终端会话(terminal session)。
  一个已启动的程序与运行它的真实终端分离的,因此可运行于后台。真实的终端可以被关闭,还可以在稍后再重新接上(reattached)。

4. 简短实例
  开启 screen:
  # screen
  在screen 会话中,我们可以开启一个长时间运行的程序(如top)。Detach 这个终端,之后可以从其他机器
  reattach 这个相同的终端(比如通过 ssh)。
  # top
  现在用Ctrl-a Ctrl-d 来 detach。Reattach 终端:
  # screen -r
  或更好的:
  # screen -R -D
  现在attach 到这里。具体意思是:先试图恢复离线的screen 会话。若找不到离线的screen 会话,即建立新
  的 screen 会话给用户。
  Screen 命令 (在 screen 中)
  所有命令都以Ctrl-a 开始。
  Ctrl-a ? 各功能的帮助摘要
  Ctrl-a c 创建一个新的 window (终端)
  Ctrl-a Ctrl-n 和 Ctrl-a Ctrl-p 切换到下一个或前一个 window
  Ctrl-a Ctrl-N N 为 0 到 9 的数字,用来切换到相对应的 window
  Ctrl-a " 获取所有正在运行的 window 的可导航的列表
  Ctrl-a a 清楚错误的 Ctrl-a
  Ctrl-a Ctrl-d 断开所有会话,会话中所有任务运行于后台
  Ctrl-a x 用密码锁柱 screen 终端
  当程序内部运行终端关闭并且你登出该终端时,该 screen 会话就会被终止。
  
5. 同步操作显示给其他用户
    除了在管理远程会话时给你带来诸多方便外,今天还让我发现了一个很好用的功能,同步显示你的屏幕给另一个会话。这在给别人处理问题是尤为好用,可以让对方同步看到你的操作,剩下很多之后的解释描述工作。
  方法:
  a.双方同时登陆系统
  b.演示方运行:
  #screen -S xt
  c.观看方运行:
  #screen -x xt

阅读(1282) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~