tmux - 远程编码利器

tmux是一款多终端管理器,可以同时开启多个终端的复用软件,听到这个,估计你会觉得也没有什么了不起的,本地随便哪个终端软件都是可以开启多个终端,并且支持多个Tab的,同样也可以满足多终端的需求。

然而tmux最牛B的地方是在远程连接上,连接上远程主机后,在远程主机上开启tmux服务,你就能体会使用tmux是有多么的爽。一个tmux服务,开启多个session,一个session再开启多个windows,一个windows再开启多个panel,然而这一切的操作,都不需要再重新去ssh连接主机,甚至主机上所有的终端任务都可以放在tmux上,不管走到哪里,ssh连接上主机,然后对应的任务连接对应的session,或编码,或调试,或基本shell,所有的终端操作交给tmux管理就OK了,任性的去耍吧。

这里主要记录一下tmux的基本命令以及快捷键,方便查看。既然tmux分为sessionwindowpanel单元模块,那么就以此为分类来记忆。

1. session

  • 增:增加一个session
    • tmux 默认启动了一个以数字命名的session;
    • tmux new -s session-name 新增一个名叫session-name的session;
  • 删:删除一个session
    • tmux kill-server 关闭tmux服务,默认杀掉所有的session|window|panel
    • tmux kill-session -t session-name 关掉名为session-name的session;
    • 或者在session下,输入Ctrl-b快捷键后,接着输入: kill-session;
  • 查:查询所有session
    • tmux ls or tmux list-session 列出目前所有的session;
  • 退:退出一个session
    • Ctrl-b快捷键后,接着按d; 这里一定注意不是同时按
  • 进:进入一个session
    • tmux a -t session-name 进入一个名叫session-name的session;
    • tmux a or tmux attach 当只有一个session的时候,默认连接上它;

2. window

  • Ctrl-b + c 新增一个窗口,再强调一遍,c不是同时按的;
  • Ctrl-b + & 删除当前窗口
  • Ctrl-b + n 下一个窗口
  • Ctrl-b + p 上一个窗口
  • Ctrl-b + , 重命名当前窗口
  • Ctrl-b + f 搜索关键字

3. panel

pane在window里,一个window可以有N个pane,并且pane可以在不同的window里移动、合并、拆分。

  • Ctrl-b + " (shift+’),横切split pane horizontal;
  • Ctrl-b + %(shift+5),竖切split pane vertical;
  • Ctrl-b + o 按顺序在pane之间移动
  • Ctrl-b + (方向键) 上下左右选择pane
  • Ctrl-b + x 删除panel
  • Ctrl-b + (空格) 更换panel排版

4. 其他

  • Ctrl-b+? 列出所有快捷键,q返回
  • Ctrl-b+ t 显示时间,q返回
  • Ctrl-b+[ 复制模式,空格标记复制开始,回车结束复制。
  • Ctrl-b+ ] 粘贴最后一个缓冲区内容
  • Ctrl-b+ = 选择性粘贴缓冲区
  • Ctrl-b+ :list-buffer 列出缓冲区目标
  • Ctrl-b+ :show-buffer 查看缓冲区内容
  • Ctrl-b+ :set mode-keys vi vi模式
  • Ctrl-b+ :list-commands tmux内置命令帮助

以上以分类的方式列举了比较常用的一些命令以及快捷方式,便于随时查看。