终端命令神器-----Screen

GNU Screen简称Screen或screen,源自GNU计划,其官网:GNU Screen

初始版本早在1987年就发布,目前的最新稳定版本是:4.8.0(2020年2月5日)。所以,你现在使用的screen命令,其实三十年前就有人在使用了。

screen的功能

screen的功能大体有三个:

  • 会话恢复只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。
  • 多窗口:在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。
  • 会话共享:Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。

安装screen

因为screen是“元老级”的GNU计划项目,所以不管是apt软件源、或者是yum软件源等其他软件源,都存在screen,只需要使用软件源安装命令即可:

# CentOS
yum install screen
# Debian/Ubuntu
apt install screen

screen命令集

screen,通常的命令格式为:

screen [-opts] [cmd [args]]

通常情况下,使用一下基础命令即可,高阶命令过多,比较难记。

注意:

  • 命令区分大小写

下文介绍针对screen命令集,对应的: - 状态介绍 - 基础命令 - 高级命令

  • Attached:表示当前screen正在作为主终端使用,为活跃状态。
  • Detached:表示当前screen正在后台使用,为非激发状态。

基础命令

这里列举一些我认为常用的screen命令,使用以下命令基本满足日常使用。

 1. 帮助查询

screen的帮助文档实在是过于详细,以至于查个命令,可能要查几分钟;但是你可以直接使用帮助命令,查询自己需要的命令:

# 查询screen提示
screen -help

2. 终端列表

查看已经创建的终端

screen -ls

3. 新建终端

# 创建一个叫Hello的虚拟终端
screen -S Hello

而我一般是使用-R创建虚拟终端:

# 使用-R创建Hello
screen -R Hello
 4.返回到主终端

这个时候,我们按Ctril+a,再按d,即可保持这个screen到后台并回到主终端:

三种创建方法比较:

  • 使用-R创建,如果之前有创建唯一一个同名的screen,则直接进入之前创建的screen
  • 使用-S创建和直接输入screen创建的虚拟终端,不会检录之前创建的screen(也就是会创建同名的screen)

5. 回到终端

刚刚我们介绍了创建虚拟终端,并回到主终端的方法。那么,如何重新回到虚拟终端呢?

很简单,使用-R或者-r命令即可:

# 使用screen -r命令
screen -r [pid/name]

其中:

  • pid/name:为虚拟终端PID或Name

其中:32307PIDtoolName

回到这个虚拟终端的命令即为:

screen -r 32307
# 或(在没有重名虚拟终端情况下)
screen -r tool

 如果使用大些的-R,和-r类似,但是没有对应名称的PID或者Name时,会自动创建新的虚拟终端。

5. 清除终端

 有时候,我们的进程已经“守护”完毕,不需要这个虚拟终端了,也就是需要释放资源,如何操作呢?

比较推荐的方法,是进入对应虚拟终端,然后输入:

# 退出终端
exit

 当然,你如果对screen运行程序,确定已经停止运行了,也可以在主终端内,使用命令释放:

# 使用-R/-r/-S均可
screen -R [pid/Name] -X quit

高阶命令

screen也有一些高级命令。

绑定键 

在虚拟终端内,输入Ctril+a将等待接受预先设置的绑定键,这个时候可以输入对应的一些命令,来操作虚拟终端,如:

  • d:保存会话,后台运行改虚拟终端
  • k:关闭对话,等同输入:exit
  • c:新建一个虚拟终端
  • ?:显示所有绑定键盘

 终端命令神器--Screen命令详解。助力Unix/Linux使用和管理 - 知乎 (zhihu.com)

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 如果在使用分屏功能时无法输入命令,可能是由于以下原因之一导致的:1. 分屏窗口没有激活,你需要先激活分屏窗口才能输入命令。你可以使用Ctrl+a n来切换到下一个窗口,或者Ctrl+a 数字键来切换到指定的窗口。2. 分屏窗口处于只读模式,你需要先退出只读模式才能输入命令。你可以使用Ctrl+a :来进入命令模式,然后输入"readwrite"来退出只读模式。3. 分屏窗口没有正确的终端设置,你可以尝试使用Ctrl+a :来进入命令模式,然后输入"term xterm"来设置终端类型为xterm。如果以上方法都无法解决问题,可能是由于其他原因导致的,你可以尝试重新启动screen或者查看相关日志来获取更多信息。希望这些信息对你有帮助。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [Linux命令screen命令](https://blog.csdn.net/carefree2005/article/details/122415714)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Linuxscreen的使用](https://blog.csdn.net/weixin_43570155/article/details/121845415)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值