查看“GNUScreen”的源代码
来自Ubuntu中文
←
GNUScreen
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== GNU Screen:介绍和新手教程 == ---- 原文出处:未知 原文作者: jeduthun 授权许可:未知 翻译人员:MillenniumDark, leal 校对人员:leal 适用版本:all ---- 大多數現代Unix类操作系統(比如Linux,、MacOS X和BSD等)都帶有一個叫做GNU Screen的終端模式下的小工具。如果把終端比作戰士,那GNU Screen就是戰士手中強有力的武器,對於文本模式下的人機交互而言,它是一把名副其实的瑞士軍刀。 僅管這一工具用处很大,却被很多人所忽视。原因何在?因为它的存在几乎少有人知,即便是那些知道的人也很少能理解它要解决的问题!在這篇文章中,我將解釋screen會為你做什么,并且提供一些使用screen完成基本任務的簡單介紹。本文目标读者是那些能熟练使用命令行,但对screen本身只有很少或几无经验的人。 === screen之作用 === 一言以蔽之,screen是个终端的多路复用器。借助screen,你可以在单个终端内運行任意数量的基于終端的應用程序,如交互的命令shell,基于curses的應用程序,文本編輯器等等。做到這點的渴望正是大多數人迷上screen的原因。过去我登录到系统后,常常得打开六七个终端模拟器:一个用来读邮件,一个用来编辑代码,一个来编译代码,一个用来阅读新闻,一个用作登录web主机的shell,等等。现如今,我只要启动一个终端模拟器,然后在其中运行screen。Ok,一切搞定。 screen另一个很酷的主要特性是它能使运行着的程序脱离终端模拟器。也就是说即使你不小心关闭终端模拟器,screen也能让程序继续运行;甚至在你注销之后,它也能让程序在你下次登录后从上次中断处继续执行。也就意味着,所谓的“会话”——你在期间运行大量终端程序——是个自由流动的实体,你可以把它绑定到任意处的任意终端上,甚至根本不绑定,只要你愿意。 === screen新手上路:启动以及在程序间进行切换 === 在你最爱的命令shell提示符下键入screen即可启动screen。也许会收到一条欢迎信息,任意键略过该信息,就会进入一个空白终端,只包含一个shell提示符,一切和你启动screen之前实在是差不多。那究竟暗藏了什么? 在screen下運行的每個程序在各自窗口内運行,每個窗口都有一个独一无二的数字标志号。Screen建立一个新窗口,标记为0,并在窗口内启动一个命令shell。试着在新窗口里输入些东西,以便过会儿你切换回到该窗口时能认出它来。 現在再建立一個窗口;那會是窗口1。按C-a c即可建立新窗口;详细步骤为,先按下Ctrl-a,然后按c(即创建create窗口)。 現在你有兩個窗口了,试着在两者之间进行切换。具体动作为按C-a C-a,它会切换到当前窗口之前你使用的窗口。如果你打算运行两个以上的程序,你会需要如下一些有用的窗口切换方法: * 使用C-a n和C-a p切换至窗口列表里的下一个或上一个窗口,按窗口号排序。 * 使用C-a N——N为0到9之間的數字——切换至相应窗口。 * 使用C-a " 來獲得一份全屏的窗口列表。你可以使用箭頭鍵(或者vi風格的j和k)瀏覽列表,在某窗口项处于高亮显示时,按回车键可激活该窗口。C-a w会显示一个小型、不能交互的窗口列表。 使用一個窗口的時候,按C-a A可以給它起名。這個名字將显示在窗口列表里,当你使用大量窗口时,它可帮助你回想起自己在每个窗口里干吗来着。 退出一個窗口中的最後一個程序后,该窗口便自行消失。你也可以用C-a K來殺死那些反常的程序。 === 卸下和重新附加:终端分离之妙 === 如果你确实做了上面的練習,那你已成功建立了一個screen會話。你可以按C-a d卸下這個會話,此外关闭包含该会话的终端模拟器也可以卸下会话。不过,请记住,上述两种方法实际上都没有终止你的会话。它们只是解开你的会话和当前终端的绑定,你所启动的运行在screen里的所有程序仍在运行之中,千真万确。 試試這個:關閉你用來做上述練習的所有終端模擬器,然后只要你愿意,甚至可以注销,重新登录。启动一个新的终端模拟器,鍵入screen -r(這里的R自然是代表reattach),你會回到上次卸下會話的状态。 你大可以想象一下這帶來的一大堆好處。你可以一次性啟動所有自己喜愛的控制台程序,然後让它们运行在一个持续的screen会话里。有些人甚至让screen在那儿工作数月。 卸下和重新附加的另一個大用场是用作控制台模式的“远程桌面”。你可以卸下一个上班时的screen会话,在家用shell登录那台机器,然后重新附加。非常,非常好用。再加点努力,你甚至可以把多个终端全都附加到同一个会话里,对协同工作和会议而言奇妙无比。 === 复制,粘貼,以及回滾緩沖 === Screen會記下回滾行數(行数可配置),它能派上用场,因为在运行screen时你将无法使用终端模拟器的回滚功能。键入C-a [进入“copy mode”,你便可以访问回滚缓存。你可以给回滚缓冲里任意处的文本打上记号,并用C-a ]进行粘贴。Screen还能把日志写入文件中,不过该主题已超出本指南讨论范围。 === 監視沉默和活動 === 在screen里運行一大團程序的不足之一是你无法同時監視所有程序,因為一般來說,你每次只能看見一個。(事實上,你可以分割屏幕,一次看到多个,此属高级用法,不在本指南讨论范围之内)為了減少這一麻煩,Screen提供了如下特性,你可以监视一个窗口的沉默,比如用于获悉编译何时完成;或者监视一个窗口是否活跃,比如用于获悉某人最后在你喜欢的IRC频道上的谈话时间。 開始或停止監視當前的窗口的30秒沉默了30秒,按C-a _ ;開始或停止監視當前的窗口的活動,按C-a M。 === 和screen说拜拜 === 如卸下和重新附加一节所述,screen不易杀死(退出)。你不能只是关掉包含它的终端。(实际上,你可以这么做,不过所有进程仍会在系统中运行,等待被重新附加。)在screen里没有“quit”(退出)一键,那又该怎样才能完全退出screen呢? 据我所知,体面(即不是通过发送恶意的信号给进程而退出)退出screen的唯一途径是关闭每个screen窗口。退出每个screen运行的程序或shell,它们就会乖乖走开。当screen里运行的最后一个程序退出之时,screen本身也就“一命呜呼”了。 === 其它资料 === Screen之能力远多于我上面所描述的功能,不过本文所写已足够你上手之用。身在screen里时,你可以键入C-a ?获取一份简要的命令列表。screen的man页也有大量信息,如有疑问,你还可以参考下列web资源: Yahoo GNU Screen讨论组 screen邮件列表更新相当快,潜伏着许多高手。 Sven Guckes的 Screen页面 另一个概要页面;比本文更为简洁。 screen官方主页 无需赘言,该页对细节所述少的可怜。 screen man页 排版相当棒,组织成多个小节。很不错的参考手册。一定不要错过关于如何使用.screenrc定制screen的几个小节。 Screen FAQ 新手不宜,但实为解决疑难杂症、居家旅行(别扔臭鸡蛋……,纯粹kidding,译注)之必备用品。
返回
GNUScreen
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息