zoukankan      html  css  js  c++  java
  • Linux screen 命令

      工程师经常需要ssh或者telnet远程登录到Linux服务器,运行一些需要很长时间才能完成的任务,比如系统备份、ftp传输文件等等,通常我们都是为每一个这样的任务开一个远程终端窗口,等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,结果半途而废。

      GNU Screen是一款由GNU开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。通常Linux机器都会预装screen命令。

    • 会话恢复:只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。
    • 多窗口:在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。
    • 会话共享:Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。

      GNU's Screen 官方站点:http://www.gnu.org/software/screen/

    screen常用参数

    screen -S pkufork --------------> 新建一个叫pkufork的session
    screen -ls --------------> 列出当前所有的session
    screen -r pkufork --------------> 回到pkufork这个session
    screen -d pkufork --------------> 远程detach某个session
    screen -d -r pkufork --------------> 结束当前session并回到pkufork这个session

    在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。
    C-a ? --------------> 显示所有键绑定信息
    C-a c --------------> 创建一个新的运行shell的窗口并切换到该窗口

    C-a A --------------> 为当前窗口重命名
    C-a n --------------> Next,切换到下一个 window 
    C-a p --------------> Previous,切换到前一个 window 
    C-a 0..9 --------------> 切换到第 0..9 个 window
    C-a [Space] --------------> 由视窗0循序切换到视窗9
    C-a C-a --------------> 在两个最近使用的 window 间切换 
    C-a x --------------> 锁住当前的 window,需用用户密码解锁
    C-a d --------------> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 
    C-a z --------------> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。
    C-a w --------------> 显示所有窗口列表
    C-a t --------------> Time,显示当前时间,和系统的 load 
    C-a k --------------> kill window,强行关闭当前的 window

    C-a S --------------> 将显示器水平分割

    C-a X --------------> 关闭当前焦点所在的屏幕区块

    C-a Q --------------> 关闭除当前区块之外其他的所有区块
    C-a [ --------------> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样
        C-b Backward,PageUp 
        C-f Forward,PageDown 
        H(大写) High,将光标移至左上角 
        L Low,将光标移至左下角 
        0 移到行首 
        $ 行末 
        w forward one word,以字为单位往前移 
        b backward one word,以字为单位往后移 
        Space 第一次按为标记区起点,第二次按为终点 
        Esc 结束 copy mode 
    C-a ] --------------> Paste,把刚刚在 copy mode 选定的内容贴上

  • 相关阅读:
    ActiveMQ 即时通讯服务 浅析
    Asp.net Mvc (Filter及其执行顺序)
    ActiveMQ基本介绍
    ActiveMQ持久化消息的三种方式
    Windows Azure Virtual Machine (27) 使用psping工具,测试Azure VM网络连通性
    Azure China (10) 使用Azure China SAS Token
    Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置
    Windows Azure Storage (22) Azure Storage如何支持多级目录
    Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM
    Azure Redis Cache (2) 创建和使用Azure Redis Cache
  • 原文地址:https://www.cnblogs.com/pkufork/p/linux_screen.html
Copyright © 2011-2022 走看看