python中screen用法_使用Screen实现一个终端多个窗口[z]

GNU Screen 是一款免费的终端复用程序,它允许一个用户通过单独的窗口或单独的远程终端会话来访问多个分割的终端会话。这段是引用wikipedia.org的解释,实际上Screen实现的就是在一个会话中再打开多个会话。文字描述的不是很明白,看下面的截图就一清二楚了:

screen_1.png

它是如何实现的的,下面介绍操作步骤:

1、远程服务器设置

安装screen:

yum install screen -y    [CentOS/RedHat]

apt-get install screen    [Ubuntu/Debian]

配置screen

vi ~/.screenrc

hardstatus on

hardstatus alwayslastline

startup_message off

termcapinfo xterm ti@:te@

hardstatus string "%{= kG}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "

screen -t bash1 1

screen -t bash2 2

screen -t bash3 3

screen -t bash4 4

上面的配置基本上就是告诉Scree在xterm的下部显示一个状态栏。并且定义指示器的显示方式。并开启四个子shell,名字分别为bash1~4。

2、连接远程服务器

通过SecureCRT连接

设置

screen_SecureCRT_1.png

这里设置的是连接到SSH服务器自动运行screen程序,从而调用screen的配置文件,启动4个子bash程序。如果不是每次都有这方面的需求的话,也没有必要设置该项,等到想用的时候在执行screen命令也不迟。另外使用screen启动的会话不会因为session的断开而关闭。有关screen的使用参见:使用 screen 管理你的远程会话

Screen中窗口的控制都是使用快捷键来操作,如下:

Ctrl+a n        下一个窗口

Ctrl+a p        上一个窗口

Ctrl+a [1-4]        跳转到指定编号的窗口

Ctrl+a d        断开会话,并不会关闭

查看当前的screen进程

scren -ls

There is a screen on:

9505.main       (Detached)

1 Socket in /var/run/screen/S-root.

关闭指定的screen

kill -9 9505

Linux下连接

先编写一个脚本:

vi remote_screen

orig=`hostname`

echo -e "\033]2;$1\007"

ssh -t $1 screen -S main -xRR -p $2 -q

echo -e "\033]2;$orig\007"

设置可执行

chmod +x remote_screen

mv remote_screen /usr/local/bin/

使用:

remote_screen destination [window_name]

实例:

remote_screen 192.168.108.110

ctrl+a d可以断开会话回到本地shell,当我想重新连接时再运行一遍上面的命令即可。remote_screen命令支持两个参数第二个参数是连接时打开的窗口,如我第一次连接时默认有四个窗口分别为bash1、bash2、bash3、bash4,我断开后第二次连接可以写成remote_screen 192.168.108.110 bash2 这样的话连接后就直接打开了bash2窗口。

备注:

1、连接到screen后可以使用Ctrl+a ? 的方式查看帮助。

2、断开screen后并不是关闭了screen,可以使用screen -ls 查看当前打开的socket有哪些,使用screen -r pid的方式连接已经存在的socket

3、关闭session后screen的进程还会存在,这样我们在执行一些耗费很长时间的命令时就不必再使用nohup命令了

4、screen -ls 后会显示已经存在的screen socket,使用kill -9 pid的方式关闭socket

原创文章,转载请注明: 转自 http://salogs.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值