• screen命令


    screen命令

    原文链接

    screen其实就是linux虚拟终端,你可以用它创建很多虚拟终端,每个终端可以创建1~10个窗口,每个窗口相当于一个linux shell窗口,可以执行的操作和正常shell完全一样。
        
    【终端操作】 (需要在物理shell中操作)
    screen:创建一个虚拟终端并且登录之
    screen -ls:列出当前所有虚拟终端
    screen [-d] -r sessionid:进入指定的虚拟终端


    【终端中的窗口操作】(挂载某个终端)
    Ctrl-a c         新建 bash screen 终端
    Ctrl-a "         列出
    Ctrl-a A         重命名
    Ctrl-a n         在当前窗口中切换到下一个 screen 终端
    Ctrl-a p         在当前窗口中切换到上一个 screen 终端    
    Ctrl-a 空格      窗口切换
    Ctrl+a w :窗口列表
    Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
    Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
    exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)

    Ctrl-a d         断开所有 screen 终端,返回 screen 执行前状态,但 screen 内所有终端的任务都在执行
    screen -ls     列出当前用户的所有 screen 实例,包括联接和断开的
    screen -R <pid>    重新联接到已断开的 screen 实例,如果有多个已断开的 screen 实例,则用 <pid> 区分

    Ctrl-a S         新建水平分割窗口
    Ctrl-a Tab     切换窗口
    Ctrl-a X         关闭当前窗口
    Ctrl-a +         扩大当前窗口,默认增加3行
    Ctrl-a -         缩小当前窗口,默认减小3行

    Ctrl-a :screen <command>    新建 screen 终端,并运行命令<command>
    Ctrl-a :resize <height>    改变当前窗口高度为<height>
    Ctrl-a :quit              退出 screen,将关闭所有 screen 终端,结束其中所有任务

    Ctrl-a <Esc>        进入选择模式
    <PageUp> 或 Ctrl-u      光标上移一页
    <PageDown> 或 Ctrl-d    光标下移一页    
    <Left>  或 h        光标左移一格
    <Down> 或 j         光标下移一行
    <Up> 或 k           光标上移一行
    <Right> 或 l        光标右移一格
    <Space>             选择开始,选择结束
    <Esc>               退出选择模式

    Ctrl-a ]             粘贴选择的内容



    【友情提醒】
     


    .screenrc,仅供参考。

    #
    # ~/.screenrc
    #

    # 启动时不显示欢迎屏幕
    startup_message off

    # 定义screen的功能键为Ctrl-Z。向终端输入Ctrl-Z时应按 Ctrl-Z z。
    escape ^Zz

    # 屏幕缓冲区 1024 行。
    defscrollback 1024

    # 在最下一行显示窗口列表和时钟
    hardstatus on
    hardstatus alwayslastline
    hardstatus string "%{.bW}%-w%{.rY}%n %t%{-}%+w %=%{..G} %H(%l) %{..Y} %Y/%m/%d %c:%s "

    # 关闭错误提示
    vbell off

    # 按 Ctrl-Z w 或 Ctrl-Z Ctrl-W 显示窗口列表
    bind w windowlist -b

    常用快捷键

    注:这些快捷键都需要在按完 escape 键之后使用。默认的escape键是 Ctrl-A,上面贴出的 .screenrc 中将其改成了 Ctrl-Z。例如 d,实际操作时应当按 Ctrl-Z d。

    快捷键 功能
    d 中断当前会话,下次可以用 screen -r 命令恢复
    c 开新窗口
    0-9数字 在窗口0-窗口9之间迅速切换
    n 下一个窗口
    p 上一个窗口
    S 分割屏幕
    TAB 在分割的屏幕之间切换
    X 关闭分割出的屏幕
    [ 进入复制模式,用hjkl移动光标,空格选中开始点,再次按空格选择结束点,进行复制
    ] 粘贴
    ? 帮助
    : 进入screen的命令行

    另外要提到的几个常用技巧

    1. 重复 escape 键可以在当前窗口与上一个窗口之间迅速切换。例如从窗口1按^Z3切换到窗口3,之后可以按^Z^Z在窗口1和3之间切换。
    2. 窗口分割的用法:首先按^ZS(S要大写)进行分割,然后用^Z<TAB>切换到分割出的新屏幕,再用^Z<数字>在新屏幕内切换窗口。结束分割可以用^ZX。
    3. 翻页:用了screen之后就不能用平常的 Shift-PageUp 和 Shift-PageDown 来翻页。可以按 ^Z[ 进入复制模式,即可利用与 vi 相同的快捷键来翻页查看历史。最后按Esc取消复制模式。

    关于 escape 键的选择

    默认的Ctrl-A与vi的增1功能冲突。如果你不幸习惯了Ctrl-A,那么当你在没有screen的环境下使用vim时,你会在不经意之间按下Ctrl-A而改变附近的数字。因此最好改成别的键。

    常用的screen快捷键都在左手,因此escape应当放在键盘的左面三列。Ctrl-Q和Ctrl-S被终端使用无法绑定,Ctrl-` screen不支持,Ctrl-W与vim的切换窗口命令冲突,Ctrl-D与vim的翻页冲突, Ctrl-X与vim的减1功能冲突,Ctrl-E与vim的滚屏冲突,Ctrl-C为很常用的中止程序。因此只能用Ctrl-Z了。Ctrl-Z用于暂 停程序,不常用,可以将其设置为screen的escape键。需要暂停程序时按 Ctrl-Z z 即可。

  • 相关阅读:
    bzoj 1503: [NOI 2004]郁闷的出纳员
    bzoj 1001: [BeiJing2006]狼抓兔子
    bzoj 1005: [HNOI2008]明明的烦恼
    bzoj 1004: [HNOI2008]Cards
    bzoj 1003: [ZJOI2006]物流运输trans
    06day1
    05day2
    04day2
    04day1
    03day2
  • 原文地址:https://www.cnblogs.com/edwardsun/p/3740920.html
Copyright © 2020-2023  润新知