Liunx screen命令

Linux 2016-03-29

起步

搭建git服务器时需要一个进程一直运行着,关掉窗口或者断开链接,该任务就被kill了。发现screen命令真是太好用了。

介绍

这个命令可以在命令行终端自由切换,用户可连接多个命令行会话。可以实现会话恢复多窗口会话共享的功能。确保已经安装:sudo apt-get install screen或者yum install screen

使用

# screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

参数说明:

  • -A :将所有的视窗都调整为目前终端机的大小。
  • -d <作业名称>:将指定的screen作业离线。
  • -h <行数>:指定视窗的缓冲区行数。
  • -m:即使目前已在作业中的screen作业,仍强制建立新的screen作业。
  • -r <作业名称> :恢复离线的screen作业。
  • -R:先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
  • -s :指定建立新视窗时,所要执行的shell。
  • -S <作业名称> :指定screen作业的名称。
  • -v :显示版本信息。
  • -x :恢复之前离线的screen作业。
  • -ls--list :显示目前所有的screen作业。
  • -wipe :检查目前所有的screen作业,并删除已经无法使用的screen作业。

经常使用的命令

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

窗口操作

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

栗子

$ screen -S name # 创建一个新的窗口

$ screen -ls # 查看窗口列表

$ screen -r 12000 # 恢复某个会话

$ screen -x #会话共享,别人也可以操作这个窗口,你的操作会同步演示给你朋友,你朋友的操作也会同步演示给你

更多功能

内容请参考screen的man页。


本文由 hongweipeng 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

赏个馒头吧