喵♂呜 的博客

一个刚毕业就当爹的程序猿 正在迷雾中寻找道路...

Tmux编译安装与使用

Tmux是一个类似Screen的多窗口管理工具

CentOs快速安装脚本

1
wget -qO- https://blog.yumc.pw/attachment/script/shell/tmux.sh | bash

下载 编译安装

检查类库

  • 更新 yum update -y

  • 安装基本库 yum install -y automake gcc git make

  • 如果未安装 libevent 或者 版本低于 2.1.10-stable 执行下列命令安装

    • CentOs 执行 yum install libevent-devel
    • Debian 执行 apt-get install libevent-dev
    • 编译安装
      1
      2
      3
      4
      wget http://iweb.dl.sourceforge.net/project/levent/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
      tar -xvzf libevent-2.0.22-stable.tar.gz
      cd libevent-2.0.22-stable
      ./configure && make && make install
  • 如果未安装 curses

    • CentOs 执行 yum install ncurses-devel
    • Debian 执行 apt-get install libncurses5-dev

安装命令

1
2
3
4
5
git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure && make && make install
ln -s /usr/local/bin/tmux /usr/bin/tmux

错误解决

  • 提示 -bash: /usr/bin/tmux: No such file or directory
    1
    ln -s /usr/local/bin/tmux /usr/bin/tmux
  • 提示 tmux: error while loading shared libraries: libevent-*.*.so.*: cannot open shared object file: No such file or directory
    1
    2
    ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5     # 32位系统
    ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5 # 64位系统

常用命令

外部命令/按键

  • 分离窗口
    1
    tmux split-window -t "${session_name}:${window_number}" -c "$dir" "$pane_creation_command"
  • 创建Window
    1
    tmux new-window -d -t "${session_name}:${window_number}" -n "$window_name" -c "$dir" "$pane_creation_command"

内部命令/按键

  • prefix + d 分离当前Session
  • prefix + D 或者 :attach -d 分离其他附加到当前窗口的用户

配置按键

  • 习惯了Screen的按键 我们需要自定义一下按键
  • 新建配置 touch ~/.tmux.conf
  • 写入以下配置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #修改前缀(C-a)
    unbind C-b
    set -g prefix C-a

    #添加重载命令(C-a-r)
    bind r source-file ~/.tmux.conf ; display "配置文件已重载!" ;

    #修改关闭命令(C-a-k)
    unbind &
    bind-key k kill-session

    #修改竖分屏命令(C-a-|)
    unbind %
    bind-key | split-window -h

    #开启鼠标切换
    set-option -g mouse on
    # 老版本的鼠标配置
    # set-option -g mode-mouse on
    # set-option -g mouse-resize-pane on
    # set-option -g mouse-select-pane on
    # set-option -g mouse-select-window on

    #关闭自动修改窗口名称
    set-option -g allow-rename off
  • 这里有一份常用的配置(需要先克隆插件管理器) 点击下载
  • 提取窗口 prefix + !

插件相关

安装插件管理器

  • 新建插件目录 mkdir ~/.tmux
  • 克隆插件管理器
    • 执行 git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
  • 配置文件 ~/.tmux.conf 底部添加下列内容
    1
    2
    3
    4
    5
    6
    # 插件列表
    set -g @plugin 'tmux-plugins/tpm'
    set -g @plugin 'tmux-plugins/tmux-sensible'

    # 初始化 TMUX 插件管理器 (请务必保证这行在 tmux.conf 的结尾)
    run '~/.tmux/plugins/tpm/tpm'
  • 打开 tmux 按下 Ctrl-a I(大写 记得按Shift) 完成安装

安装插件

自动保存插件安装

通过 Tmux Plugin Manager 安装 (推荐)

在配置 .tmux.conf 添加下列内容

1
2
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

按下 prefix + I(如果过是上文配置 就是 Ctrl-a I(大写 记得按Shift)) 获取插件源码. 插件会自动在后台启动

手动安装
  • 新建插件目录 mkdir ~/.tmux
  • 克隆插件 git clone https://github.com/tmux-plugins/tmux-resurrect.git
  • 克隆插件 git clone https://github.com/tmux-plugins/tmux-continuum.git
  • 在配置文件 .tmux.conf 添加一行 run-shell ~/.tmux/tmux-continuum/resurrect.tmux
  • 在配置文件 .tmux.conf 添加一行 run-shell ~/.tmux/tmux-continuum/continuum.tmux

保存布局功能

手动保存
  • 保存布局 prefix + Ctrl-s(Ctrl-a + Ctrl-s)
  • 恢复布局 prefix + Ctrl-r(Ctrl-a + Ctrl-r)
自动保存/恢复
  • 配置文件添加一行 set -g @continuum-restore 'on' 启用自动恢复
  • 启用自动保存之后 每隔15分钟会自动保存 开启后自动会恢复

欢迎关注我的其它发布渠道