zoukankan      html  css  js  c++  java
  • gnu screen的用法

    在使用ssh或者telnet登录远程主机后执行一些耗时的命令, 如果此时ssh或者telnet中断, 那么远程主机上正在执行的程序或者说命令也会被迫终止.

    screen能够很好地解决这个问题, screen也叫虚拟终端, 可以在一个物理终端上实现多个虚拟终端的效果.

    创建screen会话

    # 新建一个screen
    screen
    # 新建一个screen并指定名称
    screen -S XXX

    以上命令, screen将创建一个执行shell的全屏窗口。你可以执行任意shell程序,就像在ssh窗口中那样。在该窗口中键入exit退出该窗口,如果这是该screen会话的唯一窗口,该screen会话退出,否则screen自动切退到前一个窗口。

    # screen命令后跟你要执行的程序。
    screen vi test.c

    screen创建一个执行vi test.c的单窗口会话,退出vi将退出该窗口/会话

    以上两种方式都创建新的screen会话。

    在一个已有screen会话中创建新的窗口。在当前screen窗口中键入Ctrl + A, C,即Ctrl键+a键,之后再按下c键,screen 在该会话内生成一个新的窗口并切换到该窗口

    断开(detach)screen会话,并重连(attach)会话

    #打开一个screen窗口编辑/tmp/abc文件:
    screen vi /tmp/abc

    之后暂时退出做点别的事情,在screen窗口键入Ctrl + A, D,Screen会给出detached提示, 这时候可以在命令行执行其他命令

    # 半个小时之后回来了,找到该screen会话:
    screen -ls
    There is a screen on:
            16582.pts-1.tivf06      (Detached)
    1 Socket in /tmp/screens/S-root.
    # 重新连接会话
    screen -r 16582

    这时候会显示出原来screen会话中的信息.

    如果原screen还是Attached的状态, 需要用 -x 参数

    # 重新连接一个还在Attached状态的screen session
    screen -x 16582

    screen的组合键操作列表

    Ctrl-a ?    显示所有键绑定信息
    Ctrl-a w    显示所有窗口列表
    Ctrl-a C-a    切换到之前显示的窗口
    Ctrl-a c    创建一个新的运行shell的窗口并切换到该窗口
    Ctrl-a n    切换到下一个窗口
    Ctrl-a p    切换到前一个窗口(与C-a n相对)
    Ctrl-a 0..9    切换到窗口0..9
    Ctrl-a a    发送 C-a到当前窗口
    Ctrl-a d    暂时断开screen会话
    Ctrl-a k    杀掉当前窗口
    Ctrl-a [    进入拷贝/回滚模式

    screen命令的参数

    Options:
    -4            Use IPv4.
    -6            Use IPv6.
    -a            Force all capabilities into each window's termcap.
    -A -[r|R]     Adapt all windows to the new display width & height.
    -c file       Read configuration file instead of '.screenrc'.
    -d (-r)       Detach the elsewhere running screen (and reattach here).
    -dmS name     Start as daemon: Screen session in detached mode.
    -D (-r)       Detach and logout remote (and reattach here).
    -D -RR        Do whatever is needed to get a screen session.
    -e xy         Change command characters.
    -f            Flow control on, -fn = off, -fa = auto.
    -h lines      Set the size of the scrollback history buffer.
    -i            Interrupt output sooner when flow control is on.
    -l            Login mode on (update /var/run/utmp), -ln = off.
    -list         or -ls. Do nothing, just list our SockDir.
    -L            Turn on output logging.
    -m            ignore $STY variable, do create a new screen session.
    -O            Choose optimal output rather than exact vt100 emulation.
    -p window     Preselect the named window if it exists.
    -q            Quiet startup. Exits with non-zero return code if unsuccessful.
    -r            Reattach to a detached screen process.
    -R            Reattach if possible, otherwise start a new session.
    -s shell      Shell to execute rather than $SHELL.
    -S sockname   Name this session <pid>.sockname instead of <pid>.<tty>.<host>.
    -t title      Set title. (window's name).
    -T term       Use term as $TERM for windows, rather than "screen".
    -U            Tell screen to use UTF-8 encoding.
    -v            Print "Screen version 4.00.03 (FAU) 23-Oct-06".
    -wipe         Do nothing, just clean up SockDir.
    -x            Attach to a not detached screen. (Multi display mode).
    -X            Execute <cmd> as a screen command in the specified session.

    查看screen line buffer参数: Ctrl+A, i 

    设置screen line buffer: Ctrl+A, : , 然后输入 scrollback 1000 , 回车

    查看buffer内容: Ctrl+A, Esc, 然后就可以用滚轮, 上下箭头等操作屏幕上下移动了, 翻页则使用Ctrl+F, Ctrl+B, 再次按Esc则退出

  • 相关阅读:
    【AtCoder】ARC097 (C
    【51nod】1123 X^A Mod B (任意模数的K次剩余)
    【洛谷】P4207 [NOI2005]月下柠檬树
    【POJ】2454.Jersey Politics
    【POJ】2069.Super Star
    【POJ】2420.A Star not a Tree?(模拟退火)
    【POJ】1026.Cipher
    【POJ】3270.Cow Sorting
    【POJ】1286.Necklace of Beads
    【POJ】1067.取石子游戏
  • 原文地址:https://www.cnblogs.com/milton/p/7852699.html
Copyright © 2011-2022 走看看