实用SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session窗口,断开连接之前原任务将会被终止,尤其是在网络不稳定的情况下,这是一件很让人痛苦的事,还好有screen和tmux两大神器:
screen
简介
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
优点
- 支持会话回复
- 会话共享
- 多窗口
安装
#debian系列系统使用以下命令安装
sudo apt-get install screen
# Redhat系列系统
sudo yum install screen
常用命令
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
Ctrl-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
tmux
简介
tmux相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。
git仓库地址
安装
#debian系列系统使用以下命令安装
sudo apt-get install tmux
# Redhat系列系统
sudo yum install tmux
最新版需要去github下载源码编译安装