首页 > 系统相关 >Linux | screen命令详解

Linux | screen命令详解

时间:2023-06-28 13:36:47浏览次数:43  
标签:界面 Ctrl screen 快捷键 详解 当前 Linux 窗口

在服务器上搭建一些服务的时候,经常要用到screen命令。这是因为一般情况下我们只会开一个连接服务器的控制台,但是某些服务(比如minecraft服务器)开启的时候需要占据一整个控制台,如果关闭了就会导致进程终止。这就成了类似单进程的效果。而screen命令就是为了能够在服务器上开启多个控制面板(screen),用以容纳不同的任务。

基本概念

默认窗口

所谓默认窗口就是我们没有用screen命令时的那个干干净净的窗口,不能使用等会介绍的screen命令下的任何快捷键。(这个不是废话)

screen界面

screen界面就是当我们进入screen空间下的,占用了一个进程pid的一个界面。这个界面有他自己的名字,有他自己内部交互的快捷键,能够拥有很多不同的子终端的界面。也可以理解成独立于默认窗口之外的窗口。注意,是每一个screen界面都能拥有很多的子窗口,而我们的电脑能同时拥有很多不同的screen界面。

子窗口

每一个子窗口都是附属与一个screen界面下的,他们互不影响,能够分别执行不同的命令,这是整个screen命令的精华所在。工作时,我们需要做的就是选定某一个screen,并且选定一个子窗口。这样如果我们需要换一个界面的话,我们就只需要更换另一个子窗口就行了。

新建一个screen

# 创建窗口test
screen -S test

可以直接输入screen 来打开一个带有默认名字的screen界面,也可以加上 -S 参数来亲自制定一个好听的名字。然后系统就会切进当前的screen了。

查看当期存在的screen

# 列出所有
screen -ls
3085423-20230628131345673-951369937

最后的那个状态有(Attached) 和(Detached) ,表示是否已经连接进来。当你断开主界面然后重新登录的时候,所有的screen都是显示Detached的。而如果你想进入某一个screen,你首先得把他的状态变成Attached才行。

选择进入screen

screen -r <screen的pid>
3085423-20230628131420952-269862284

如果他的状态是Detached的,我们需要输入screen -r <screen的pid> ,来进入这个screen 。

如果他的状态是Attached的,我们就要输入 screen -d <screen的pid> ,来使他”Dettached”,然后再输入screen -r <screen的pid>,来进入这个screen。(必须先detached,否则是进不去的)。

进入这个进程以后,输入screen -ls:

3085423-20230628131438356-1987030159

断开当前窗口

想要关闭一个screen 就要先选择并且进入这个screen。

# 断开当前窗口(继续运行)
键入 ctrl + a + d
键入 ctrl + d
3085423-20230628131453275-1948016001

发现没有这个创建的进程了,删除了。

# 退出当前窗口
exit
3085423-20230628131506742-1505493899

发现没有这个创建的进程了,也删除了。

这两个命令都一样。

# 直接关闭软件,这个进程还在,也一直在运行

想要查看的时候,再打开这个进程即可。

进入了你想要关闭的screen之后,就可以直接输入exit,或者Ctrl+d,来终止这个界面了。成功终止后,如果有其他处于Attached状态的screen界面,他就会跳到那个界面中,如果没有,他就会跳到默认界面上。

对于正在启动的后台进程修改名字

# 对于正在启动的后台进程修改名字
screen -S [原始任务名] -X sessionname [修改后的任务名]
3085423-20230628131522874-2116316705

清除损坏的screen

如果由于某些情况导致一个screen的状态处于Dead(很可能是程序出错或者强行删除进程锁之类的。。),我们无法attached进去,那么我们只需要输入screen --wipe ,就可以删除这些进程了。

再次 screen -ls 查看就没有了。

面向子窗口切换的快捷键:

在一个screen下,我们可以方便的创建多个子窗口,这些窗口之间转换的操作都是通过Ctrl+a再加参数的组合快捷键实现的。

1、新建子窗口:

可以通过Ctrl+a+c 组合快捷键在当前的screen下创建一个新的子窗口,并跳转到上面去。

2、查询当前的子界面状态:

可以通过Ctrl+a+w组合快捷键,在屏幕的左下角就会出现类似:0-$ bash 1*$ bash之类的样式。这个表示当前screen下有两个子窗口,当前在的是1号子窗口。当然,这个子窗口的数目可以有很多。

3、切换子窗口:

方法很多,可以通过Ctrl+a+a组合快捷键在最近的两个窗口中切换,也可以用Ctrl+a+n 切换到下一个窗口,或是Ctrl+a+p 切换到上一个窗口,或是Ctrl+a+num 切换到第num个窗口。。。

4、锁定当前窗口:

可以用Ctrl+a+x 来锁住当前的界面,此时所有的快捷键都无法使用,直到输入了密码。。

5、关闭当前窗口:

这个可以直接用Ctrl+d 或者exit 来关闭,当这个窗口是现有screen的最后一个窗口时,就会触发上面讲的关闭当前screen的事件了。

6、暂离当前screen:

这个也是screen命令的精髓,用组合键Ctrl+a+d 就能detached当前的screen,回到默认界面。

大概就是这些操作,其实还挺绕人的,有个小注意点,就是我们可以通过Ctrl+a+w 命令来测试下当前窗口是不是处于screen状态下,如果不是的话,贸然使用Ctrl+a+d 可是会直接退出登陆的额。。

标签:界面,Ctrl,screen,快捷键,详解,当前,Linux,窗口
From: https://www.cnblogs.com/zhangxuegold/p/17511153.html

相关文章

  • windows配置时间服务器 linux配置从windows同步时间
    背景两台服务器,其中windows能够联网,linux不能联网windows为windowsserver2016linux为centos7配置windows时间服务配置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config,找到Config目录,双击Config目录下的AnnounceFlags,将值调整为5配置HKEY_LOCAL_MACH......
  • 软测笔记4-【Linux系统】
    一、Linux系统介绍1.操作系统定义:管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石2.常见操作系统a.桌面操作系统Windows系列LinuxMacOSb.嵌入式操作系统Linuxc.服务器操作系统LinuxUnixWindowsServerd.移动设备操作系统Android(Linux)IOS(Linux)......
  • LLaMA模型微调版本:斯坦福 Alpaca 详解
    项目代码:https://github.com/tatsu-lab/stanford_alpaca博客介绍:https://crfm.stanford.edu/2023/03/13/alpaca.htmlAlpaca总览Alpaca是LLaMA-7B的微调版本,使用Self-instruct[2]方式借用text-davinct-003构建了52K的数据,同时在其构建策略上做了一些修改。性能上作者对Alp......
  • Maven私服搭建--Nexus Linux环境
    1、下载nexus官网(需要登录才能下载)https://www.sonatype.com/products/sonatype-nexus-oss-downloadnexus的文档 可以直接下载 https://help.sonatype.com/repomanager3/product-information/downloadLinux环境下载第一个即可2、上传压缩包并解压tarxfnexus-3.56......
  • linux D-bus安装与测试demo
    因为linux下通过bluez进行ble开发需要运用到D-bus,但此前对此一窍不通,现开始学习D-bus相关知识。首先便从安装开始在此过程中参考如下两篇博客博客1:这里 博客2:这里首先是进行D-bus各种安装,挨个执行如下指令sudoapt-getinstalldbussudoapt-getinstalld-feetsudoap......
  • Linux系统怎么添加一个桌面快捷方式链接到网站
    Linux系统需要添加一个桌面快捷方式链接到网站可以编辑在桌面编辑文档注意:文件需要以desktop为后缀index.desktop内容如下[DesktopEntry]Encoding=UTF-8Name=OutLookType=ApplicationIcon=/home/administrator/桌面/logo.pngCategories=office;Exec=/usr/bin/qaxbro......
  • Linux多节点部署KubeSphere 以及其中的坑
    准备三台纯净的linux机器,并且设置主机名分别为k8smaster/k8snode11/k8snode12(下面操作,除说明外,只在主节点执行)1、下载KubeKeyexportKKZONE=cncurl-sfLhttps://get-kk.kubesphere.io|VERSION=v1.1.1sh-chmod+xkk2、创建集群配置文件./kkcreateconfig--wit......
  • linux 安装java环境
    第一步:下载jdkhttps://www.oracle.com/java/technologies/downloads/#java8需要登录才能下载第二步:创建jdk安装文件夹#在/usr/local下创建java文件夹cd/usr/localmkdirjava#进入java文件夹目录下cdjava第三步:上传下载好的J......
  • Linux 使用yum安装telnet-server、telnet、xinetd以及telnet本机ip
    一、查看telnet-server、telnet是否安装rpm-qatelnet-serverrpm-qatelnet没有输出telnet的版本,什么都没有输出,表示未安装二、安装telnet服务yumlist|greptelnetyuminstall-ytelnet-server.x86_64yuminstall-ytelnet.x86_64三、检查xinetd是否开启servi......
  • Linux离线安装Docker
    Docker离线安装包下载:https://download.docker.com/linux/static/stable/x86_64/解压docker软件压缩包:tar-zxvfdocker-20.10.9.tgz把docker文件里面的内容复制到bin目录下:cpdocker/*/usr/bin 在/etc/systemd/system或者/usr/lib/systemd/system目录下创建3个服务......