当前位置: 首页 > Linux

Tmux的超级方便(基础篇)

时间:2023-04-06 12:02:21 Linux

上面提到服务器的任务不间断运行,就是利用了tmux的特性。也就是说,一般来说,当ssh断开时,之前连接ssh期间运行的所有进程都会停止,而tmux的核心业务不是把屏幕分割成几块漂亮的,而是可以保存session!并且还可以在多个终端实时直播会议!知道了tmux的安装使用就明白了,这个短视频就够了!如果你想尝试tmux的session共享,让其他机器或者其他人像直播一样看着你在命令行上打字操作,一句话就可以使用tmux,参考这个视频。万万没想到,把vim变成一个IDE,不间断地运行脚本,让任务运行状态可以在多个地方查看,会这么简单。一句sudoapt-getinstalltmux安装,一句tmux启动,一句tmuxnew-s即可创建并保存session。高超!常用操作快捷键参考。Tmux的重要概念首先,在Tmux中,永远不要背诵和背诵超过1个字母的命令!一切根据自己的方便,在.tmux.conf配置文件中绑定快捷键,连改变窗口大小的命令都不用记忆,鼠标调节即可。其次,在Tmux逻辑中,区分Server>Session>Window>Pane的大小和层级顺序极其重要,直接关系到工作效率:Server:是整个tmux的后台服务。有时更改配置不生效,需要使用tmuxkill-server重启tmux。会话:tmux的所有会话。之前误把这个session当成了window,造成了很多不便。只需保存一个会话就足够了。Window:相当于一个工作区,包括很多分屏,每个任务可以划分一个Window。比如下载一个Window,编程一个window。Pane:是Window中的一个小分屏。最常用的也是最好的。理解了这个逻辑之后,整个Tmux的使用和配置就清楚了。(ps:下方方便美观的状态栏显示的是窗口而不是会话)tmux常用命令参考#开始新会话:$tmux[new-s会话名-n窗口名]#恢复会话:$tmuxat[-tsessionname]#列出所有会话:$tmuxls#关闭会话:$tmuxkill-session-tsessionname#关闭整个tmux服务器:$tmuxkill-serverTmux常用内部命令所谓内部命令就是输入后tmux,在前缀键后按命令,一般前缀键是Ctrl+b。ctrl和b虽然相差很远,但是不建议改前缀键,因为其他键不一定好记,不冲突。记住默认值更可靠。刷新配置文件:r下载和更新插件:IWindow窗口:关闭当前窗口:并创建新窗口:c列出所有窗口:w下一个窗口:nPreviousWindow:p重命名当前Window:,修改当前Window位置(序号):.Pane小面板:关闭当前Pane:xSplitthePaneupanddown:%SplitthePaneleftandright:"Maximize/minimizethePane:z显示每个Pane的编号,可以按数字键选择Pane:qSwappositionwithpreviouspane:{Swappositionwithnextpane:}Session会话:开始新会话::new列出所有会话:key>s重命名当前会话:$TmuxPlug-inManager(TPM:TmuxPackageManager)参考:TPM官网和vim思路一样,需要安装tmux专用的插件管理器首先,通常使用这个:tmux插件管理器,即tpm。注意:文档中提到了prefix+...,其中prefix是指tmux的命令前缀,默认是ctrl+b。根据官网介绍,安装非常简单,输入如下命令:#安装`~/.tmux/plugins/tpm`下的manager文件这些目录在gitclonehttps://github之前是不存在的。com/tmux-plugins/tpm~/.tmux/plugins/tpm#新建配置文件vim~/.tmux.conf#复制以下内容到`~/.tmux.conf`#插件列表set-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'在已经安装tpmmanager的基础上:我们直接进入~/.tmux.conf文件中的Listofplugins部分,写上插件名称,然后按I,这是一个大写的i,下载并更新插件并按r重新加载配置文件,Tmux完成配置更新。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'#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Tmux常见问题Tmux不管怎么改配置文件,它都不会变。这主要得益于Tmux的后台缓存机制。我犯了一个很大的错误:甚至删除了Tmux,重新安装了Tmux,重新启动了计算机,但没有任何反应。Tmux会有一个叫做Tmux-server的东西。干掉它,重启tmux就OK了:$tmuxkill-server-aTmux不能持久化session问题虽然好用,缺点是关机所有session都会消失。要解决此问题,需要安装一个单独的插件。这时候就需要Tmux-Resurrect插件了,地址在这里。插件说明里写的很清楚,一旦关闭tmux,所有设置都会丢失。所以你必须使用插件来解决它。tmux中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鼠标滚动中无法使用。tmux中的鼠标滚动在默认情况下是禁用的,要像开关一样启用支持并不容易。我已经阅读了一些stackoverflow并尝试了一些解决方案,但没有一个有效。如果比这还麻烦,我暂时觉得没有必要再折腾了。直接使用原生屏幕滚动快捷键:前缀+[,然后直接使用上下箭头,或者PnUp和PnDown