分类: LINUX
2012-03-04 01:14:53
GNU Screen 是一款免费的终端复用程序,它允许一个用户通过单独的窗口或单独的远程终端会话来访问多个分割的终端会话。这段是引用wikipedia.org的解释,实际上Screen实现的就是在一个会话中再打开多个会话。文字描述的不是很明白,看下面的截图就一清二楚了:
它是如何实现的的,下面介绍操作步骤:
1、远程服务器设置安装screen:
yum install screen -y [CentOS/RedHat]
apt-get install screen [Ubuntu/Debian]
配置screen
vi ~/.screenrc
上面的配置基本上就是告诉Scree在xterm的下部显示一个状态栏。并且定义指示器的显示方式。并开启四个子shell,名字分别为bash1~4。
2、连接远程服务器通过SecureCRT连接
设置
这里设置的是连接到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
设置可执行
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://www.ibm.com/developerworks/cn/linux/l-cn-screen/
原创文章,转载请注明: 转自