服务器的任务不间断运行,就是利用了tmux的特性。也就是说,一般来说,当ssh断开时,之前连接ssh期间运行的所有进程都会停止,而tmux的核心业务不是把屏幕分割成几块漂亮的,而是可以保存session!并且还可以在多个终端实时直播会议!知道了tmux的安装使用就明白了,这个短视频就够了!如果你想尝试tmux的session共享,让其他机器或者其他人像直播一样看着你在命令行上打字操作,一句话就可以使用tmux,参考这个视频。万万没想到,把vim变成一个IDE,不间断地运行脚本,让任务运行状态可以在多个地方查看,会这么简单。一句sudoapt-getinstalltmux安装,一句tmux启动,一句tmuxnew-s即可创建并保存session。高超!常用操作快捷键参考。tmux常用命令参考#启动新会话:tmux[new-s会话名-n窗口名]#恢复会话:tmuxat[-t会话名]#列出所有会话:tmuxls#关闭会话:tmuxkill-session-tsessionname#关闭所有会话:tmuxls|格雷普:|切-d。-f1|awk'{printsubstr($1,0,length($1)-1)}'|xargskillTmux常用内部命令所谓内部命令,就是进入Tmux后的命令。按下前缀键后的命令,一般前缀键为Ctrl+b。#Session:new开始一个新会话s列出所有会话$重命名当前会话#windowc创建一个新窗口w列出所有窗口n下一个窗口p上一个窗口f查找窗口,重命名当前窗口并关闭当前窗口#pane(splitwindow)%splitvertically"水平分割oswappanexclosepane?左边的符号代表空格键-切换布局q显示每个pane的数量,当出现数字时,按数字选择数量pane{Swappositionwiththepreviouspane}和下一个pane交换位置zSwitchpanetomaximize/minimizeChange#Adjustwindowsortingswap-window-s3-t1交换3号和1号窗口swap-window-t1交换当前窗口和1号窗口move-window-t1将当前窗口移动到1号#SyncPane#要执行此切换到所需窗口,请输入Tmux前缀后跟冒号以调出命令提示符,然后输入::setwsynchronize-panes#Adjustpanesize#Ifyoudon'tlikethedefaultlayout,youcanresizethepanes.虽然这很容易实现,但通常没有必要。这些命令用于调整窗格大小:PREFIX:resize-pane-D当前窗格扩大1个网格PREFIX:resize-pane-U当前窗格向上扩大1个窗格PREFIX:resize-pane-L展开当前窗格向左前缀1个窗格:resize-pane-R将当前窗格向右扩展1个窗格前缀:resize-pane-D20将当前窗格向下扩展20个窗格前缀:resize-pane-t2-L20将编号为2的窗格向左展开20个窗格。Tmux无法保留会话。虽然好用,缺点是关机时所有会话都会消失。要解决这个问题,需要安装一个单独的插件。这时候就需要Tmux-Resurrect这个插件了。地址在这里。插件说明里写的很清楚,一旦关闭tmux,所有设置都会丢失。所以必须使用插件来解决。安装方法:tmux安装插件管理器TPM,思路和vim一样,需要先安装tmux专用的插件管理器,一般用这个:tmuxpluginmanager,即tpm。注意:文档中提到了prefix+...,其中prefix是指tmux的命令前缀,默认是ctrl+b。根据官网介绍,安装非常简单,输入如下命令:#安装`~/.tmux/plugins/tpm`下的manager文件这些目录在gitclonehttps://github之前是不存在的。com/tmux-plugins/tpm~/.tmux/plugins/tpm#新建一个配置文件touch~/.tmux.confvim~/.tmux.conf#复制以下内容到`~/.tmux.conf`#列表插件集-g@plugin'tmux-plugins/tpm'set-g@plugin'tmux-plugins/tmux-sensible'#其他示例:#set-g@plugin'github_username/plugin_name'#set-g@plugin'git@github.com/user/plugin'#set-g@plugin'git@bitbucket.com/user/plugin'#初始化TMUX插件管理器(将此行保留在tmux.conf的最底部)运行'~/.tmux/plugins/tpm/tpm'#当tmux运行时,找到任意窗口输入以下内容完成安装管理器:tmuxsource~/.tmux.conftmux安装插件是基于tpm管理器的,我们直接进入~/.tmux.conf文件在插件列表部分,写上插件名称,然后按Ctrl+b,再按Ctrl+I,就是一个大写的i。然后程序会自动下载并安装插件。安装tmux-resurrect插件由于tmux无法持久化session的特性,所以我们需要安装这个插件,将session设置完全保存在本地,重启后快速恢复窗口等设置。先在~/.tmux.conf文件的Listofplugins部分添加这句话:set-g@plugin'tmux-plugins/tmux-resurrect'保存后,在tmux的任意窗口按ctrl+b和大写I即可完成下载和安装。Usageprefix+Ctrl-s-savesessionprefix+Ctrl-r-恢复sessionTmux中的vim和其他软件颜色丢失是因为tmux默认的TERM没有使用256color,所以可以在每次运行tmux时指定颜色,TERM=screen-256color-bcetmux,或者更简单,在~/.bash.profile或~/.zshrc中设置别名:aliastmux="TERM=screen-256color-bcetmux",在~/.tmux中加入这句话.conf文件字:set-gdefault-terminal"xterm-256color"Tmux中的Mousescrolling不能使用tmux中的Mousescrolling默认是关闭的,像开关一样开启支持并不容易。我已经阅读了一些stackoverflow并尝试了一些解决方案,但没有一个有效。如果比这还麻烦,我暂时觉得没有必要再折腾了。只需使用原生屏幕滚动快捷键:Prefix+[,然后直接使用上下箭头,或者PnUp和PnDown来配置Tmux的配置文件默认位于~/.tmux.conf。日常使用中,前缀键Ctrl+b和切换窗口键Ctrl+o太麻烦了。所以有时需要更改快捷键。请参阅此文档。我的配置如下:#BasicSettings#set-gdefault-terminal"screen-256color"set-gdefault-terminal"xterm-256color"#recovercolorfulterminalset-gdisplay-time3000set-gescape-time0set-ghistory-limit65535set-gbase-index1set-gpane-base-index1#前缀绑定(Ctrl+a)#set-gprefix^a#unbind^b#bindasend-prefix#enablemouse(Tmuxv2.1)set-gmouseon#selectwindowbind-keykselect-pane-Ubind-keyjselect-pane-Dbind-keyhselect-pane-Lbind-keylselect-pane-R#copy-modewill快捷键设置为vi模式setw-gmode-keysvi#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<#Tmux插件管理器(Tmuxv2.1)#==TMUX插件管理器==##TmuxResurrectset-g@plugin'tmux-plugins/tmux-resurrect'#插件列表-g@plugin'tmux-plugins/tpm'set-g@plugin'tmux-plugins/tmux-sensible'#初始化TMUX插件管理器(将这一行放在最底部tmux.conf)run'~/.tmux/plugins/tpm/tpm'#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>