分享

tmux简明快速教程 | kissdata

 答案95 2016-05-11

tmux介绍

tmux是一个优秀的终端复用软件,即使非正常掉线,也能保证当前的任务运行,这一点对于远程SSH访问特别有用,网络不好的情况下仍然能保证工作现场不丢失! tmux完全使用键盘控制窗口,实现窗口的切换功能。

在终端下,之前用的是screen,发觉挺好用的,现在别人推荐了tmux,说更好用一些。有更方便的工具,能够让工作生活更顺手,那还是要尝试尝试的。

根据别人的经验总结,tmux相比于screen,有以下好外:

  • 垂直分割窗口,当然水平也是可以的
  • vi 或 emacs 按键绑定模式
  • 有多个粘贴缓冲,可完全由按键进行选取、复制、以及粘贴操作
  • 配置很容易,尤其是状态行
  • 脚本化,通过脚本可以方便的控制 tmux 会话
  • 有预设布局,可搜索窗口,自动命名窗口名称
  • 文档清晰、详尽

会话,窗口,面板

根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板,虽然其使用方法与终端控制台完全相同。

tmux使用C/S模型构建,主要包括以下单元模块:

  • server服务器:输入tmux命令时就开启了一个服务器。
  • session会话:一个服务器可以包含多个会话。
  • window窗口:一个会话可以包含多个窗口。
  • pane面板:一个窗口可以包含多个面板。

简明tmux的配置文件

将以下内容放在 ~/.tmux.conf 文件里面,没有该文件就直接新创建一个。

请注意:以下的配置文件,tmux的前缀组合按键仍然是 C-b 。

  1. # act like GNU screen
  2. #unbind C-b
  3. #set -g prefix C-a
  4. # improve colors
  5. #set -g default-terminal 'screen-256color'
  6. set -g default-terminal 'linux'
  7. # act like vim
  8. setw -g mode-keys vi
  9. #bind h select-pane -L
  10. #bind j select-pane -D
  11. #bind k select-pane -U
  12. #bind l select-pane -R
  13. #bind-key -r C-h select-window -t :-
  14. #bind-key -r C-l select-window -t :+
  15. # 重新调整窗格的大小
  16. bind K resizep -U 5
  17. bind J resizep -D 5
  18. bind-key L switch-client -l
  19. #bind-key -n L switch-client -l
  20. #开启window事件提示
  21. setw -g monitor-activity on
  22. #set -g visual-activity on
  23. ## 鼠标设置,不要打开,不然用鼠标选择不了内容
  24. setw -g mode-mouse off
  25. set -g mouse-select-pane off
  26. set -g mouse-resize-pane off
  27. set -g mouse-select-window off
  28. # start window numbers at 1 to match keyboard order with tmux window order
  29. set -g base-index 1
  30. set-window-option -g pane-base-index 1
  31. # remove administrative debris (session name, hostname, time) in status bar
  32. #set -g status-left ''
  33. #set -g status-right ''
  34. # increase scrollback lines
  35. set -g history-limit 10000
  36. # switch to last pane
  37. bind-key C-a last-pane
  38. # bind a reload key
  39. bind R source-file ~/.tmux.conf \; display-message "Config reloaded.."
  40. ##### 状态栏设置
  41. # colors
  42. # soften status bar color from harsh green to light gray
  43. set -g status-bg black
  44. set -g status-fg white
  45. # 状态栏中的窗口列表居中
  46. set -g status-justify centre
  47. # 状态栏启用utf-8
  48. set -g status-utf8 on
  49. #设置窗口列表颜色
  50. #setw -g window-status-fg cyan
  51. #setw -g window-status-bg default
  52. #setw -g window-status-attr dim
  53. #设置当前窗口在status bar中的颜色
  54. setw -g window-status-current-fg white
  55. setw -g window-status-current-bg red
  56. setw -g window-status-current-attr bright
  57. # spot at left
  58. set-option -g status-left '#[bg=black,fg=green][#[fg=cyan]#S#[fg=green]]'
  59. set-option -g status-left-length 20
  60. # window list
  61. setw -g automatic-rename on
  62. #set-window-option -g window-status-format '#[dim]#I:#[default]#W#[fg=grey,dim]'
  63. #set-window-option -g window-status-current-format '#[fg=cyan,bold]#I#[fg=blue]:#[fg=cyan]#W#[fg=dim]'
  64. # spot at right
  65. set -g status-right '#[fg=green][#[fg=cyan]%Y-%m-%d#[fg=green]]'

常用按键

这里需要说明一点的是,tmux的任何指令,都包含一个前缀,也就是说,你按了前缀(一组按键,默认是Ctrl+b)以后,系统才知道你接下来的指令是发送给tmux的。

显示帮助

  1. {前缀} ? 显示快捷键帮助

会话相关

  1. {前缀} d 休眠
  2. {前缀} s 以菜单方式显示和选择会话
  3. {前缀} L 切换回上一次的会话

窗口相关

  1. {前缀} c 创建新窗口
  2. {前缀} n 选择下一个窗口
  3. {前缀} p 选择前一个窗口
  4. {前缀} l 最近一次活跃窗口之间进行切换
  5. {前缀} 0~9 选择几号窗口
  6. {前缀} , 重命名窗口
  7. {前缀} . 更改窗口的编号,但只能更改成未使用的编号,所以要交换窗口的话,得更改多次进行交换
  8. {前缀} & 关闭窗口
  9. {前缀} w 以菜单方式显示及选择窗口
  10. {前缀} f 在所有窗口中查找内容

面板相关

  1. {前缀} " 模向分隔面板
  2. {前缀} % 纵向分隔面板
  3. {前缀} o 跳到下一个分隔面板
  4. {前缀} x 关闭面板
  5. {前缀} ; 切换到最后一个使用的面板
  6. {前缀} 上下键 上一个及下一个分隔面板
  7. {前缀} 空格键 切换面板布局

显示时间

  1. {前缀} t 显示时钟

常用命令

会话列表

  1. ## 在正常终端模式下,列出当前有哪些tmux会话
  2. tmux ls

新建

  1. ## 直接新建一会话,并进入
  2. tmux
  3. ## 记编号总是不那么容易的,所以一般会在新建会话时,给会话命名,方便记忆,以后也好操作
  4. ## 新建一命名为 abc 的会话
  5. tmux new -s abc

恢复

  1. ## 连接回以前的某个编号的 tmux 会话,编号用的是 tmux ls 命令时所列出的每一行的最前面的那个编号
  2. tmux attach -t 编号
  3. ## 也可简写成
  4. tmux a -t 编号
  5. ## 连接上 abc 会话
  6. tmux attach -t abc
  7. ## 或者
  8. tmux a -t abc

休眠

  1. ## 在正常终端模式下,使某个编号的会话强制休眠,编号用的是 tmux ls 命令时所列出的每一行的最前面的那个编号
  2. tmux detach -t 编号
  3. tmux detach -s 名称
  4. ## 休眠 abc 会话
  5. tmux detach -s abc

重命名会话名称

  1. ## 重命名 abc 会话名称为 cba
  2. tmux rename -t abc cba

杀掉会话

  1. ## 杀死整个 cba 会话
  2. tmux kill-session -t cba

参考文章

Tmux多窗口分隔线显示虚线不正常解决

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多