本文要介绍如何使用 Screen 命令来操作 Linux 命令行,让工作更有效率。

我想,很多同学在使用 Linux 命令行都会有以下这些的需求或者是困惑:

  • 如何让一个程序后台运行?
  • 程序后台运行,但是我还想偶尔来看一下程序运行的进度,该怎么弄呢?
  • 这个要运行的程序并不是我自己写的,我无法通过修改代码来实现后台运行,并把进度输出到日志文件,该怎么办呢?
  • 要是有一款能够像图形化可以让程序运行在 Terminal 终端中,我想看的时候解锁一下屏幕就好了。

以上这些困惑也是笔者经常遇到的一个问题,今天就来跟大家介绍一下一个 Linux 命令行下非常好用的一个工具 —— screen.

0x00 简介

Screen 是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen 可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。

0x01 常见用法

笔者最常用的用法就是:创建一个screen会话,并在会话中执行程序,通过Ctrl+A D将会话挂在后台运行,需要查看程序运行进度时候通过 screen -r {session_name} 命令恢复会话进行查看即可。

下面我们就来讲讲这个过程中我们所用到的命令:

  • screen -S {session_name} 创建一个 screen 会话,需要指定会话名称。比如:screen -S c9
  • screen -r {session_name} 恢复后台运行的 screen 会话。
  • screen -list 或者 screen -ls 列出当前所有的会话列表。

注:在 screen 会话中,通过 Ctrl+A D 快捷键可以将会话分离至后台运行。

以上者三个命令我相信已经够大部分同学使用了。

0x02 更多用法

完整的官方文档在此:https://www.gnu.org/software/screen/manual/