Centos命令系列 之 screen

摘要

作为运维人员经常会遇到等到远程主机的链接因为网络原因或者别的其他不可抗拒的原因断掉,此时远程为执行完成的命令也会断掉而导致很多任务需要重新执行。

这给大家介绍一个在这种情况下很好用的命令 screen,具体好用在那里,下面具体介绍,包括从其安装到配置到使用

What to do

在正式介绍之前,先给大家介绍下 screen 都能做什么事情

  • 通过一个SSH session使用多个shell窗口
  • 即使网络断开链接也能保持shell窗口处理激活状态
  • 可以在任何地方断开或者重连同一个shell session
  • 不用为了跑一个耗时的任务而长时间保持几个shell session处于激活状态

安装

Centos下命令安装一般都采用两种方式,YUM和RPM包的方式。这里分别介绍

YUM安装

yum install -y screen

RPM安装

对于下载 RPM 包,建议去 http://rpm.pbone.net/ 下载

wget ftp://bo.mirror.garr.it/1/slc/centos/7.1.1503/os/x86_64/Packages/screen-4.1.0-0.19.20120314git3c2946.el7.x86_64.rpm
rpm -ivh screen-4.1.0-0.19.20120314git3c2946.el7.x86_64.rpm

验证安装

root@pts/1 $ which screen
/usr/bin/screen

root@pts/1 $ screen -v
Screen version 4.01.00devel (GNU) 2-May-06

使用

screen

在开始使用 screen 之前,执行下面的命令

root@pts/1 $ ps -ef|grep screen
root      6297  2410  0 14:02 pts/1    00:00:00 grep --color=auto screen

然后输入 screen 回车,感觉打开了一个新的shell session

screen -list

这个时候我们在执行上面的ps命令和screen -list查看结果

root@pts/2 $ ps -ef|grep screen
root      6335  2410  0 14:02 pts/1    00:00:00 screen
root      6476  6337  0 14:02 pts/2    00:00:00 grep --color=auto screen

root@pts/2 $ screen -list
There is a screen on:
        6336.pts-1.192  (Attached)
1 Socket in /var/run/screen/S-root.

screen -list是查看开启的screen列表

新增screen ctrl+a+c

为了验证新增screen和后面的功能,在上面的开启的第一个screen session中执行top命令

从当前的screen session开启一个新的screen session可以使用快捷键 ctrl+a+c

看到开启了一个新的 screen session,一个没有执行top的新session

screen切换 ctrl+a+n/p

ctrl+a+n 切换到下一个

ctrl+a+p 切换到上一个

需要说明的是在切换的时候N多session组成一个类似环状,ctrl+a+n切换到最后一个之后在切换久切换到了第一个,

同理ctrl+a+p切换到第一个之后在切换久切换到了最后一个screen session

离开screen ctrl+a+d

注意括号中的状态值,由Attached变成Detached

[detached from 6336.pts-1.192]

root@pts/1 $ screen -list
There is a screen on:
    6336.pts-1.192  (Detached)
1 Socket in /var/run/screen/S-root.

再连接到screen ctrl+r[+name]

当系统只有一个screen处于 Detached状态的话,直接输入ctrl+r回车就可以进入screen

如果有多个

root@pts/1 $ screen -list
There are screens on:
        9944.lc (Detached)
        9766.pts-1.192  (Detached)
        6336.pts-1.192  (Detached)
3 Sockets in /var/run/screen/S-root.

就需要执行ctrl+r+9766.pts-1.192

这里其实输入前面的数字或者后面的字符串都行,比如

ctrl+r+6336
ctrl+r+pts-1.192

pts-1.192 是由系统生成的,对应用户而言没有明确的意义。我们可以通过screen -S lc 命令去自定义这个值,结果如上面的9944.lc

锁住screen ctrl+a+x

Screen used by root <root> on 192.
Password:

使用的时候输入密码即可

停止screen exit or ctrl+a+k

当你跑完脚本或者执行完任务的时候,一般建议停止screen,也就是真正的退出screen



简书地址:Centos命令系列 之 screen


    公众号: DailyJobOps    

时间: 2024-08-23 20:42:00

Centos命令系列 之 screen的相关文章

grep 命令系列:如何在 UNIX 中根据文件内容查找文件

grep 命令系列:如何在 UNIX 中根据文件内容查找文件 为了完成课程作业,我写了很多 C 语言代码并把它们保存为 /home/user/c/*.c 和 *.h.那么在 UNIX shell 窗口中我如何能通过字符串或者单词(例如函数名 main())文件内容来查找文件呢? 你需要用到以下工具: [a] grep 命令 : 输出匹配模式的行. [b] find 命令: 在目录层次中查找文件. 使用 grep 命令根据内容查找文件 输入以下命令: grep 'string' *.txt gre

grep 命令系列:grep 中的正则表达式

grep 命令系列:grep 中的正则表达式 在 Linux .类 Unix 系统中我该如何使用 Grep 命令的正则表达式呢? Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式extended regular expressions,而且 GNU grep 在所有的 Linux 系统中都是默认有的.Grep 命令被用于搜索定位存储在您服务器或工作站上的任何信息. 正则表达式 正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列.下面是范例: ^w1 w1|w2 [

grep 命令系列:从文件中搜索并显示文件名

我怎样从几个文件中搜索(grep),并只显示匹配到的文件的文件名? 当你从不止一个的文件中搜索时,默认它将显示文件名: grep "word" 文件名 grep root /etc/* 示例输出: /etc/bash.bashrc: See "man sudo_root" for details. /etc/crontab:17 * * * * root cd / && run-parts --report /etc/cron.hourly /etc

grep 命令系列:如何在 Linux/UNIX 中使用 grep 命令

grep 命令系列:如何在 Linux/UNIX 中使用 grep 命令 我该怎样在 Linux.Apple OS X 及其他类 UNIX 系统中使用 grep 命令,你能给我展示一些简单的例子吗? grep 命令用来搜索文本,或从给定的文件中搜索行内包含了给定字符串或单词的文件.通常来说,grep 显示匹配到的行.使用 grep 来搜索包括一个或多个正则表达式匹配到的文本行,然后只显示匹配到的行.grep 被视作在 Linux/ Unix 系统中最有用的命令之一. 你知道吗 grep 这个名字

CentOS命令行下装oracle 12c的方法(命令行模式安装)_oracle

实验环境: 1:安装oracle所需软件包 Oracle 12c所需的rpm包如下: binutils-2.20.51.0.2-5.11.el6 (x86_64) compat-libcap1-1.10-1 (x86_64) compat-libstdc++-33-3.2.3-69.el6 (x86_64) compat-libstdc++-33-3.2.3-69.el6 (i686) gcc-4.4.4-13.el6 (x86_64) gcc-c++-4.4.4-13.el6 (x86_64)

grep 命令系列:如何只查看配置文件中未被注释的有效配置行

grep 命令系列:如何只查看配置文件中未被注释的有效配置行 大多数的Linux和类Unix系统的配置文件中都有许多的注释行,但是有时候我只想看其中的有效配置行.那我怎么才能只看到quid.conf或httpd.conf这样的配置文件中的非注释命令行呢?怎么去掉这些注释或者空行呢? 我们可以使用 UNIX/BSD/OS X/Linux 这些操作系统自身提供的 grep,sed,awk,perl或者其他文本处理工具来查看配置文件中的有效配置命令行. grep 命令示例--去掉注释 可以按照如下示例

grep 命令系列:用 grep 命令统计匹配字符串的行数

grep 命令系列:用 grep 命令统计匹配字符串的行数 在 Linux 或 UNIX 操作系统下,对于给定的单词或字符串,我们应该怎么统计它们在每个输入文件中存在的行数呢? 您需要通过添加 -c 或者 --count 选项参数来抑制正常的输出.它将会显示对输入文件单词匹配的行数,如下所示: $ grep -c vivek /etc/passwd 或者 $ grep -w -c vivek /etc/passwd 输出的示例: 1 相反的,使用 -v 或者 --invert 选项参数可以统计出

grep 命令系列:使用 grep 命令来搜索多个单词

grep 命令系列:使用 grep 命令来搜索多个单词 要使用 grep 命令来搜索多个字符串或单词,我们该怎么做?例如我想要查找 /path/to/file 文件中的 word1.word2.word3 等单词,我怎么样命令 grep 查找这些单词呢? grep 命令支持正则表达式匹配模式.要使用多单词搜索,请使用如下语法: grep 'word1\|word2\|word3' /path/to/file 下的例子中,要在一个名叫 /var/log/messages 的文本日志文件中查找 wa

linux命令系列之man

  前言 本系列会介绍linux的一系列的命令,但主要还是把man手册上面翻译过来,给自己一个记忆,也方便其他童鞋收藏查阅. =======================================================================================   Part 1--------man 首先,介绍一下man命令. man 用户可以使用该命令来查询在线手册,并通过格式化的方式进行展示. 命令格式 man [-acdfFhkKtwW] [--pa