用screen实现终端的会话管理

文章介绍了如何在Centos7上安装screen,以及screen的基本语法和操作,包括启动、恢复、查询会话,以及设置会话名称。screen的常用命令以C-a快捷键开始,配置文件可用于定制选项。文章还提到了screen的日志管理和多用户共享会话的功能,这对于团队协作非常有用。
摘要由CSDN通过智能技术生成

安装screen

[root@Centos7 ~]# yum -y install screen
//如果你不是root用户使用如下命令
[yuxin@Centos7 ~]$ sudo yum -y install screen
//通过下面这个命令查询是否安装成功
[root@Centos7 ~]# rpm -qa screen

screen基本语法

screen语法:

        screen [-Rvx -ls][-d <会话名称>][-h <行数>][-r <会话名称>][-S <会话名称>]

说明如下。
❑ -R:先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
❑ -v:显示版本信息。-x:登录到一个screen会话,即使这个会话已经被人使用了也可以同时登录。如果系统不只有一个会话,需要指定会话名称。在多用户环境下需要小心,可能会导致死循环。
❑ -ls或-list:显示目前所有的screen作业。
❑ -d <会话名称>:将指定的screen会话离线。
❑ -h <行数>:指定缓冲区的行数(和内存大小有关)。
❑ -r <会话名称>:恢复离线的screen会话。如果screen会话是一个激活的会话,将无法再次打开。
❑ -S <会话名称>:指定screen会话的名称。
❑ -wipe[插图]:检查目前所有的screen会话,并删除已经无法使用的screen会话,用于清理一些死进程。

[root@open ~]# screen --help
Use: screen [-opts] [cmd [args]]
 or: screen -r [host.tty]

Options:
-a            Force all capabilities into each window's termcap.
-A -[r|R]     Adapt all windows to the new display width & height.
-c file       Read configuration file instead of '.screenrc'.
-d (-r)       Detach the elsewhere running screen (and reattach here).
-dmS name     Start as daemon: Screen session in detached mode.
-D (-r)       Detach and logout remote (and reattach here).
-D -RR        Do whatever is needed to get a screen session.
-e xy         Change command characters.
-f            Flow control on, -fn = off, -fa = auto.
-h lines      Set the size of the scrollback history buffer.
-i            Interrupt output sooner when flow control is on.
-l            Login mode on (update /var/run/utmp), -ln = off.
-ls [match]   or
-list         Do nothing, just list our SockDir [on possible matches].
-L            Turn on output logging.
-Logfile file Set logfile name.
-m            ignore $STY variable, do create a new screen session.
-O            Choose optimal output rather than exact vt100 emulation.
-p window     Preselect the named window if it exists.
-q            Quiet startup. Exits with non-zero return code if unsuccessful.
-Q            Commands will send the response to the stdout of the querying process.
-r [session]  Reattach to a detached screen process.
-R            Reattach if possible, otherwise start a new session.
-s shell      Shell to execute rather than $SHELL.
-S sockname   Name this session <pid>.sockname instead of <pid>.<tty>.<host>.
-t title      Set title. (window's name).
-T term       Use term as $TERM for windows, rather than "screen".
-U            Tell screen to use UTF-8 encoding.
-v            Print "Screen version 4.09.00 (GNU) 30-Jan-22".
-wipe [match] Do nothing, just clean up SockDir [on possible matches].
-x            Attach to a not detached screen. (Multi display mode).
-X            Execute <cmd> as a screen command in the specified session.

screen基本操作

通常启动screen会话的方式如下:

        [root@Centos7 ~]# screen -S 会话名称

在screen命令后可以直接加上你想执行的命令。例如,你想直接登录一台设备(见下面的命令)。当你退出登录这台设备的同时,这个screen的这个窗口也就结束了。如果这个窗口恰巧又是这个screen的最后一个窗口,那么整个会话也就结束了。

        [root@Centos7 ~]# screen -S test ssh root@192.168.1.1

screen会话中的常用命令

在screen会话中,所有的命令都是以C-a(快捷键Ctrl+A)开始的
在这里插入图片描述

screen配置文件

screen提供了丰富且强大的定制功能,其默认两级配置文件的位置是/etc/screenrc与$HOME/.screenrc(/etc/screenrc是整台服务器全局的配置,
$HOME/.screenrc是当前用户的配置;
当配置冲突时,优先使用$HOME/.screenrc里面的配置)。
设置screen选项、定制命令键、设置会话启动的窗口信息与日志信息、启动多用户模式、设置用户的访问权限等,都可以在配置文件中设置。

以下是几种常用的参数

[root@centos7-1 ~]# cat .screenrc
        hardstatus alwayslastline
        hardstatus string "%{.bW}%-w%{.gY}%n %t%{-}%+w  %=%{..G} %c:%s %M-%d-%Y"
        startup_message off
        vbell off
        defutf8 on
		logfile $HOME/log/screenlog_%S_%t_%Y_%m_%d_%c.%n.log

管理screen的日志

修改配置文件。配置文件可以是/etc/screenrc或者是$HOME/.screenrc。我们在配置文件中加入如下配置:

  logfile $HOME/log/screenlog_%S_%t_%Y_%m_%d_%c.%n.log

首先要确保 H O M E 目录下有 l o g 文件夹。如果没有,可以通过 l i n u x 命令—— m k d i r HOME目录下有log文件夹。如果没有,可以通过linux命令——mkdir HOME目录下有log文件夹。如果没有,可以通过linux命令——mkdirHOME/log来创建。然后使用如下命令启动一个screen。

多人共享一个会话

在多人协作的情况下,这是一个非常好用的功能。首先,需要开启screen的多用户模式。在/etc/screenrc配置文件中加入如下配置:

        multiuser on

然后用户A启动一个screen会话,此时如果允许另外一个用户能够访问自己的会话,需要在这个会话中添加权限,方法是在C-a后输入:acladd 。

另外一个用户如果需要同时登录这个会话,输入的命令如下:

$screen -x <username>/24631.yuxin

这样,两个用户可以同时看到相同的操作,无论是登录设备的方式是基于串口协议(也称为console)还是Telnet或SSH。这个功能在多人进行协作时还是很方便的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值