分类: LINUX
2010-12-24 10:43:21
使用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)。
简短实例
开启 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 会话就会被终止。
screen 实在是个让人喜欢的工具,除了在管理远程会话时给你带来诸多方便外,今天还让我发现了一 个很好用的功能,同步显示你的屏幕给另一个会话。这在给别人处理问题是尤为好用,可以让对方同步看到你的操作,剩下很多之后的解释描述工作。
方法:
a.双方同时登陆系统
b.演示方运行:
screen -S yahunet
c.观看方运行:
screen -x yahunet