为什么要使用tmux

在linux服务器上,我们一般都通过ssh工具进行远程连接,当我们要进行编译代码或下载大文件,这些操作一般都需要较长时间,一旦网络中途不稳定或连接直接断开,那我们之前所做的所有操作就中断了,再连接上又要重新开始。也许有人会说:"我可以写个脚本,让他后台运行"。那只是一个小小的操作写个脚本那确实有点不方便,再者我们要运行一些加载后台控制,虽然可以让他后台执行,也是不方便。这就需要一个ssh工具断开了能解决以上的问题的工具,当然这类工具有很多,比如screen,gun,tmux等,这里我们选用tmux,当我们在tmux中进行工作操作,即使关掉ssh工具/终端,再连接linux服务时,接入tmux的会话,还能继续我们之前的工作操作流程。

tmux 是什么

tmux 是 linux系统下的一个工具,是一个基于类Unix系统的终端多路复用器,允许在一个终端窗口里面开多个子窗口(这里的子窗口可以是对一个屏幕做分割,也是可以是开启多个会话), 支持快速切换,总的来说就是一个能一直保持在系统上的多开器的软件。tmux有个比screen的更骚的操作,就是一个会话可以多人连接,而且一个会话操作流程,会同时给多个人进行展示,有点像屏幕分享,还是可交互的屏幕分享。

tmux有三种概念:
  • 会话(session):
    会话是tmux 中一个很重要的概念,创建一个会话是使用tmux的第一步,因为所有的操作都是在会话中完成,会话之间还能互相切换,不需要Detach,一个会话包含多个窗口。
  • 窗口(window):
    窗口可以看成是一块屏幕,和普通终端一样,就很像windows桌面那种窗口全部最大化了你只能看到最前面那一个窗口,区别就是在窗口的底下会显示当前窗口的数据信息,一个窗口可以切分成多个窗格。
  • 窗格(pane):
    窗格是最小的显示单元,可以显示不同的数据,就类似一些ide的软件的窗口内的一些文件区、编辑区、调试区等。可以在一个窗口里面拆分多个窗格。

下载
这里我推荐直接去github上下载最新的,因为有一些操作系统的源的tmux版本很低,当然自己编译tmux,确实有难度,因为会经常少了一些库什么的就编译不了,所以没有编译代码的新手,还是直接从源里面安装。
https://github.com/tmux/tmux/releases

安装

  • 编译安装

    • 下载github的源码,然后解压
$ ./configure && make
$ sudo make install
  • 软件源安装(其实都大同小异)

    • centos yum install tmux
    • ubuntu sudo apt install tmux
    • macos brew install tmux
    • manjaro sudo pacman -S tmux

会话管理
  • 新建会话 tmux
  • 新建会话(名称) tmux new -s <session-name>
  • 查看所有会话 tmux ls
  • 接入会话 tmux atmux at tmux attach
  • 使用会话编号接入 tmux attach -t 0
  • 使用会话名称接入 tmux attach -t <session-name>
  • 杀死会话 tmux kill-session
  • 杀死会话(编号)tmux kill-session -t 0
  • 杀死会话(名称)tmux kill-session -t <session-name>
  • 切换会话 tmux switch
  • 切换会话(编号) tmux switch -t 0
  • 切换会话(名称) tmux switch -t <session-name>
  • 重命名会话 tmux rename-session
  • 将会话编号0改成新的名字
    tmux rename-session -t 0 <new-session-name>
  • 将旧会话的名字改成新的名字 tmux rename-session -t <old-session-name> <new-session-name>
其他一些操作
  • 强行关闭tmux tmux kill-server
  • 列出所有的快捷键以及对应的tmux命令 tmux list-keys
  • 列出所有tmux命令以及参数 tmux list-commands
  • 列出当前所有tmux的会话消息 tmux ls
  • 重载当前的tmux配置 tmux source-file ./.tmux.conf
会话快捷键
Ctrl+b d     #分离当前会话
Ctrl+b s    #列出所有会话
Ctrl+b $    #重命名当前会话
窗口操作
c:新建窗口;
w:列出所有窗口,此时可通过方向键和回车键切换;
n:切换到后一个窗口(使用后面的主题后失效);
p:切换到前一个窗口(使用后面的主题后失效);
,:重命名当前窗口(不知是否可以在创建时就命名);
&:关闭当前窗口。
窗格操作
%:垂直分割
":水平分割
ctrl+b Up/Down/Left/Right  切换空格
x: 关闭窗格
z: 窗格最大化/最小化
{: 与上一个窗格交换位置
}: 与下一个窗格交换位置
q: 显示窗格标号
最后修改:2021 年 08 月 01 日 03 : 19 PM
如果觉得我的文章对你有用,请随意赞赏