Linux 下screen命令的使用

RHEL 6 Screen 使用指南
本文详细介绍了如何在RHEL 6系统上安装并使用Screen工具,包括创建、进入、退出Session等基本操作,以及如何查看Session状态、检查来源IP等高级技巧。

刚刚才注意,默认情况下rhel6 是不安装screen命令的:

[root@rhel63single yum.repos.d]# yum install screen
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
rhel-source                                                                                                                          | 4.0 kB     00:00 ... 
rhel-source-beta                                                                                                                     | 4.0 kB     00:00 ... 
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package screen.x86_64 0:4.0.3-16.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================
 Package                           Arch                              Version                                   Repository                              Size
============================================================================================================================================================
Installing:
 screen                            x86_64                            4.0.3-16.el6                              rhel-source                            494 k

Transaction Summary
============================================================================================================================================================
Install       1 Package(s)

Total download size: 494 k
Installed size: 795 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : screen-4.0.3-16.el6.x86_64                                                                                                                          1/1 
Installed products updated.
  Verifying  : screen-4.0.3-16.el6.x86_64                                                                                                                          1/1 

Installed:
  screen.x86_64 0:4.0.3-16.el6                                                                                                                                         

Complete!
[root@rhel63single yum.repos.d]# which screen
/usr/bin/screen
[root@rhel63single yum.repos.d]# 


一、screen 的建立

[root@rhel63single ~]# screen -ls
No Sockets found in /var/run/screen/S-root.

[root@rhel63single ~]# 
[root@rhel63single ~]# 
[root@rhel63single ~]# screen -dmS lei1
[root@rhel63single ~]# screen -ls
There is a screen on:
        5786.lei1       (Detached)
1 Socket in /var/run/screen/S-root.

[root@rhel63single ~]#
其中:5786是linux的ospid。lei1是会话的名称。


二、screen 的进入

[root@rhel63single ~]# screen -r lei1


三、暂时退出某个screen 的session :先按ctrl ,再按小写的a,再按小写的d

 

[root@rhel63single ~]# 


            
[detached]
[root@rhel63single ~]# 


四、若是本来就在该session中,再使用screen -r lei1命令时的提示:

[root@rhel63single ~]# screen -r lei  或者用screen -r 5786
There is a screen on:
        5786.lei1       (Attached)
There is no screen to be resumed matching lei.
[root@rhel63single ~]# 

五、状态解释:

[root@rhel63single ~]# screen -dmS lei2
[root@rhel63single ~]# 
[root@rhel63single ~]# 
[root@rhel63single ~]# 
[root@rhel63single ~]# screen -ls
There are screens on:
        5850.lei2       (Detached)---->挂起状态,无终端在连接会话
        5786.lei1       (Attached)---->有终端在连接会话。
2 Sockets in /var/run/screen/S-root.

[root@rhel63single ~]# 

 

六、永久退出screen中的本session

[root@rhel63single ~]# exit
                           exit


                        
[screen is terminating]
[root@rhel63single ~]# screen -ls
There is a screen on:
        5850.lei2       (Detached)
1 Socket in /var/run/screen/S-root.

 


七、检查screen中的其他session的来源ip:

[root@rhel63single ~]# who -a
           system boot  2015-03-19 12:36
           run-level 5  2015-03-19 12:36
LOGIN      tty2         2015-03-19 12:37              1979 id=2
LOGIN      tty4         2015-03-19 12:37              1983 id=4
LOGIN      tty3         2015-03-19 12:37              1981 id=3
LOGIN      tty5         2015-03-19 12:37              1985 id=5
LOGIN      tty6         2015-03-19 12:37              1987 id=6
root     + pts/0        2015-03-19 19:05 00:17        5306 (192.168.80.1)
           pts/1        2015-03-19 22:29              5787 id=/1    term=0 exit=0
           pts/2        2015-03-19 22:33              5810 id=ts/2  term=0 exit=0
root     + pts/3        2015-03-19 22:33   .          5830 (192.168.80.1)
root     + pts/4        2015-03-19 22:42 00:11        5851 (192.168.80.1:S.0)---->注意此处
[root@rhel63single ~]# screen -ls
There is a screen on:
        5850.lei2       (Attached)
1 Socket in /var/run/screen/S-root.

[root@rhel63single ~]# ps -ef | grep 5851---->注意此处
root      5851  5850  0 22:33 pts/4    00:00:00 /bin/bash
root      5974  5830  0 22:56 pts/3    00:00:00 grep 5851
[root@rhel63single ~]# ps -ef | grep 5850---->注意此处
root      5850     1  0 22:33 ?        00:00:00 SCREEN -dmS lei2 ---->注意此处
root      5851  5850  0 22:33 pts/4    00:00:00 /bin/bash ---->注意此处
root      5883  5810  0 22:42 pts/2    00:00:00 screen -r 5850
[root@rhel63single ~]# 

八、检查当前的提示符是否处于screen的session中:

按ctrl,再按a,再按t

此时,在左下角会显示:“22:45:06 Mar 19 rhel63single 0.00 0.00 0.00” 字样
格式为:当前时间,日期,主机名,负载情况


九、杀掉screen中的其他session

[root@rhel63single ~]# kill -9 5850
[root@rhel63single ~]# screen -ls
There is a screen on:
        5850.lei2       (Dead ???)
Remove dead screens with 'screen -wipe'.
1 Socket in /var/run/screen/S-root.

[root@rhel63single ~]# screen -wipe
There is a screen on:
        5850.lei2       (Removed)
1 socket wiped out.
No Sockets found in /var/run/screen/S-root.

[root@rhel63single ~]# screen -ls
No Sockets found in /var/run/screen/S-root.

[root@rhel63single ~]# 

 

然后,被杀掉的session 有提示:

[root@rhel63single ~]# 
Suddenly the Dungeon collapses!! - You die...
[root@rhel63single ~]# 




 

### 概述 "screen" 是一个在 Linux 系统中用于多路复用虚拟终端的命令,允许用户在单个终端窗口中运行多个终端会话,并且可以在会话之间切换。对于在远程登录时保持会话状态非常有用,因为即使断开连接,"screen" 会话依然在后台运行[^2]。 ### 常用命令 - **启动 screen**:可直接使用 `screen` 命令启动一个新的 screen 会话,也可以使用 `-S` 参数指定会话名称,如 `screen -S name` [^2][^4]。 - **查看窗口**:使用 `screen -ls` 命令可以查看所有 screen 窗口的名称和 ID [^4]。 - **暂时退出窗口**:在 screen 会话中,按 `Ctrl + a + d` 可以暂时退出当前 screen 会话,会话会在后台继续运行 [^4][^5]。 - **恢复窗口**:使用 `screen -r name (or id)` 命令可以恢复指定名称或 ID 的 screen 会话 [^4]。 - **Detached 窗口**:使用 `screen -d name (or id)` 命令可以断开指定名称或 ID 的 screen 进程(使用命令时,screen 的状态一定要是 Attached,即有用户连在 screen 里) [^3][^4]。 - **关闭窗口**:使用 `screen -X -S name (or id) quit` 命令可以关闭指定名称或 ID 的 screen 会话 [^4]。 - **解决中文乱码问题**:在 `screen` 命令后加上 `-U`,表示采用 UTF - 8 编码,如 `screen -U -S name` 创建会话,`screen -U -r name` 恢复会话 [^4]。 ### 命令参数 - `-A -[r|R]`:将所有的视窗都调整为目前终端机的大小 [^3]。 - `-c filename`:用指定的 `filename` 文件替代 screen 的配置文件 `.screenrc` [^3]。 - `-d [pid.tty.host]`:断开 screen 进程(使用命令时,screen 的状态一定要是 Attached,也就是说有用户连在 screen 里)。一般进程的名字是以 `pid.tty.host` 这种形式表示(用 `screen -list` 命令可以看出状态) [^3]。 - `-D [pid.tty.host]`:与 `-d` 命令实现一样的功能,区别就是如果执行成功,会踢掉原来在 screen 里的用户并让他 logout [^3]。 - `-h <行数>`:指定视窗的缓冲区行数 [^3]。 ### 终端中的窗口操作 - `Ctrl + a + c`:创建窗口 [^5]。 - `Ctrl + a + w`:显示窗口列表 [^5]。 - `Ctrl + a + n`:切换到下一个窗口 [^5]。 - `Ctrl + a + p`:切换到上一个窗口 [^5]。 - `Ctrl + a + 0 - 9`:在第 0 个窗口和第 9 个窗口之间切换 [^5]。 - `Ctrl + a + K(大写)`:关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始 shell 状态) [^5]。 - `exit`:关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始 shell 状态) [^5]。 ### 示例 在 Screen 会话之外,通过 `screen` 命令操作一个 Screen 会话: ```bash screen -S sandy -X screen ping www.baidu.com ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值