tmux使用
最近在linux大棚上,感觉有些东西对于自己而言,还是非常有用的。这里就简单介绍下tmux
这款工具。
tmux是什么?
tmux是什么?tmux是linux中一种管理窗口的程序。那么问题来了:Mac自带的Iterm2很好用啊。既支持多标签,也支持窗体内部Panel的分割,为什么还要用tmux?其实,多标签和分割窗体只是tmux的部分功能。用tmux的主要原因是它提供了一个窗体组随时存储和恢复的功能。
为什么要用tmux?
考虑下面两个场景:
- 公司台式机开了一堆vim和log打印窗口。下班了,到家后灵感突发,想要继续coding,登陆VPN,SSH连上台式后发现又要重新打开各种窗口,瞬间没心情了。。。FUCK!这个时候你就可以在你的公司台式机上装个tmux。同一组工作环境,在多处共享。
- 公司服务器上调试程序,开了一堆窗口。出去吃了个饭,发现SSH超时了,重头开始。。。FUCK!如果你之前使用了tmux就不会有这样的问题,attach就能找回原来打开的那些窗口。
看到了这里,无论是对于运维还是开发人员而言,tmux对于那些需要多会话、多窗口、多pane的同学而言,都是很有需求的。如何使用tmux?
tmux中基本概念
我们先来理解下tmux的几个元素。tmux的主要元素分为三层:
- Session 一组窗口的集合,通常用来概括同一个任务。session可以有自己的名字便于任务之间的切换。
- Window 单个可见窗口。Windows有自己的编号,也可以认为和ITerm2中的Tab类似。
- Pane 窗格,被划分成小块的窗口,类似于Vim中 C-w +v 后的效果。
为了更好的理解,下面是三个元素在tmux中的具体展现。
这里只演示了一个window的情况,事实上,对于一个session而言,下面可以启动多个window,对于一个windows下面也可以启动多个pane.tmux安装
1
2
3
4
5
6
7
8// debian系列
apt-get install tmux
// redhat系列
yum install tmux
// macos系列
brew install tmux
tmux基本使用
对于tmux使用的话,有一个最basic的规则,对于任何命令,首先都要先按下prefix
,这个prefix是可以配置的,用户可以根据自己的喜好来进行配置。这么说有点抽象,那么举个栗子。比如1
2
3
4
5// 启动tmux
tmux
// 默认情况下,这里会启动一个tmux的session,对于一个session,下面最少有一个window,这个时候比如我们要启动在这个session下启动第二个window
// 首先按下ctrl+b,再按下c。这样就会在当前的这个session下启动另外一个window
很简单吧,easy.
tmux常用快捷键
tmux的快捷键是可配置的,tmux启动时,首先回去尝试搜索~/.tmux.conf
,所有的key-binding都是在tmux下进行配置的。这里就大概展示下我这个比较搓的配置,这节看看就好,后面的话,会介绍第三方比较好点的配置。1
2
3
4
5
6# 把默认的的ctrl-b换成ctrl-a
unbind C-b
set -g prefix C-a
# 设置一个重新载入配置文件的快捷键ctrl-r,修改配置文件之后,先按住ctrl-a,再按ctrl-r就会让配置文件不用重启tmux直接生效。
bind R source-file ~/.tmux.conf ; display-message "Config reloaded.."
tmux常用快捷键(默认)
这里之前我也是介绍过了,tmux快捷键都是prefix+key binding的形式,这里我也直接用prefix+key binding来表示快捷键.
Session相关操作
操作 | 快捷键 |
---|---|
查看/切换session | prefix s |
离开Session | prefix d |
重命名当前Session | prefix $ |
Window相关操作
操作 | 快捷键 |
---|---|
新建窗口 | prefix c |
切换到上一个活动的窗口 | prefix space |
关闭一个窗口 | prefix & |
使用窗口号切换 | prefix 窗口号 |
Pane相关操作
操作 | 快捷键 |
---|---|
切换到下一个窗格 | prefix o |
查看所有窗格的编号 | prefix q |
垂直拆分出一个新窗格 | prefix “ |
水平拆分出一个新窗格 | prefix % |
关闭一个新窗格 | prefix x |
暂时把一个窗体放到最大 | prefix z |
tmux第三方配置
这里我就讲下我自己在用的一份配置
配置方法也简单1
2git clone https://github.com/tony/tmux-config.git ~/.tmux
ln -s ~/.tmux/.tmux.conf ~/.tmux.conf
配置好用起来大概是这样的
如果还需要加入系统状态比如内存、cpu使用率之类的,tmux-config也提供,不过需要自行配置。