前言
前几天将项目部署到服务器时,遇到这么个需求:需要在屏幕上显示项目运行情况,同时要实时查看内存等资源的使用情况,还要查看实时的网络情况。
在此之前,上述程序都是在后台运行,当需要查看时才会调出来查看,一来一去怪麻烦的,后面找了一款工具,完美解决这个问题---------screen
。
screen的作用
screen
最简单直接的作用就是可以像Windows一样同时打开并监视多个终端窗口,同时方便管理各个窗口。
使用screen
前:
使用screen
后:
如何使用screen
- 通常,
screen
已经预装在大多数Linux发行版中。以下是CentOS 系统中源码安装操作命令(当然也可以使用别的方式下载):
bash
wget https://ftp.gnu.org/gnu/screen/screen-4.8.0.tar.gz
mkdir build && cd build
../configure
make
make install
screen
的创建和查看
arduino
screen //创建一个screen
screen -S yourname //创建一个名称为yourname的screen
screen -ls //查看所有screen
screen -x //进入一个最近打开的状态为attached的screen(关于状态下文会有相关解析)
screen -x yourname //进入名称为yourname,状态为attached的screen
screen -r //进入一个最近打开的状态为detached的screen
screen -r yourname //进入名称为yourname,状态为detached的screen
screen -d //将最近一个状态为attached的screen状态更改为detached
screen -d yourname //将名称为yourname,状态为detached的screen状态更改为detached
screen
的状态
Attached
:前台运行,通俗来说就是可以在屏幕上看到
Detached
:后台运行,可以理解为Windows里的最小化,程序并没有停止运行
- 进入
screen
后的常用命令
刚进入screen
中会进入命令模式,命令模式中的命令都是以Ctrl + a
(同时按下)开头,以下简记为C-a
css
C-a ? //显示所有键绑定信息
C-a c //创建一个新的运行shell的虚拟终端窗口并切换到该虚拟终端窗口
C-a n //切换到下一个虚拟终端窗口
C-a p //切换到前一个虚拟终端窗口(与C-a n相对)
C-a C-a //切换到之前显示的虚拟终端窗口
C-a 0..9 //切换到虚拟终端窗口(0..9)
C-a w //显示所有虚拟终端窗口列表
C-a S //水平分屏
C-a | //垂直分屏
C-a tab //切换分屏
C-a k //杀掉当前虚拟终端窗口
C-a a //发送 C-a到当前虚拟终端窗口
C-a [ //进入拷贝/回滚模式
screen
的退出和关闭
c
C-a d //暂时断开screen会话(会将该screen状态变成detached)
exit //直接关闭该screen会话
使用中曾遇到的问题
- 没有注意到
screen
会话的状态问题,用了错误的命令进入screen
会话 Ctrl + a
需要同时按下,分开按没有效果
结语
若是觉得以上这些常用命令仍不能解决问题,可以到官网查看相关文档:https://www.gnu.org/software/screen/manual/
以上便是我在使用中总结出来的一点经验,大家若有其他想法和疑问可以发到评论区,若是对你有帮助,麻烦点个赞吧!