强大的tmux

作者: Sui_Xin | 来源:发表于2018-12-08 00:13 被阅读7次

本文首发于我的个人博客:Suixin's Blog
原文: https://suixinblog.cn/2018/12/tmux.html  作者: Suixin

之前在服务器跑代码的时候用到了screen会话管理命令,可以新建不同的session来不间断运行shell。而tmux更为强大,不仅提供了会话的管理,还支持同一窗口下分出不同的窗格。
总的来说,tmux的结构分为:

  • session
    • window
      • pane

命令行安装

macos使用brew install tmux进行安装;
CentOS使用yum install tmux进行安装时发现版本为1.8较低,所以通过源码编译的方式进行安装:

  1. 安装依赖:

    yum -y install ncurses-devel
    yum -y install libevent-devel
    
  2. 安装tmux

    git clone https://github.com/tmux/tmux.git
    cd tmux
    sh autogen.sh
    # 若提示找不到aclocal命令,则安装yum install -y automake
    ./configure && make
    # 若提示没有C编译器,则安装yum install -y gcc
    make install
    
  3. 检查版本

    tmux -V
    # 可能提示无tmux命令,制作软连接即可
    ln -s /usr/local/bin/tmux /usr/bin/tmux
    

常用参数

tmux new -s <name>新建名为name的会话(无-s参数则默认以数字命名);
tmux at -t <name>恢复(attach) 名为name的会话(无-t参数则默认恢复上一次的会话(at可简写为a);
tmux ls列出所有会话;
tmux kill-session -t <name>关闭名为name的会话;
tmux kill-server:关闭所有会话。

快捷键(在tmux session中)

这里所有的快捷键都是以Ctrl+B开头的(Mac也是⌃+B而不是⌘+B)。以下所有命令均在按下前缀Ctrl+B后再按下生效。

会话

D分离(detach) 当前会话(会话仍在后台运行);
S:列出所有会话,此时可通过方向键和回车键切换;
$:重命名当前会话;
:new -s <name>:创建并进入名为name的会话(不存在父子级关系)。

窗口(标签页)

窗口在tmux中相当于同一个session下的子窗口。
想到的使用场景为:在一个多人使用的服务器下,你只需新建自己名字的sessiontmux new -s suixin,想要再新建会话时,不去tmux new -s suixin2,而是选择在已有的suixinsession下新建窗口,避免了多用户用tmux开启巨多session的困扰。(说的有点绕……)
c:新建窗口;
w:列出所有窗口,此时可通过方向键和回车键切换;
n:切换到后一个窗口(使用后面的主题后失效);
p:切换到前一个窗口(使用后面的主题后失效);
,:重命名当前窗口(不知是否可以在创建时就命名);
&:关闭当前窗口。

窗格(分割窗口)

窗格tmux优于screen的一个强大的功能,可以实现在同一个窗口下分割窗口为多个窗格运行不同的命令,一览无余。棒棒棒!!
%:垂直分割;
::水平分割;
x:关闭窗格(也可以直接在命令行输入exit);
o:交换窗格(将输入切换到下一个窗格);
q:显示窗格的编号(和尺寸),此时可通过按下数字切换(使用后面的主题后数字切换失效);
{:与上一个窗格交换位置;
}:与下一个窗格交换位置。

一个漂亮的tmux配置

有人配置了一个比较全的tmux,见https://github.com/gpakosz/.tmux
新特性

  • 鼠标(开启键为Ctrl+A+M)。可切换windows、panes,鼠标滚动,复制等;
  • 快捷键前缀改为Ctrl+A并兼容Ctrl+B
  • 更改了部分快捷键,使之更方便,见 https://github.com/gpakosz/.tmux#bindings
  • 美化底栏;
  • 窗口编号从1开始;
  • 当前窗口用蓝底显示,当前pane用蓝框显示;
  • 漂亮的界面。

拉取文件:

git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local ./

我修改了~/.tmux.conf.local文件中的左右底栏配置,然后source该文件(好像Linux服务器不能显示电池信息):

tmux_conf_theme_status_left=' ❐ #S '
tmux_conf_theme_status_right='#{prefix}#{pairing}#{synchronized} #{?battery_status, #{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{loadavg} | #{username}#{root} | #{hostname} '

我比较常用的窗格设置,左边主界面,右上角可以实时cd到某些文件夹查看,右下角为top

image

其他

Ctrl+B+T:显示时间,按任意键返回。

image

查找窗口、调整窗口排序、调整窗格尺寸、同步窗格、文本复制模式等功能在参考中可以找到。

参考

https://gist.github.com/ryerh/14b7c24dfd623ef8edc7
https://github.com/gpakosz/.tmux
https://harttle.land/2015/11/06/tmux-startup.html

相关文章

  • 强大的tmux

    本文首发于我的个人博客:Suixin's Blog原文: https://suixinblog.cn/2018/1...

  • Tmux使用

    一、Tmux配置 秉承着“能用就行,不折腾”的原则,直接使用网友现成的配置文件链接:好看又强大的 tmux 懒人配...

  • [Tmux]常用命令

    tmux常用命令 tmux:运行tmux并开启一个新的会话。 tmux ls:显示所有会话。 tmux new -...

  • tmux

    1 新建 tmux new -s ccc 2查看tmux窗口tmux ls 3进入一个tmux窗口tmux a -...

  • Tmux 使用笔记

    Tmux 速成教程:技巧和调整Tmux 入门介绍多终端管理器TMUX使用详解 查看tmux版本 tmux -V 会...

  • Tmux——打造完美的Linux终端

    安装tmux sudo yum install tmux 运行tmux并开启一个新的会话 tmux 显示所有会话 ...

  • tmux使用介绍

    tmux简介 tmux,升级版本的screen,可以进行屏幕切割,操作更加简单便捷。 tmux模块 tmux使用C...

  • ❖ Tmux Like a Boss

    进阶参考:10 Killer Tmux Tips Tmux会话自动保存 Tmux会话是整个tmux中最最最重要的东...

  • 命令行神器 Tmux

    Tmux Link GitHub[https://github.com/tmux/tmux/wiki/Gettin...

  • tmux安装与使用

    tmux 一、tmux是什么 tmux(terminal multiplexer)是Linux上的终端复用神器,可...

网友评论

    本文标题:强大的tmux

    本文链接:https://www.haomeiwen.com/subject/whefhqtx.html