首页 > 代码库 > screen命令

screen命令

远程连接linux的时候通常会遇到下面的问题:

  1. 频繁在2个工作目录切换,只能开两个远程连接的窗口
  2. 想运行一个长期在后台执行的程序,只能用nohup命令

用screen命令可以同时解决上面两个问题。

想象一下,如果你用的是windows系统,你的电脑同时连接了多个显示器,每个显示器上可以打开多个窗口,每个窗口对应一个应用程序。

在screen命令里,screen就相当于一个显示器,window就相当于一个窗口,每个window默认打开就是一个bash命令行,你可以在里面运行一个程序:

技术分享

概念弄清了,下面说一下怎么用:

screen -S name       //创建一个叫做name的screen

screen -ls  //列出所有的screen

screen -r name  //切换到叫做name的screen

screen -d name  //远程detach某个screen

 

在screen下操作的时候,所有命令以ctrl+a(C-a)开始

C-a c -> Create,开启新的 window

C-a w -> Windows,列出已开启的 windows 有那些 
C-a n -> Next,切换到下个 window 
C-a p -> Previous,前一个 window 
C-a 0..9 -> 切换到第 0..9 个window
Ctrl+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 t -> Time,显示当前时间,和系统的 load 
C-a K -> kill window,强行关闭当前的 window

 

screen命令