远程多窗口和Screen用法

Termius      

远程链接服务器终端时,经常遇到需要开多个窗口,另外还可能涉及到正在运行的程序一旦和服务器链接断开,那么程序也就停止执行了。对于单单只需要多个窗口的问题,建议下载一个Termius这样软件,比多次打开终端并产生多个窗口去链接要方便的多。

     这仅仅也只是方便窗口的打开,如果想要断开链接程序继续执行,一般可以使用nohup的操作,如:

nohup python exe.py  >./log.out 2>&1 &

Screen

另外还可以使用screen,这个是直接安装在服务器端的一个软件。使用这个进行命令行操作,就相当于直接在服务端操作,而不是通过你本地的ssh窗口去链接服务器。因此这里执行的程序都相当于有nohup的功能。基本上他的作用如下:

  1. 多窗口操作:通过 Screen 命令,你可以在同一个终端窗口中创建多个窗口,并在这些窗口中同时运行不同的应用程序,而不需要打开多个终端窗口。
  2. 多任务操作:在一个窗口中使用 Screen 命令可以实现多任务操作,比如同时运行多个进程或命令等。
  3. 断线恢复:如果你在使用远程连接时突然断开连接,那么在 Screen 命令下运行的任务仍然可以继续执行,并且在重新连接后可以通过 Screen 命令重新打开之前的会话,恢复之前的工作状态。
  4. 后台运行:Screen 命令可以将一个命令或脚本放到后台运行,而不需要打开一个新的终端窗口或使用 nohup 命令。
  5. 共享会话:使用 Screen 命令可以与其他用户共享一个会话,这对于协同工作或者远程技术支持非常有用。

安装screen非常简单,Ubuntu软件库里有,可以通过apt直接安装:

sudo apt-get intstall screen

按照一下流程进行使用screen:

screen -ls

这个列举已经创建的screen窗口,因为目前还没有使用会打印如下信息:

No Sockets found in /run/screen/S-work.

创建

直接使用命令:screen即可创建一个screen窗口,然后也可以添加-S参数来为这个窗口命名:例如:

screen
#或者
screen -S pc-work

这样就进入创建的名字为pc-work的窗口下,其实这里和你平时看到的窗口没什么两样。在这里面输入命令即可,只是这里命令直接是服务器接受,而不是在通过ssh的一些软件在传给服务器。

这里再次使用screen -ls 打印出的信息就如下:

这里 878160.pc-work  (12/20/23 17:02:33)     (Attached)表示

进程号.screen窗口名字 时间 状态

Attached表示正在链接,无需在此进入。或者说有其他人在这个窗口下。你这边是无法进入的。因此想要进入就必须先关闭,后面会再次提到如何关闭,以及如何进入。不如,一般不会去找别人创建的窗口吧。

之前一直提到窗口,就得提到子窗口。在创建screen这个窗口时,会自动生成一个子窗口,也就是说只能在子窗口键入命令。有的文章可能把这个窗口叫做会话,每个会话下面有多个窗口。我们这里称为screen主窗口,然后有多个子窗口

增加

之前提到screen实现多窗口的作用按上就该显现。我在当前的子窗口下输入了命令,比如说一个执行程序很长的,不断输出log信息的。我们暂且不去打扰,需要开一个新的子窗口:

Ctrl+a+c

先Ctrl+a 然后再+c。接下来的很多命令都是基于Ctrl+a 然后在+一个字母实现。

新建一个子窗口后,当前执行的子窗口就会被覆盖,但是任务继续执行。你可以在当前的窗口下键入你其他的命令。

切换

可以不断的使用Ctrl+a+c这个命令创建子窗口。如果想看看之前窗口的状态可以通过:

切换下一个子窗口,他们之间是循环过程
Ctrl+a+n
切换到上一个窗口
Ctrl+a+p
切换到低num个窗口,n是数字
Ctrl+a+num

创建的多,就很容易乱,不知道当前有多少个子窗口:

显示所有子窗口,以及当前所在子窗口
Ctrl+a+w

在下方会显示:0-$ bash  1$ bash  2*$ bash  这样的信息,标识有三个子窗口,目前所在的是第三个2*$ bash。也就是说bash前有*号的那个。

关闭

关闭子窗口

Ctrl+d  或者exit

如果当前的screen主窗口只剩下最后一个子窗口,那么这个screen主窗口就会退出。退出的意思就是回到了普通命令终端。你使用screen -ls会发现这个screen主窗口的名字和线程号等就没有了。

暂离
Ctrl+a+d

暂离表示着还存在这个screen主窗口,你可以新开一个主窗口去做别的事情。平时我都是一个相似的任务会放在一个主窗口,然后这些相似的任务在一个主窗口下分别开不同的子窗口。

返回

创建了一个pc2-work的screen主窗口。然后screen -ls 发现有两个screens:

其中一个detached。需要说明的时,想要进入某个screen。他的状态必须是detached。

如果是attached的状态,可以使用

screen -d 进程号

使其状态变成detached。

记录日志

当前screen输出太多的信息,无法看全,可以将该信息输入到生成的文件中

screen -L -S 进程号

会在当前目录下生成一个叫做screenlog.0文件。里面记录着screen屏幕信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/259558.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

23 聪明的设计

仅用加法的实在是想不出来。。 #include <iostream> using namespace::std; using std::cout; using std::cin; int ljq(int n) {if(n < 1){return n;}else{return (nljq(n-1));} }int main() {int n;cin >> n;std::cout << ljq(n);return 0; }

Unity的UI界面——Text/Image

编辑UI界面时&#xff0c;要先切换到2d界面 &#xff08;3d项目的话&#xff09; 1.Text控件 Text控件的相关属性&#xff1a; Character:&#xff08;字符&#xff09; Font&#xff1a;字体 Font Style&#xff1a;字体样式 Font Size&#xff1a;字体大小 Line Spac…

锐捷配置完全stub区域

一、实验拓扑 二、实验目的 在运行OSPF协议的网络中&#xff0c;配置STU区域可以减少路由器的路由条目&#xff0c;减小路由器的压力&#xff0c;有效提高路由器的性能。 三、实验配置 第一步&#xff1a;全局配置OSPF R1 ruijie>enable R1#conf terminal R1(config)#hos…

基于Antd4 和React-hooks的项目开发

基于Antd4 和React-hooks的项目开发 https://github.com/dL-hx/react-cnode 项目依赖使用 react 16.13react-redux 7.xreact-router-dom 5.xredux 4.xantd 4axiosmoment 2.24 (日期格式化)qs 项目视图说明 首页主题详情用户列表用户详情关于 配置按需加载 https://3x.an…

SQL进阶理论篇(十四):CBO优化器是如何计算代价的?

文章目录 简介能调整的代价模型的参数有哪些&#xff1f;mysql.server_costmysql.engine_cost 如何修改这些代价参数&#xff1f;代价模型具体是如何计算的参考文献 简介 大部分RDBMS都支持基于代价的优化器CBO&#xff0c;但其实CBO仍然存在缺陷&#xff08;比如参数配置的不…

RUST与RUSTful简介

RUST与RUSTful 1、背景2、RUST的起源3、RUST与RUSTful4、总结 1、背景 随着互联网&#xff08;Internet&#xff09;的发展&#xff0c;越来越多的人开始意识到&#xff0c;网站即软件&#xff0c;而且是一种新型的软件。这种"互联网软件"采用客户端/服务器&#xff…

外汇天眼:Cboe宣布与纽约州Secaucus的NY6数据中心建立连接

NY6数据中心将集成到Cboe的延迟均衡Secaucus基础架构中&#xff0c;目前该基础架构使用NY4和NY5数据中心。 NY6将仅作为BYX Equities、BZX Equities、EDGA Equities、EDGX Equities、BZX Options、EDGX Options和C2 Options交易所的延迟均衡出入口&#xff08;PoP&#xff09;…

Ubuntu-20.04.2 mate 上安装、配置、测试 qtcreator

一、从repo中安装 Ubuntu-20.04.2的repo中&#xff0c;qtcreator安装包挺全乎的&#xff0c;敲完 sudo apt install qtcreator 看一下同时安装和新软件包将被安装列表&#xff0c;压缩包252MB&#xff0c;解压安装后933MB&#xff0c;集大成的一包。 sudo apt install qtcrea…

JDK各个版本特性讲解-JDK11特性

JDK各个版本特性讲解-JDK11特性 一、JAVA11 概述二、语法层次的变化1. 局部变量类型推断升级 三、API层次的提升1. String新增的方法2. Optional新增方法3.HTTPClient 四、其他变化1. 更简化的编译运行2.ZGC3.其他了解 一、JAVA11 概述 2018年9月26日,Oracle官方发布JAVA11.这是…

【开源软件】最好的开源软件-2023-第三名 Docker

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

算法基础之约数之和

约数之和 核心思想&#xff1a; #include<iostream>#include<algorithm>#include<vector>#include<unordered_map>using namespace std;typedef long long LL;const int N 110 , mod 1e97;int main(){int n;cin>>n;unordered_map<int,int&…

支持向量机 支持向量机概述

支持向量机概述 支持向量机 Support Vector MachineSVM ) 是一类按监督学习 ( supervisedlearning)方式对数据进行二元分类的广义线性分类器 (generalized linear classifier) &#xff0c;其决策边界是对学习样本求解的最大边距超亚面 (maximum-margin hyperplane)与逻辑回归和…

Mybatis-Plus讲义v1.0

Mybatis-Plus 课程目标 了解Mybatis-Plus 整合Mybatis-Plus 通用CRUD Mybatis-Plus的配置 条件构造器 Mybatis-Plus 的Service封装 代码生成器 1 Mybatis-Plus介绍 1.1 Mybatis-Plus介绍 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&…

关于B+树的总结

B树(B-tree) B树属于多叉树又名平衡多路查找树&#xff08;查找路径不只两个&#xff09;&#xff0c;数据库索引技术里大量使用着B树和B树的数据结构 规则&#xff1a; &#xff08;1&#xff09;排序方式&#xff1a;所有节点关键字是按递增次序排列&#xff0c;并遵循左小…

MybatisPlus报错:BindingException: Invalid bound statement (not found): 的解决办法

当我们遇到这个报错的时候&#xff0c;通常意味着mapper的绑定出现了问题 我们需要检查相关的配置文件是否正确 本人使用MyBatisPlus时遇到了这个问题&#xff0c; BindingException: Invalid bound statement (not found): 通过检查映射发现没有问题 再检查namescape发现…

网络基础介绍

1.网线制作 1.1 网线制作需要的工具 网线 网线钳 水晶头 测试仪 ​编辑 1.2 网线的标准 1.3 网线的做法 2.集线器&交换机&路由器的介绍 3.OSI七层模型 4.路由器的设置 4.1 常见的路由器设置地址 4.2 常见的路由器账号密码 4.3 登录路由器 设置访客网…

算法02哈希法

算法01之哈希法 1.哈希法理论基础1.1哈希表&#xff08;1&#xff09;哈希表&#xff08;2&#xff09;哈希函数&#xff08;3&#xff09;哈希碰撞 1.2哈希法基本思想1.3哈希法适用场景与最常用的哈希结构 2.LeetCode242&#xff1a;有效的字母异位词&#xff08;1&#xff09…

Linux:终端定时自动注销

这样防止了&#xff0c;当我们临时离开电脑这个空隙&#xff0c;被坏蛋给趁虚而入 定几十秒或者分钟&#xff0c;如果这个时间段没有输入东西那么就会自动退出 全局生效 这个系统中的所有用户生效 vim /etc/profile在末尾加入TMOUT10 TMOUT10 这个就是10 秒&#xff0c;按…

【QT】Model/View结构

目录 1 概述 2 Mode/View基本原理 3 数据模型 4 视图组件 5 代理 6 Model/View结构的一些概念 6.1 Model/View的基本结构 6.2 模型索引 6.3 行号和列号 6.4 父项 6.5 项的角色 1 概述 Model/View&#xff08;模型/视图&#xff09;结构是Qt中用界面组件显示与编辑数据的一种结构…

在scrapy 使用selenium模拟登录获取cookie

前言 最近有一点点爬虫需求&#xff0c;想总结一下scrapy框架的一些基本使用方法&#xff0c;加深印象&#xff0c;自己一直习惯使用一些脚本文件运行爬虫&#xff0c;面对数据量非常大&#xff0c;稳定性要求比较高的&#xff0c;效率需求比较高的情况下还是用scrapy较为合适…