通常本地连接远程linux服务器以后我们需要服务器一直执行程序,即使我们本地电脑关机或者断开连接,此时我们需要用到开后台神器tmux,后台运行程序 ,大概有三种 : & , nohup , tmux ,其中 tmux 最优雅,可以保存上次的工作流 。nohup 可以 记录发生日志。
1. 以& 结尾 run.sh &,缺点是 推出 终端 就退出 执行里。
2. nohup run.sh & --> 输入 exit 推出,会自动 将 输出 写到 当前目录下的 nohup.txt里
3.tmux 方式
首先保证你的电脑安装了tmux
如果是ubuntu:
apt-get install tmux
然后在命令行输入tmux,这时我们就开启了一个tmux后台程序,你在这里执行所有的命令和在shell里面执行是一样的结果,但是这里所有的结果和进程在你本地断开连接后远程服务器都不会关闭,都会继续执行,也就满足你后台继续执行命令的要求,
但是当你手动需要关闭这个进程时:
control + d
当你下次连接服务器需要连接上次的tmux进程时,命令行输入
tmux a
如果有多个tmux进程,可以选择:
contro +b然后按s键
如果需要将一个tmux进程放到后台:
contro +b然后按d键
tmux还支持分屏,即是将当前命令窗口水平分割或者垂直分割:
分割窗口命令是
contro +b然后按shift键+%(也就是数字键5)
contro +b然后按shift键+"键(也就是enter键左边的键)
image.png
快捷键
Ctrl+b 激活控制台;此时以下按键生效
系统操作 ? 列出所有快捷键;按q返回
d 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话
D 选择要脱离的会话;在同时开启了多个会话时使用
Ctrl+z 挂起当前会话
r 强制重绘未脱离的会话
s 选择并切换会话;在同时开启了多个会话时使用
: 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器
[ 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出
~ 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息
窗口操作 c 创建新窗口
& 关闭当前窗口
数字键 切换至指定窗口
p 切换至上一窗口
n 切换至下一窗口
l 在前后两个窗口间互相切换
w 通过窗口列表切换窗口
, 重命名当前窗口;这样便于识别
. 修改当前窗口编号;相当于窗口重新排序
f 在所有窗口中查找指定文本
面板操作 ” 将当前面板平分为上下两块
% 将当前面板平分为左右两块
x 关闭当前面板
! 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板
Ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小
Alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小
Space 在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled
q 显示面板编号
o 在当前窗口中选择下一面板
方向键 移动光标以选择面板
{ 向前置换当前面板
} 向后置换当前面板
Alt+o 逆时针旋转当前窗口的面板
Ctrl+o 顺时针旋转当前窗口的面板
网友评论