Tmux入门教程

WHY

使用Tmux有不少好处。我最看重的是,git

  1. 远程服务器上持久地保存工做状态。好比,我在本地或服务器作某项工做,须要在Terminal打开几个窗口。每次换工做,还须要切换。用Tmux,即可以按照Session进行管理,每次轻松打开切换。
  2. 随时随地断开或链接Session。好比,在服务器上面运行一条命令,可是担忧链接断开后命令终止,此时在tmux中运行命令,此时断网关机便问题不大,只需随后恢复Session即可以

Install

服务器上须要根据具体操做系统安装,包管理通常支持。若不支持,请参考GitHub - tmux/tmux: tmux source code。 Mac上只需以下命令:github

brew install tmux
复制代码

Config

Tmux默认不支持鼠标滚动查看窗口中的先后内容。须要修改配置来支持。vim

touch ~/.tmux.confbash

# 开启鼠标模式
set-option -g mouse on

# 容许鼠标选择窗格
# set -g mouse-select-pane on# 若是喜欢给窗口自定义命名,那么须要关闭窗口的自动命名
set-option -g allow-rename off
​
# 若是对 vim 比较熟悉,能够将 copy mode 的快捷键换成 vi 模式
set-window-option -g mode-keys vi
复制代码

若是对鼠标滚动效果依旧不满意,能够参考这篇blog:Better mouse scrolling in Tmux服务器

Conception

tmux的主要元素分为三层:session

  • Session 一组窗口的集合,一般用来归纳同一个任务。session能够有本身的名字便于任务之间的切换。
  • Window 单个可见窗口。Windows有本身的编号,也能够认为和ITerm2中的Tab相似。
  • Pane 窗格,被划分红小块的窗口,相似于Vim中 C-w +v 后的效果。 一图以蔽之:
    conception.jpg

Session

Tmux为了防止与全局快捷键冲突,大部分快捷键须要先须要输入前缀Ctrl + b,下文用Prefix代替。ui

Session主要相关命令以下:spa

# 建立
tmux new # 不指定session name
tmux new -s [session-name]

# 删除Session
tmux kill-session -t [session-name]
tmux kill-server

# 列出当前Session
tmux ls # 
Prefix s # tmux 内

# 恢复Session
tmux a -t [session-name]
tmux a

# 断开Session
tmux detach
Prefix d

# 重命名Session
Prefix $
复制代码

Window

# 建立
Prefix c

# 选择窗口
Prefix + [number] # 选择第n个窗口
Prefix + p/n	# 前/后一个窗口

# 关闭窗口
Prefix &
exit

# 列出全部window(包含其余Session)
Prefix w 
j/k # 先后选择

# 搜索窗口
Prefix f

# 重命名当前窗口
Prefix ,
复制代码

Pane

# 建立
Prefix %	# 水平窗格
Prefix '"'	# 垂直窗格

# 关闭
Prefix x

# 切换
Prefix o # 在窗格间切换
Prefix q	# 显示窗格编号,输入编号切换

# 将当前窗格切换到新窗口
Prefix !

# 窗格交换位置
Prefix + {/}
复制代码