screen 命令是 ssh 的有效补充

有时候会有这样的问题,当在公司服务器上打开了一个终端,做了很多事情,或正开着某个服务程序,下班回家了。

突然有事需要接入到服务器,如果用 ssh 连入,默认是一个新的终端,并不会打开你之前在公司的那个会话。而这时又需要继续在原来那个会话下操作。

今天发现 linux 下有一个 screen 命令,很有用.  在开启终端后,先运行一下 screen ,这样后续的操作都会被绑定到这个 screen 上。 而且可以在其它ssh 会话上使用 screen 命令打开旧的会话 ,继续未完成的事,甚至可以多个ssh连入同时共享一个会话,输入的命令会在所有共享ssh客户端同时显示,非常有趣.

例:

A连上服务器,并运行 screen

ssh  user@server

screen

B连上服务器,打开A的会话

ssh  user@server

screen -ls  # 查看会话id

screen -rx xxxxx  #打开指定的会话.

更多请查看 screen 的帮助:

Use: screen [-opts] [cmd [args]]

or: screen -r [host.tty]

Options:

-a            Force all capabilities into each window's termcap.

-A -[r|R]     Adapt all windows to the new display width & height.

-c file       Read configuration file instead of '.screenrc'.

-d (-r)       Detach the elsewhere running screen (and reattach here).

-dmS name     Start as daemon: Screen session in detached mode.

-D (-r)       Detach and logout remote (and reattach here).

-D -RR        Do whatever is needed to get a screen session.

-e xy         Change command characters.

-f            Flow control on, -fn = off, -fa = auto.

-h lines      Set the size of the scrollback history buffer.

-i            Interrupt output sooner when flow control is on.

-l            Login mode on (update /var/run/utmp), -ln = off.

-list         or -ls. Do nothing, just list our SockDir.

-L            Turn on output logging.

-m            ignore $STY variable, do create a new screen session.

-O            Choose optimal output rather than exact vt100 emulation.

-p window     Preselect the named window if it exists.

-q            Quiet startup. Exits with non-zero return code if unsuccessful.

-r            Reattach to a detached screen process.

-R            Reattach if possible, otherwise start a new session.

-s shell      Shell to execute rather than $SHELL.

-S sockname   Name this session <pid>.sockname instead of <pid>.<tty>.<host>.

-t title      Set title. (window's name).

-T term       Use term as $TERM for windows, rather than "screen".

-U            Tell screen to use UTF-8 encoding.

-v            Print "Screen version 4.00.03jw4 (FAU) 2-May-06".

-wipe         Do nothing, just clean up SockDir.

-x            Attach to a not detached screen. (Multi display mode).

-X            Execute <cmd> as a screen command in the specified session.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24847.html