screen


screen命令简介

Screen是一个全屏窗口管理器,它在多个进程(通常是交互式shell)之间多路传输物理终端。
每个虚拟终端提供DEC VT100终端的功能,以及ANSI X3的几个控制功能。
64(ISO 6429)和ISO 2022标准(例如,插入/删除行和支持多个字符集)。
每个虚拟终端都有一个回滚历史缓冲区和一个复制粘贴机制,允许用户在窗口之间移动文本区域。
当调用screen时,它会创建一个包含shell(或指定命令)的窗口,然后避开您的方式,以便您可以正常使用该程序。
然后,您可以随时创建包含其他程序(包括更多shell)的新(全屏)窗口、关闭当前窗口、查看活动窗口列表、打开和关闭输出日志、在窗口之间复制文本、查看滚动历史记录、在窗口之间切换,等等。
所有窗口都完全独立运行其程序。当窗口当前不可见时,甚至当整个屏幕会话与用户终端分离时,程序仍继续运行。

简而言之

远程服务器的时候,断网或者手误关掉了远程终端,会导致会话中断,程序终止。
而Screen连接的终端,会话独立运行,程序会一直进行。
而且会话可以恢复,还可以自行删除。

安装

sudo apt-get install screen

操作

  • id:为会话的id
  • session_name:为会话的名字

创建一个新的窗口(会话)

  • 创建 名为 test 新的会话,并进入新的会话窗口

    screen -S test
    

退出当前窗口(会话)

  • 可以使用ctrl+a, 然后输入d,退出当前窗口;
  • 也可以使用screen -d 退出当前窗口;

结束窗口

  • 结束当前窗口

    exit
    
  • 在一个窗口结束别的 screen 创建的窗口,id为会话的id

    screen -S id.session_name -X quit
    
  • 没有自己命名的,session_name为 screen -ls 出来的名字

    screen -S session_name -X quit
    

查看有多少会话

screen -ls

进入别的窗口(会话)

  • 重新连接会话前要求会话的状态为Detached。
screen -r id
screen -r session_name

清除dead状态窗口

  • 如果会话窗口被kill,状态转为dead无法连接,可以使用screen -wipe命令清除会话窗口。
screen -wipe

会话锁定与解锁

  • 虽然屏幕锁定的时候无反应但是会接受输入的命令,解锁后会全部执行,切勿输入危险命令。

  • 锁定当前会话:ctl+a s,锁定之后输入任何内容屏幕都无反应;

    • 输入ctl+a x锁定会话,需要输入用户密码后才可以解锁。
  • 解锁当前会话:输入ctl+a q之后解锁

Screen命令中用到的快捷键

  • Ctrl+a c :创建窗口
  • Ctrl+a w :窗口列表
  • Ctrl+a n :下一个窗口
  • Ctrl+a p :上一个窗口
  • Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
  • Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
  • exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
  • Ctrl+a d :退出当前终端,返回加载screen前的shell命令状态

参考


文章作者: Axieyun
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Axieyun !
评论
评论
  目录