问题场景:要在服务器上配置环境,但是我的电脑无法直接连到服务器上,通常要经过好几次ssh跳转。配环境需要设置好几个用户,这自然需要同时打开好几个连接服务器的终端窗口,每个连接到服务器的终端窗口都要经过好几次ssh才能连接,不胜其烦。中转的电脑没有root权限,不能用iptables等工具设置端口映射。
解决方法:在从我电脑起的下一跳电脑上使用screen创建好几个session窗口,每次连接到下一跳电脑上就可以直接进行配置环境的操作。
screen用法
对一个事物最基本的操作就是增删改,用于screen就是掌握以下几种基本的操作:

  1. 如何创建一个新的session;

  2. 如何进入一个已经创建的session;

  3. 如何从一个已经创建的sesion退出而不销毁这个session;

  4. 如何销毁一个session;

  5. 如何修改一个session;

  6. 如何查询当前有多少个session

现在总结操作:
如何查询当前有多少个session: 
[whb@jcwkyl misc]$ screen -ls
There are screens on:
        3708.pts-1.jcwkyl       (Detached)  分离
        3863.pts-1.jcwkyl       (Detached)
        3915.lxi        (Attached)                 
3 Sockets in /var/run/screen/S-whb.

如何创建一个新的session: 
[whb@jcwkyl misc]$ screen -S whb_login
其中-S参数表示为session指定一个名称,这样在查询的时候更容易知道应该连接到哪个session。

如何从一个已经创建的session中退出: 
[whb@jcwkyl misc]$ screen -d   同时按下ctrl a两个键,松开后按下d。
[whb@jcwkyl misc]$ screen -ls
There are screens on:
        3708.pts-1.jcwkyl       (Detached)
        3863.pts-1.jcwkyl       (Detached)
        3915.lxi        (Attached)
        4021.whb_login  (Detached)
4 Sockets in /var/run/screen/S-whb.

如何进入一个已经创建的session: 
[whb@jcwkyl misc]$ screen -r 3863
其中3863是进程pid,在screen -ls命令中显示出来的第一个域。
一个有用的选项是-x,它可以进入一个已经attach过的session。
[whb@jcwkyl misc]$ screen -ls
There are screens on:
        3708.pts-1.jcwkyl       (Detached)
        3915.lxi        (Attached)
        4021.whb_login  (Detached)
3 Sockets in /var/run/screen/S-whb.
[whb@jcwkyl misc]$ screen -x 3915

如何销毁一个session: 
kill掉这个进程就可以
[whb@jcwkyl misc]$ kill 3863
[whb@jcwkyl misc]$ screen -ls
There are screens on:
        3708.pts-1.jcwkyl       (Detached)
        3915.lxi        (Attached)
        4021.whb_login  (Detached)
3 Sockets in /var/run/screen/S-whb.

如何修改一个session: 
可以看session的帮助,
[whb@jcwkyl misc]$ man session
或者进入一个session以后,同时按下ctrl a,再按下?键。


转载自原帖 http://blog.csdn.net/jcwkyl/article/details/5802959