开源软件之screen的第一次使用

在网上看到一篇关于linux下屏幕协作的文章,原文如下:

屏幕协作

来自产品工程的高级维护用户 David 打电话说:“为什么我不能在您部署的这些新机器上编译 supercode.c”。

您会问他:“您运行的是什么机器?”

David 答道:“ Posh”。(这个虚够的公司将它的 5 台生产服务器以纪念 Spice Girls 的方式命名)。这下您可以大显身手了,另一台机器由 David 操作:

# su - david

转到 posh:

# ssh posh

到达之后,运行以下代码:

# screen -S foo

然后呼叫 David:

“David,在终端运行命令 # screen -x foo”。

这使您和 David 的会话在 Linux shell 中联接在一起。您可以输入,他也可以输入,但彼此可以看到对方所做的事情。这避免了进入其他层次,而且双方都有相同的控制权。这样做的好处是 David 可以观察到您的故障诊断技巧,并能准确了解如何解决问题。

最后大家都能看到问题所在:David 的编译脚本对一个不在此新服务器上的旧目录进行了硬编码。将它装载后再次编译即可解决问题,然后 David 继续工作。您则可以继续之前的娱乐活动。

关于此技巧需要注意的一点是,双方需要以同一用户登录。screen 命令还可以:实现多个窗口和拆分屏幕。请阅读手册页获取更多相关信息。

对于 screen 会话,我还有最后一个技巧。要从中分离并让它打开,请输入 Ctrl-A D(即按住 Ctrl 键并点击 A 键。然后按 D 键)。

然后通过再次运行 screen -x foo 命令可以重新拼接起来。

转载:http://www.ibm.com/developerworks/cn/linux/l-10sysadtips/index.html

感觉挺有意思的,于是上网搜了一下screen。下面是下载地址:

下载目录:ftp://ftp.gnu.org/gnu/screen/screen-4.2.1.tar.gz

其他版本:ftp://ftp.gnu.org/gnu/screen/

下载完成之后,ftp到linux的临时目录,解压之后,进入该目录,

安装“三部曲”,过程如下:

[[email protected] screen-4.2.1]$ ./configure --prefix="/account/work/ymm/usr/local"		#指定安装目录
this is screen version 4.2.1
……
Now please check the pathnames in the Makefile and in the user
configuration section in config.h.
Then type 'make' to make screen. Good luck.

[[email protected] screen-4.2.1]$ make				#编译
CPP="gcc -E -DETCSCREENRC='"/account/work/ymm/usr/local/etc/screenrc"' -DSCREENENCODINGS='"/account/work/ymm/usr/local/share/screen/utf8encodings"'" srcdir=. sh ./osdef.sh
AWK=gawk CC="gcc -g -O2 -D_GNU_SOURCE" srcdir=. sh ./comm.sh
AWK=gawk srcdir=. sh ./term.sh
……
gcc  -o screen screen.o ansi.o fileio.o mark.o misc.o resize.o socket.o search.o tty.o term.o window.o utmp.o loadav.o putenv.o help.o termcap.o input.o attacher.o pty.o process.o display.o comm.o kmapdef.o acls.o braille.o braille_tsi.o logfile.o layer.o list_generic.o list_display.o list_window.o sched.o teln.o nethack.o encoding.o canvas.o layout.o viewport.o -lcurses  -lelf -lcrypt

[[email protected] screen-4.2.1]$ make install			#安装
./etc/mkinstalldirs /account/work/ymm/usr/local/bin /account/work/ymm/usr/local/share/screen/utf8encodings
……
termcap entry (./terminfo/screencap) should be installed manually.
You may also want to install ./etc/etcscreenrc in /account/work/ymm/usr/local/etc/screenrc
[[email protected] screen-4.2.1]$ls /account/work/ymm/usr/local/bin/		#查看生成的文件
screen  screen-4.2.1

安装上面给出的提示,操作如下:

1、使用用户“billing_dx”登录一个终端,执行“screen -S ymm”

2、使用用户“billing_dx”登录一个终端,执行“screen -x ymm”

这样,两个窗口就连接起来了,进行的任何操作都是同步的。

我上网搜了一下screen命令中的这两个参数的含义:

-S sessionname
When creating a new session, this option can be used to specify a meaningful name for the session. This name identifies the session for "screen -list" and "screen -r" actions. It substitutes the default [tty.host] suffix.
#-S 创建一个新的session

-x
Attach to a not detached screen session. (Multi display mode).
#-x连接指定的session

上网搜这些东西的时候,还是使用google比较方便,如果只是使用英文的话,效果可能更好了。例如google里搜索:linux screen man 。

本来想查看screen的用法,但是因为找不到手册文件,所以:

[[email protected] screen-4.2.1]$man screen
Cannot open the message catalog "man" for locale "utf-8"
(NLSPATH="/usr/share/locale/%l/LC_MESSAGES/%N")

No manual entry for screen
[[email protected] screen-4.2.1

于是我想到,如果我安装了一个新的软件,而且也想着让别人使用man手册的话,我应该如何去做的问题。

上网搜到,使用“man”命令的时候,我们可以手动的指定到指定的目录查找man手册,这个参数就是“-M”,解释如下:

[[email protected] screen-4.2.1]$man man
-M  path
       Specify the list of directories to search for man pages.  Separate the directories with colons.
       An empty list is the same as not specifying -M at all.  See SEARCH PATH FOR MANUAL PAGES.

因为安装screen的时候,我们指定了screen的安装目录【./configure --prefix="/account/work/ymm/usr/local"】,所以,最后生成的的可执行文件和相应的说明文档都在该目录下,如下:

[[email protected] screen-4.2.1]$ls /account/work/ymm/usr/local
bin  share
[[email protected] screen-4.2.1]$ls /account/work/ymm/usr/local/share/
info  man  screen
[[email protected] screen-4.2.1]$ls /account/work/ymm/usr/local/share/man
man1
[[email protected] screen-4.2.1]$

所以,可以手动指定man手册的查询目录,进行查询,如下:

[[email protected] screen-4.2.1]$man -M /account/work/ymm/usr/local/share/man screen
SCREEN(1)                                                            SCREEN(1)

NAME
       screen - screen manager with VT100/ANSI terminal emulation

SYNOPSIS
       screen [ -options ] [ cmd [ args ] ]
       screen -r [[pid.]tty[.host]]
       screen -r sessionowner/[[pid.]tty[.host]]

DESCRIPTION
……

当然,这种方法应该只是一次性的方法,在《鸟哥的私房菜》中,还有一种一劳永逸的方法:

既然有man page,自然就是因为有一些文件数据,所以才能够以man page读出来啰!那么这些man page的数据 放在哪里呢?不同的distribution通常可能有点差异性,不过,通常是放在/usr/share/man这个目录里头,然而,我们可以透过修改他的man page搜寻路径来改善这个目录的问题!修改/etc/man.config (有的版本为man.conf或manpath.conf)即可啰!至于更多的关于man的讯息你可以使用『 man man 』来查询呦!

转载:  http://linux.vbird.org/linux_basic/0160startlinux.php#manual

/etc/man.config

这个档案乍看之下好像跟 bash 没相关性,但是对于系统管理员来说, 却也是很重要的一个档案!这的档案的内容『规范了使用 man 的时候, man page 的路径到哪里去寻找!』所以说的简单一点,这个档案规定了下达 man 的时候,该去哪里查看数据的路径设定!

那么什么时候要来修改这个档案呢?如果你是以 tarball 的方式来安装你的数据,那么你的 man page 可能会放置在 /usr/local/softpackage/man 里头,那个 softpackage 是你的套件名称, 这个时候你就得以手动的方式将该路径加到 /etc/man.config 里头,否则使用 man 的时候就会找不到相关的说明档啰。

事实上,这个档案内最重要的其实是 MANPATH 这个变量设定啦! 我们搜寻 man page 时,会依据 MANPATH 的路径去分别搜寻啊!另外,要注意的是, 这个档案在各大不同版本 Linux distributions 中,檔名都不太相同,例如 CentOS 用的是 /etc/man.config ,而 SuSE 用的则是 /etc/manpath.config , 可以利用 [tab] 按键来进行文件名的补齐啦!

转载:http://linux.vbird.org/linux_basic/0320bash.php#man

因为通过上面方法需要修改“ /etc/man.config ”文件,这就牵扯到了有没有这个权限的问题了。

[[email protected] screen-4.2.1]$ll  /etc/man.config
-rw-r--r--. 1 root root 4940 Apr  3  2012 /etc/man.config
[[email protected] screen-4.2.1]$

没有root权限,也就没法进行修改了。不过我感觉,对于我来说,使用“-M”参数,就足够使用到了。

追加:刚才发现,如果我吧man手册所在的目录,添加到PATH环境变量中,还是可以达到直接查询man手册的目的,测试效果如下:

[[email protected] screen-4.2.1]$man screen
Cannot open the message catalog "man" for locale "utf-8"
(NLSPATH="/usr/share/locale/%l/LC_MESSAGES/%N")

No manual entry for screen
[[email protected] screen-4.2.1]$ export PATH=$PATH:/account/work/ymm/usr/local/share/man
[[email protected] screen-4.2.1]$man screen
SCREEN(1)                                                            SCREEN(1)

NAME
       screen - screen manager with VT100/ANSI terminal emulation

SYNOPSIS
       screen [ -options ] [ cmd [ args ] ]
       screen -r [[pid.]tty[.host]]
       screen -r sessionowner/[[pid.]tty[.host]]

DESCRIPTION

不过这种把什么东西都添加到环境变量PATH的方式,我想着应该不是太推荐吧。不过,这总归也算是一种方法吧!

如果大家有更好的方法,欢迎指导啊!

开源软件之screen的第一次使用,布布扣,bubuko.com

时间: 2024-10-13 21:36:38

开源软件之screen的第一次使用的相关文章

100款开源软件

不知道这些你就OUT了!100款开源软件 好的软件可以极大提高工作效率,完成一些不可能完成工作.然而我们也常常为选择哪款软件而头疼,本次为大家推出的100款软件都是经过整理分类的,而且最重要的是100款软件都是开源免费且使用于Linux环境下,大部分都可以直接从官网上下载使用.如果你完全没有接触过以下我介绍的这100款软件,我只能说一句你OUT了! 图:100款软件分类图 接下来将要介绍的100款开源应用程序,是我花了很多时间为大家整理的,这些软件对大家来说是很有用的.我希望通过这100款软件告

Github 的系统内部都在用什么开源软件?

有时候处理规模问题最好的办法就是让事情变得简单并尽你可能去避免出现这种情况.这是 GitHub 所采用的方法,林纳斯·托瓦兹(Linus Torvalds)在十年前开发了Git源代码控制工具,GitHub 为该工具提供资料库服务(repository service),目前已经有了爆炸性的发展,并成为开源软件开发工作的重心之一. 可以理解为什么程序员们会精挑细选他们创作代码用的工具并与他人分享,反过来,他们也会去调整和改进这些工具.一种非常现实的感觉就是,软件开发者们“住进”这些系统中后,源代码

PHP 之 Laravel 框架安装及相关开源软件

Laravel 被称为简洁.优雅的PHP开发框架,但第一次接触此框架的人有不少都卡在了安装上,其实在 Linux 下只需要很简单的几步就可以搞定,这里我们以 CentOS 下 PHP + Nginx + Mysql 的环境为例. 首先需要了解 Laravel 安装依赖,比如 Laravel4.2 就有下面的要求: PHP >= 5.4 - MCrypt PHP 扩展 最主要的是 PHP 版本,正常安装的话相关扩展应该都会包含 另外你的系统需要有 Composer,一个 PHP 依赖管理工具,没装

从 SDWebImage 谈如何为开源软件做贡献

来源:伯乐在线 - 酷酷的哀殿 链接:http://ios.jobbole.com/89483/ 点击 → 申请加入伯乐在线专栏作者 相识 – 知我者谓我心忧,不知我者谓我何求 今天和别人聊天时,扯到了这个非常著名的开源库.算算日子,我和 SDWebImage 已经认识 3 年零 11 个月了.将近四年的时间,说短不短,说长不长. 作为 iOS 开发者,我接触的第一个库就是 SDWebImage(第二个是 ASIHttpRequest),研究时间最长的也是 SDWebImage. 刚学完基础知识

优秀开源软件

学习万能的helloworld例子 花30分钟看一下t-io官方提供的helloworld,了解一下TCP编程的大概流程,文档传送门: t-io的hello world 学习用于进阶的showcase例子 showcase一词是从springside借来的,放这很应景,天蓬元帅就是这样学习的,可以和他交流,他后面会出详细的教程. 列一下作者本人用过的国产开源软件 网上很多人对国产开源的印象还停留在n年前,此处列一下作者本人一直在用的部分国产开源软件,其中有的是有争议的,也有暴过漏洞的,但是我们想

2015 年度新增开源软件排名 TOP 100

收藏了,以备不时之需,选型的时候,可以优先从其中考虑了. 2015 年度新增开源软件排名 TOP 100 http://www.oschina.net/news/69808/2015-annual-ranking-top-100-new-open-source-software

OpenSource.com 评出 2014 年十佳开源软件

Docker 应用容器平台 “电源管理和虚拟化以相同的方式允许我们从服务器利用率中获取最大的利益.如何真正的解决虚拟化,这世界第一难题仍然是普遍存在的.Docker 自从 2013 年开源以来,刚好在这开源改革的关键时刻适应了时势的发展,提供扩展构建块,允许类似我们这样的工程师和架构师能够以亘古未有的方式进行分布式平台的扩 展.”—Richard Morrell, Senior software engineer Petazzoni on the breathtaking growth of D

(转)10款微信公众平台相关的开源软件

1.微信公共帐号机器人 WeBot WeBot ( Weixin Robot) 的设计目标就是让你傻瓜化的接入微信公众平台.是 微信公众平台提供的开放信息接口的自动回复系统,基于node.js 实现. 功能: 清晰独立的 router ,轻松实现文本匹配流程控制 基于正则表达式的对话设定,配置简单,可以给一句话随机回复不同内容 支持等待后续操作模式,如可以提示用户"需要我执行xxx操作吗?" 授权协议: 未知开发语言: JavaScript 源码地址:https://github.co

开源软件Review Board

开源软件, Review Board 代码审查的. https://www.reviewboard.org/