首页 > 系统相关 >Linux screen命令的用法

Linux screen命令的用法

时间:2024-03-01 17:23:07浏览次数:194  
标签:命令 窗口 Ctrl screen 用法 会话 终端 Linux

当谈到在Linux终端中管理会话时,screen是一个非常有用的工具。它允许你在单个终端会话中创建多个虚拟终端,从而可以同时运行多个任务,即使在断开与服务器的连接后也可以保持这些会话。下面是关于screen命令的详细介绍:

1. 安装和启动screen 通常,screen已经预装在大多数Linux发行版中。如果未安装,你可以使用适用于你的包管理器的命令进行安装。例如,在Debian或Ubuntu上,你可以使用以下命令安装:

sudo apt-get install screen

启动screen很简单,只需在终端中输入screen并按Enter键即可启动一个新的会话。

在 CentOS 系统中源码安装操作命令如下:

wget https://ftp.gnu.org/gnu/screen/screen-4.8.0.tar.gz
mkdir build && cd build
../configure
make
make install

2. 基本screen用法: 在启动screen后,你将进入一个新的终端会话。在这个会话中,你可以执行所有常规的终端命令。以下是一些常用的screen命令:

  • 分离会话:你可以使用快捷键Ctrl + A,然后按d键,来分离当前的screen会话,这样你可以暂时离开终端而不中断正在运行的任务。

  • 查看会话列表:使用以下命令可以列出所有正在运行的screen会话:

screen -ls

screen --list
  • 重新连接会话:当你重新连接服务器时,可以使用以下命令重新连接到之前分离的screen会话:

screen -r <会话ID>

其中<会话ID>是之前分离会话的ID,你可以从screen -ls命令中获取。

  • 新建窗口:在screen会话中,你可以通过按Ctrl + A,然后按c键来创建一个新的虚拟终端窗口。

  • 切换窗口:使用Ctrl + A,然后按n(下一个窗口)或p(上一个窗口)来在多个窗口间切换。

  • 关闭窗口:在窗口内执行exit命令来关闭窗口。

3. 高级screen用法: 除了基本用法之外,screen还提供了一些更高级的功能:

  • 多窗口滚动:按Ctrl + A,然后按Esc键,即可进入复制模式,然后你可以使用方向键或Vi编辑器风格的快捷键来滚动查看终端输出。

  • 窗口命名:你可以为每个screen窗口设置自定义名称,这样更容易识别它们。在窗口内,使用Ctrl + A,然后按A键来为当前窗口重命名。

  • 配置screenscreen可以通过一个配置文件(~/.screenrc)进行自定义设置,包括定义快捷键、默认窗口、状态栏等等。

4. 退出screen会话: 要完全退出screen会话并关闭所有窗口,可以执行以下命令:

exit

如果只想关闭当前窗口,可以使用Ctrl + D键。

5. 暂时禁用会话: 有时,你可能想临时暂停screen会话,而不是完全分离它。你可以按Ctrl + A,然后按z键来暂时禁用screen会话。要恢复会话,可以使用fg命令。

6. 多用户共享会话: screen支持多用户共享会话的功能。这在团队协作或技术支持方面非常有用。一个用户可以启动一个screen会话,并允许其他用户加入和参与该会话。其他用户可以使用以下命令加入一个已经运行的会话:

screen -x <会话ID>

7. 设置状态栏: screen允许你在状态栏中显示有用的信息,如当前时间、主机名、窗口列表等等。你可以编辑~/.screenrc配置文件来自定义状态栏。例如,要在状态栏中显示窗口号和标题,你可以添加以下行:

hardstatus alwayslastline
hardstatus string '%{= kw}[ %{= kb}%H%{= kw} ][ %{= kw}%?%-Lw%?%{= kW}%n*%f %t%?%?%{= kw}%?%+Lw%?%?%= %{= kw} ][ %{= kc}%Y-%m-%d %c %{= kw}]'

8. screen命令参数: screen命令还支持一些有用的参数,可以根据需求使用:

  • -S <会话名称>:指定会话名称,用于标识和重连。

  • -dmS <会话名称>:以后台模式启动一个新会话,无需立即连接。

  • -r <会话名称>:重连到指定名称的会话。

9. screen快捷键列表: 以下是一些常用的screen快捷键列表,它们可以在screen会话中使用:

  • Ctrl + A, c:创建新窗口

  • Ctrl + A, n:切换到下一个窗口

  • Ctrl + A, p:切换到上一个窗口

  • Ctrl + A, A:为当前窗口重命名

  • Ctrl + A, d:分离会话

  • Ctrl + A, k:关闭当前窗口

  • Ctrl + A, [Enter]:进入复制/滚动模式

  • Ctrl + A, Esc:进入复制/滚动模式(Vi编辑器风格)

  • Ctrl + A, z:暂时禁用会话

  • Ctrl + A, S:水平拆分当前窗口

  • Ctrl + A, |:垂直

拆分当前窗口

  • Ctrl + A, Tab:在拆分窗口之间切换

screen是一种非常强大且灵活的工具,特别适合在终端中进行长时间的任务和多任务管理。

补充:

  • Screen 命令的常见用途:

  1. 多窗口操作:通过 Screen 命令,你可以在同一个终端窗口中创建多个窗口,并在这些窗口中同时运行不同的应用程序,而不需要打开多个终端窗口。

  2. 多任务操作:在一个窗口中使用 Screen 命令可以实现多任务操作,比如同时运行多个进程或命令等。

  3. 断线恢复:如果你在使用远程连接时突然断开连接,那么在 Screen 命令下运行的任务仍然可以继续执行,并且在重新连接后可以通过 Screen 命令重新打开之前的会话,恢复之前的工作状态。

  4. 后台运行:Screen 命令可以将一个命令或脚本放到后台运行,而不需要打开一个新的终端窗口或使用 nohup 命令。

  5. 共享会话:使用 Screen 命令可以与其他用户共享一个会话,这对于协同工作或者远程技术支持非常有用。

  • screen 创建的虚拟终端,有2种工作状态:

     

    • Attached:表示当前screen正在作为主终端使用,为活跃状态。

    • Detached:表示当前screen正在后台使用,为非激发状态。

  • screen 命令格式与常见参数:

    screen [OPTIONS] [ CMD [ ARGS ] ]
    screen -r [[PID.]TTY[.HOST]]
    screen -r SESSIONOWNER/[[PID.]TTY[.HOST]]

    -A
    将所有窗口都调整为目前终端机的大小
    -d, -D [PID.TTY.HOST]
    分离指定的 screen 会话
    -h NUM
    将历史记录回滚缓冲区指定为 NUM 行
    -m
    即使目前处于 screen 会话,仍强制建立新的 screen 会话
    -r [PID.TTY.HOST]
    -r SESSIONOWNER/[PID.TTY.HOST]
    恢复离线的 screen 会话
    -R
    先试图恢复离线的会话,若找不到离线的会话,再建立新的 screen 会话
    -s PROGRAM
    指定建立新窗口时所要执行的 Shell,用以取代环境变量 SHELL 表示的 Shell
    -S SESSIONNAME
    创建一个指定名称的新 session
    -v
    显示版本信息
    -x
    恢复之前离线的 screen 会话
    -ls, --list
    显示目前所有的 screen 会话
    -wipe [MATCH]
    检查目前所有的 screen 会话,并删除已经无法使用的 screen 会话

标签:命令,窗口,Ctrl,screen,用法,会话,终端,Linux
From: https://www.cnblogs.com/websec80/p/18047543

相关文章

  • 2024-03-01-Linux高级网络编程(6-原始套接字)
    6.原始套接字6.1TCPUDP回顾数据报式套接字(SOCK_DGRAM)无连接的socket,针对无连接的UDP服务可通过邮件模型来进行对比流式套接字(SOCK_STREAM)面向连接的socket,针对面向连接的TCP服务可通过电话模型来进行对比这两类套接字似乎涵盖了TCP/IP应用的全部TCP......
  • linux 中 grep命令检测出$符号
     001、[root@pc1test2]#lsa.txt[root@pc1test2]#cata.txt##测试数据xxyy$kkffee88uueeww$[root@pc1test2]#grep"$"a.txt##grep直接检测,检测不到xxyy$kkffee88uueeww$[root@pc1test2]#grep"\$"a.txt......
  • VMware 虚拟机中 Linux 系统Centos7磁盘空间扩容(亲测)
    1.修改虚拟机磁盘容量​ 例如之前虚拟机磁盘空间为20G,现要将磁盘容量设置为30G​ 打开虚拟机(必须处于关机状态),点击【编辑虚拟机设置】,然后点击【磁盘】,接着点击【扩展】,输入修改后的最大磁盘容量30G,具体操作时最大容量根据自己的需求设置即可。​ 输入完成最大磁盘容量后,点击扩......
  • Linux下system()与execl()的区别,popen()
    System与exec的区别1、system()和exec()都可以执行进程外的命令,system是在原进程上开辟了一个新的进程,但是exec是用新进程(命令)覆盖了原有的进程2、system()和exec()都有能产生返回值,system的返回值并不影响原有进程,但是exec的返回值影响了原进程 popen()system()函数用起......
  • Linux查看服务器内存
    参考:https://blog.csdn.net/while_int/article/details/130844627freefree命令用来显示系统内存状态,包括系统物理内存、虚拟内存(swap交换分区)、共享内存和系统缓存的使用情况#-m选项是以MB为单位来展示内存使用信息free-m#-h选项则是以人类(human)可读的单位来展示free......
  • 2024-02-29-Linux高级网络编程(4-TCP编程)
    4.TCP编程4.1TCP介绍面向连接的流式协议;可靠、出错重传、且每收到一个数据都要给出相应的确认通信之前需要建立链接服务器被动链接,客户端是主动链接TCP编程流程服务器:1.创建套接字socket()2.将套接字与服务器网络信息结构体绑定bind()3.将套接字设置为监听状......
  • Linux openEuler 安装 MySQL
    更新记录点击查看2024年3月1日更新常见问题。2024年2月29日发布。安装需要使用到的命令和包如果有就不用安装了。yum-yinstalltaryum-yinstallvimyum-yinstallnet-toolsyum-yinstalllibncurses*下载MySQL的安装包官网地址:https://downloads.mysql.......
  • NOI Linux 2.0 使用笔记
    \[\Huge\text{NOILinux2.0使用笔记}\](未完成)下面用xxx、yyy等表示文件名或文件夹名(不含.cpp后缀)。命令基础命令ls:列出当前文件夹内的东西。cdxxx:进入名为xxx的子文件夹。返回到上一级文件夹用cd..。【重要】编译命令终端里打开代码所在的文件夹,......
  • Linux 环境下搭建 ElasticSearch
    centos8环境下搭建ElasticSearch7.8一、安装:复制下载链接地址,并使用wget命令下载对应的压缩包。例如:wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz下载完成后,解压压缩包:tar-xzvfelasticsearch-7.8.0-linux-x86......
  • linux 使用docker 管理应用(gitlab,)
    配置gitlab  10080端口貌似被禁用的具体细节不清楚但是配置访问不了端口从2万开始磁盘空间不足无法正常启动 需要配置足够的磁盘空间配置环境变量 GITLAB_HOME下载并启动容器sudodockerrun--detach--hostnamegitlab.example.com--publish10443:443--publ......