[分享]使用Screen实现一个终端多个窗口
时间:2010-06-01
来源:互联网
本帖最后由 zyqduron 于 2010-06-01 12:38 编辑
原文链接:使用Screen实现一个终端多个窗口
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://en.wikipedia.org/wiki/GNU_Screen
http://www.ibm.com/developerworks/cn/linux/l-cn-screen/
http://www.earthinfo.org/an-easy-way-to-use-gnu-screen-over-ssh/
原文链接:使用Screen实现一个终端多个窗口
GNU Screen 是一款免费的终端复用程序,它允许一个用户通过单独的窗口或单独的远程终端会话来访问多个分割的终端会话。这段是引用wikipedia.org的解释,实际上Screen实现的就是在一个会话中再打开多个会话。文字描述的不是很明白,看下面的截图就一清二楚了:
它是如何实现的的,下面介绍操作步骤:
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
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
- 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://en.wikipedia.org/wiki/GNU_Screen
http://www.ibm.com/developerworks/cn/linux/l-cn-screen/
http://www.earthinfo.org/an-easy-way-to-use-gnu-screen-over-ssh/
作者: zyqduron 发布时间: 2010-06-01
还是yakuake好

作者: gch12vsf 发布时间: 2010-06-01
是把screen禁掉了吧
作者: whoiswhoz 发布时间: 2010-06-01
呵呵呵,SecureCRT也很好用
作者: 300second 发布时间: 2011-02-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28