网站主机提供商,门户建设,wordpress 资讯类模板,私人接单网站开发的能赚多少钱screen是一个很不错的工具#xff0c;有一个功能非常吸引我#xff0c;就是可以保留shell终端和多屏幕#xff0c;比如从自己PC ssh到远程Linux工作#xff0c;突然间网断了#xff0c;或者自己PC重启了#xff0c;重新ssh到远程Linux之后再attach到之前的screen就可以继… screen是一个很不错的工具有一个功能非常吸引我就是可以保留shell终端和多屏幕比如从自己PC ssh到远程Linux工作突然间网断了或者自己PC重启了重新ssh到远程Linux之后再attach到之前的screen就可以继续之前未完成的工作了。家里网络经常抽风正在写代码时突然网就断了screen的这个功能对我非常有用如果没有这个之前的工作可能就会因为断网而丢失了。再比如在公司电脑ssh到自己的vps写一些东西如果启了screen那下班回家ssh上去再attach到之前的screen就可以继续之前的工作了。还有一个比较不错的功能是在screen里面Ctrla c就可以创建多个屏幕相当于多个ssh终端了如果用putty的话就可以不用启一堆putty窗口而只需要一个就可以了。但有时候我也比较喜欢启多个screen每个screen里面只做一个比较专一的工作这个工作可能持续比较长时间工作一多时间一长之后可以就会启了很多screen比如下图 attach到id为810的这个screen命令 screen -dr 810 上图中的caption title即标题的信息比较有用特别是screen id当正在写代码 网络抽风重新attach时就需要screen id那这个显示screen idpid是怎么配置的呢当然是跟配置文件有关啦。配置路径/etc/screenrc或者/usr/etc/screenrc或者~/.screenrc如下 caption always %{.bW}%-w%{.rW}%n %t%{-}%w %%H %Y-%m-%d %c %p 其实就是在caption中配置%p但是只有screen-4.2.1以上才支持screen-4.0.3不支持。起初我是在我的ubuntu vps里用apt-get安装了screen怎么配置就是不显示screen id关键是不知道screen id对应caption的哪个配置项无奈只能下载源码来瞧瞧幸好下载的是最新版grep一通之后找到了解析的代码在screen.c的函数MakeWinMsgEv函数里面 找到了这个代码之后就很确信要显示screen id其实就是pid上面的getpid()也很显然screen id是一个比较抽象的说法就得在caption中配置%p了但是用apt-get安装的screen怎么搞都无法显示看一下apt-get安装的不是最新的版本而是screen-4.0.3再次下载screen-4.0.3源码下来看的确是没有解析%p这下明白了只能源码编译安装最新版本了。源码编译安装screen-4.2.1之后screen id也能显示了这个问题终于解决掉了但新问题又来了一是vim配色无效二是screen -ls不显示创建screen的时间如下图 对比一下之前的图就可以发现vim里颜色不对也是花了点时间google才知道需要在configure的时候要加入--enable-colors256才支持vim的配色这个问题也解决了。那最新版的screen -ls为什么不显示screen启动时间呢apt-get安装的版本是可以显示的啊其实这个问题不影响使用可以不用管但遇到问题不解决掉心里不踏实还是花点时间研究一下吧。起初我以为是命令行参数可以控制是否显示启动时间但是man里面也没有说还是从代码里找原因吧。当执行命令screen -ls的时候核心函数是FindSocket在socket.c文件中从最新版的FindSocket函数来看的确是跟时间没有什么关系那apt-get安装的版本为什么能显示呢需要对比一下代码apt-get source screen下载好代码对比之后发现原来是这个版本打了补丁那想要显示screen启动时间就好办了把能显示启动时间的FindSocket函数相关代码拷贝过来替换一下就可以了。这个需求量应该不大代码不贴了。 最后贴一下我的screenrc配置 #
# Example of a users .screenrc file
## This is how one can set a reattach password:
# password ODSJQf.4IJN7E # 1234# no annoying audible bell, please
vbell off
vbell_msg Wuff ---- Wuff!! term screen-256colorstartup_message offpow_detach_msg Screen session of \$LOGNAME \$:cr:\$:nl:ended.defscrollback 10000
hardstatus off
termcapinfo xterm*|linux*|rxvt*|Eterm* OP
termcapinfo xterm* is\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6ltermcapinfo xterm vi\E[?25l:ve\E[34h\E[?25h:vs\E[34l
termcapinfo wy75-42 xo:hs
termcapinfo wy* CS\E[?1h:CE\E[?1l:vi\E[?25l:ve\E[?25h:VR\E[?5h:VN\E[?5l:cb\E[1K:CD\E[1J
termcap vt100* ms:AL\E[%dL:DL\E[%dM:UP\E[%dA:DO\E[%dB:LE\E[%dD:RI\E[%dC
terminfo vt100* ms:AL\E[%p1%dL:DL\E[%p1%dM:UP\E[%p1%dA:DO\E[%p1%dB:LE\E[%p1%dD:RI\E[%p1%dC
termcapinfo linux C8attrcolor b .I
termcapinfo xterm Co#256:AB\E[48;5;%dm:AF\E38;5;%dm
defbce onbind ^k
bind ^\
bind \\ quit
bind K kill
bind I login on
bind O login off
bind } historyregister [ \033:se noai\015a
register ] \033:se ai\015a
bind ^] paste [.]hardstatus string %h%? users: %u%?defnonblock 5altscreen on
caption always %{.bW}%-w%{.rW}%n %t%{-}%w %%H %Y-%m-%d %c %p 参考
http://tiku.io/questions/134277/vim-colorschemes-in-screen-putty
http://blog.csdn.net/xocoder/article/details/9173845