`
liaofeng_xiao
  • 浏览: 127302 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

screen用法小记

阅读更多
screen也是早就会用的工具,但发现近来一段时间不用,就知道^a^a和detach attach这些简单的命令了。同样的情况还有tmux、svn、git,学习的时候一是觉得知识简单,二十觉得经常在用,不可能忘掉。可知世事无常,好记忆总不如烂博客,于是吃一见长一智,来个亡羊补牢罢。

第一步,启动screen:
screen
或者启动时执行一条shell命令:
screen vim notification.py

启动选项:
screen -c: 指定screen配置文件,默认配置文件是~HOME/.screenrc
screen -d: detach screen, 在screen会话里使用,等同于^a d
screen -r [pid.sessionname]: resume a detached screen
screen -R: resume first appropriate screen session 
screen -e ^xy: 将ctrl+x设置为控制字符,如果输入ctrl+x,则认为输入了y(Set the command character to x, and the character generating a literal command character (when typed after the command character) to y. The defaults are C-a and a, which can be specified as ‘-e^Aa’),默认设置是 -e^Aa
screen -h num: 设置defscrollback,即滚动条缓冲区大小
screen -ls or -list: 显示所有的screen session
screen -wipe: 同screen -ls一样,但会清除已经死掉的session
screen -S sessionname: 设置sessionname
screen -v: print version information
screen -x: attach to a session which is already attached elsewhere (multi-display mode). Screen refuses to attach from within itself. But when cascading multiple screens, loops are not detected; take care.

screen配置:
screen配置来自三个地方:
1. 默认配置,来自~HOME/.screenrc和/usr/local/etc/screenrc文件
2. 通过指定配置文件获取配置: screen -c xxx
3. screen运行过程中通过colon交互式修改配置文件

缺省screen配置:
C-a ': 选择screen窗口,输入数字,回车确认
C-a ": 出现窗口列表,回车选择
C-a 0..9-: 选择0~9号窗口,或者-窗口
C-a c或者C-a C-a: 创建窗口
C-a d或者C-a C-d: detach screen
C-a k或者C-a C-k: kill current window
C-a n或者C-a C-n: switch to next window
C-a N: switch to window N, N is window index
C-a p或者C-a C-p: switch to previous window
C-a t或者C-a C-t: show load average and xref
C-a w或者C-a C-w: show windows list,等同于C-a "
C-a ?: show key bindings
C-a [: enter copy mode,空格键开始选择内容,再次空格选择完毕
C-a ]: paste,首先要进入insert模式


screen配置文件:
如果要想学习这部分内容,首先要能够看明白screen的各种命令选项,参考:http://www.gnu.org/software/screen/manual/screen.html#Command-Summary

配置文件参考:
#trun off the startup message                                                   
startup_message off                                                             
term linux                                                                      
                                                                                
defscrollback 40960                                                             
hardstatus alwayslastline                                                       
                                                                                
#terminal name                                                                  
shelltitle "$|bash"                                                             
                                                                                
#shutdown the noise                                                             
vbell off                                                                       
                                                                                
bind w windowlist -b                                                            
bind ^w windowlist -b                                                           
                                                                                
#initial apps to run                                                            
screen                                                                          
screen                                                                          
select 0                                                                        
                                                                                
escape ^aa

attrcolor u "-u B"                                                              
autodetach on                                                                   
                                                                                
#hardstatus string '%{= kG}[ %{G}%c:%s %{g}][%= %{= kw}%?%-Lw%?%{Y}%n*%f%t %{K}%?%+Lw%?%= %{kG}][ %{C}(F8)Screen (F9)Title (F10)Detach (F11)Prev (F12)Next %{kg}][%{kG} %l %Y/%m/%d %{kG}]'
hardstatus string '%{= kG}[ %{G}%c:%s %{g}][%= %{= kw}%?%-Lw%?%{Y}%n*%f%t %{K}%?%+Lw%?%= %{kG}][ %{C} %{kg}][%{kG} %l %Y/%m/%d %{kG}]'


小结一下吧:

screen的分屏给人很鸡肋的感觉,^a S后,通过^a tab切换,然后在用^a c创建新窗口。现在我的电脑还只支持横着分屏,但新版本的screen支持竖着分屏了。很多时候还是会用vim的分屏吧,而我,连vim的分屏都不喜欢用。

另外,默认的^a控制键跟shell的快捷键ctrl + a(光标一到命令最前面),所以在screen窗口中需要跑到命令最前面,需要输入ctrl + a + a。

还有个问题就是screen滚屏问题,比如有个窗口A正在输出日志,窗口B在编辑源代码,当你从窗口B切换到窗口A查看日志,并且想查看更老的日志时,你需要滚屏。默认情况下滚屏则出现了原来窗口B的内容,这是个巨大的不便利,虽然没研究其中的原因。但也有个曲线救国的方式,陷进去copy模式,然后往回滚:
1. ctl + a + [,
2. 通过所有的vim滚屏键滚动屏幕,比如ctrl+b

据说tmux已经甩screen几条街了,虽然有学过tmux,但也好久没用了。当时学的时候对tmux的分屏很有爱,哪天再过来记录一下~
分享到:
评论

相关推荐

    screen 使用方法详解

    使用 `screen -ls` 命令可以查看当前用户的所有 screen 会话,包括已附加的(Attached)和已分离的(Detached)。 3. **分离与重新附加 screen 会话** - 分离 screen 会话:在 screen 会话中,按下 `Ctrl+a` 后再...

    linux的screen用法

    screen的用法,linux系统中关于screen的用法。

    利用QNX screen接口共享屏幕显示图像

    1.QNX screen系统是一个...2.其中使用screen_create_context、screen_create_window、screen_read_display和screen_post_window等基本screen接口,对接口的理解很有帮助。 3.需根据代码,自行适配编译以及运行环境。

    usd screen usd screen

    usd screen usd screen usd screen usd screenusd screen usd screen usd screen usd screenusd screen usd screen usd screen usd screen

    C#实现SplashScreen

    5. 最后,为了确保SplashScreen在关闭后主窗体才可见,我们可以在`Main`方法中添加一个同步机制,等待主线程(即加载MainForm的线程)完成: ```csharp mainFormThread.Join(); // 等待主线程结束 ``` 这就是C#中...

    QNX Screen Developers Guide

    - **内容简介**:本章介绍了如何在QNX Screen中管理和操作窗口,包括创建不同类型窗口的方法。 - **知识点**: - 窗口类型 - 窗口属性 - 窗口父子关系和定位 - 窗口创建和操作 - 像素格式 ##### 第7章:显示屏...

    ABAP SELECT-SCREEN 的几个用法.doc

    下面,我们将深入探讨几个关键的SELECT-SCREEN用法,这些技巧对于优化用户界面和提升用户体验至关重要。 1. **SELECTION-SCREEN BEGIN OF LINE...END OF LINE** 这一对指令用于定义一个屏幕元素行的起始和结束。...

    linux下screen命令的使用

    Screen 命令的使用方法: 1. 打开 Screen 会话:在 SHELL 键入 screen,打开一个 Screen 会话。 2. 创建新的窗口:在 Screen 会话中键入 C-a c,创建一个新的窗口。 3. 切换窗口:在 Screen 会话中键入 C-a n,...

    linux screen 命令详解

    ### Linux Screen 命令详解 #### 一、引言 在日常的系统管理工作中,尤其是在处理长时间运行的任务时,例如系统备份、FTP...无论是对于日常的系统管理工作还是开发者来说,掌握 Screen 的使用方法都是非常有帮助的。

    matlab 屏幕截图ScreenCapture

    "matlab 屏幕截图ScreenCapture" 是一个专为此目的设计的工具,它提供了简洁易用的界面,使得在MATLAB中进行屏幕截图变得更加方便。 该工具的核心功能包括: 1. **截图功能**:ScreenCapture工具允许用户快速捕获...

    captureScreen.zip

    2、使用方法:这个软件是用java写的,需要先安装java虚拟机运行环境,要求java 11或java12的版本,然后双击就可以运行这个软件。抓图之后在软件所在的目录会出现output.txt文件,里面是抓图识别的结果。

    C# winform SplashScreen

    本篇文章将详细介绍如何使用C#实现WinForm的Splash Screen功能。 首先,我们需要了解WinForm的基本结构。WinForm是.NET Framework中用于创建桌面应用程序的一种技术,它提供了丰富的控件和事件处理机制,使得开发者...

    Linux Screen使用介绍

    在本文中,我们将详细介绍 Linux Screen 的使用方法和相关命令。 什么是 Screen? Screen 是一个免费的开源软件,可以在 Unix 类操作系统中使用。它允许用户在单个终端中打开多个窗口,并且可以在这些窗口之间快速...

    selection screen,dialog screen区别

    sap abap selection screen 与 dialog screen的区别

    Android12 SplashScreen使用案例代码下载

    Android12 SplashScreen使用举例代码下载,运行效果 与 相关API使用介绍请参考博文: Android12适配指南——SplashScreen: https://xiaxl.blog.csdn.net/article/details/123522277 Android 12(API 31)引入了 ...

    screen应用及及优缺点

    ### Screen应用及其优缺点 #### 一、Screen简介与应用场景 Screen是一款强大的GNU项目下的开源免费工具,主要用于...通过本文的介绍,希望能够帮助读者更好地理解和掌握Screen的使用方法,进一步提升自己的技术能力。

    Linux后台运行软件-screen-rpm-直接安装,方便部署维护,祖传级软件.zip

    标题中的"Linux后台运行软件-screen-rpm-直接安装",指的是利用RPM(Red Hat Package Manager)包管理器来安装`screen`,这是一种在CentOS等基于RPM的Linux发行版上快速部署和维护软件的方法。RPM包是一种预编译的...

    matlab开发-screencapture

    接下来,我们详细探讨一下`screencapture`函数的使用方法和常见参数: 1. **基本用法**: `screencapture`的基本调用形式是: ```matlab filename = screencapture(); ``` 这将默认捕获整个屏幕并保存为当前...

    C#闪屏SplashScreen

    在前端显示方面,可以使用ShowDialog方法显示闪屏,这样即使主程序在后台初始化,闪屏也会保持在最前面。 以下是一个简单的代码示例,展示如何在C#中创建和使用闪屏: ```csharp using System; using System....

Global site tag (gtag.js) - Google Analytics