|
1 | 1 | tmux
|
2 | 2 | ===
|
3 | 3 |
|
4 |
| -比 screen 好用的 ssh 窗口管理工具 |
| 4 | +Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。 |
5 | 5 |
|
6 |
| -## 实例 |
| 6 | +## 补充说明 |
7 | 7 |
|
| 8 | +使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机; |
| 9 | + |
| 10 | +## 功能 |
| 11 | + |
| 12 | +- 提供了强劲的、易于使用的命令行界面。 |
| 13 | +- 可横向和纵向分割窗口。 |
| 14 | +- 窗格可以自由移动和调整大小,或直接利用四个预设布局之一。 |
| 15 | +- 支持 UTF-8 编码及 256 色终端。 |
| 16 | +- 可在多个缓冲区进行复制和粘贴。 |
| 17 | +- 可通过交互式菜单来选择窗口、会话及客户端。 |
| 18 | +- 支持跨窗口搜索。 |
| 19 | +- 支持自动及手动锁定窗口。 |
| 20 | + |
| 21 | +## 安装 |
| 22 | + |
| 23 | +```bash |
| 24 | +# 在 Mac OS 中,通过 brew 安装 |
| 25 | +brew install tmux |
| 26 | +# ubuntu版本下直接apt-get安装 |
| 27 | +sudo apt-get install tmux |
| 28 | +# centos7版本下直接yum安装 |
| 29 | +yum install -y tmux |
| 30 | + |
| 31 | +# centos6版本需要编译安装 |
| 32 | +yum install libevent libevent-devel ncurses-devel |
| 33 | +tar -zvxf tmux-2.3.tar.gz # (提前下载:wget https://github.com/tmux/tmux/releases/download/2.3/tmux-2.3.tar.gz) |
| 34 | +cd tmux-2.3 |
| 35 | +./configure |
| 36 | +make && make install |
8 | 37 | ```
|
9 |
| -apk add tmux # 安装 |
10 |
| -
|
11 |
| -# tmux |
12 |
| -tmux # new session |
13 |
| -tmux a # attach session |
14 |
| -C-b-d # detach session |
15 |
| -C-b-c # new window |
16 |
| -C-b-num # ch window |
17 |
| -exit # exit window |
18 |
| -C-b "/% # split window |
19 |
| -C-b 方向键 |
20 |
| -C-b ? # keymap |
21 |
| -no rz/sz |
22 |
| -``` |
| 38 | + |
| 39 | +## 快捷键使用说明 |
| 40 | + |
| 41 | +<table class="table-view log-set-param"> |
| 42 | +<tbody> |
| 43 | +<tr> |
| 44 | +<td colspan="2" align="left" valign="center" width="0"> |
| 45 | + <div>Ctrl+b</div> |
| 46 | +</td> |
| 47 | +<td> |
| 48 | + <div>激活控制台;此时以下按键生效</div> |
| 49 | +</td> |
| 50 | +</tr> |
| 51 | +<tr> |
| 52 | +<td rowspan="9" align="left" valign="center" width="0"> |
| 53 | + <div>系统操作</div> |
| 54 | +</td> |
| 55 | +<td> |
| 56 | + <div>?</div> |
| 57 | +</td> |
| 58 | +<td> |
| 59 | + <div>列出所有快捷键;按q返回</div> |
| 60 | +</td> |
| 61 | +</tr> |
| 62 | +<tr> |
| 63 | +<td> |
| 64 | + <div>d</div> |
| 65 | +</td> |
| 66 | +<td> |
| 67 | + <div>脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话</div> |
| 68 | +</td> |
| 69 | +</tr> |
| 70 | +<tr> |
| 71 | +<td> |
| 72 | + <div>D</div> |
| 73 | +</td> |
| 74 | +<td> |
| 75 | + <div>选择要脱离的会话;在同时开启了多个会话时使用</div> |
| 76 | +</td> |
| 77 | +</tr> |
| 78 | +<tr> |
| 79 | +<td> |
| 80 | + <div>Ctrl+z</div> |
| 81 | +</td> |
| 82 | +<td> |
| 83 | + <div>挂起当前会话</div> |
| 84 | +</td> |
| 85 | +</tr> |
| 86 | +<tr> |
| 87 | +<td> |
| 88 | + <div>r</div> |
| 89 | +</td> |
| 90 | +<td> |
| 91 | + <div>强制重绘未脱离的会话</div> |
| 92 | +</td> |
| 93 | +</tr> |
| 94 | +<tr> |
| 95 | +<td> |
| 96 | + <div>s</div> |
| 97 | +</td> |
| 98 | +<td> |
| 99 | + <div>选择并切换会话;在同时开启了多个会话时使用</div> |
| 100 | +</td> |
| 101 | +</tr> |
| 102 | +<tr> |
| 103 | +<td> |
| 104 | + <div>:</div> |
| 105 | +</td> |
| 106 | +<td> |
| 107 | + <div>进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器</div> |
| 108 | +</td> |
| 109 | +</tr> |
| 110 | +<tr> |
| 111 | +<td> |
| 112 | + <div>[</div> |
| 113 | +</td> |
| 114 | +<td> |
| 115 | + <div>进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出</div> |
| 116 | +</td> |
| 117 | +</tr> |
| 118 | +<tr> |
| 119 | +<td> |
| 120 | + <div>~</div> |
| 121 | +</td> |
| 122 | +<td> |
| 123 | + <div>列出提示信息缓存;其中包含了之前tmux返回的各种提示信息</div> |
| 124 | +</td> |
| 125 | +</tr> |
| 126 | +<tr> |
| 127 | +<td rowspan="10" align="left" valign="center" width="0"> |
| 128 | + <div>窗口操作</div> |
| 129 | +</td> |
| 130 | +<td> |
| 131 | + <div>c</div> |
| 132 | +</td> |
| 133 | +<td> |
| 134 | + <div>创建新窗口</div> |
| 135 | +</td> |
| 136 | +</tr> |
| 137 | +<tr> |
| 138 | +<td> |
| 139 | + <div>&</div> |
| 140 | +</td> |
| 141 | +<td> |
| 142 | + <div>关闭当前窗口</div> |
| 143 | +</td> |
| 144 | +</tr> |
| 145 | +<tr> |
| 146 | +<td> |
| 147 | + <div>数字键</div> |
| 148 | +</td> |
| 149 | +<td> |
| 150 | + <div>切换至指定窗口</div> |
| 151 | +</td> |
| 152 | +</tr> |
| 153 | +<tr> |
| 154 | +<td> |
| 155 | + <div>p</div> |
| 156 | +</td> |
| 157 | +<td> |
| 158 | + <div>切换至上一窗口</div> |
| 159 | +</td> |
| 160 | +</tr> |
| 161 | +<tr> |
| 162 | +<td> |
| 163 | + <div>n</div> |
| 164 | +</td> |
| 165 | +<td> |
| 166 | + <div>切换至下一窗口</div> |
| 167 | +</td> |
| 168 | +</tr> |
| 169 | +<tr> |
| 170 | +<td> |
| 171 | + <div>l</div> |
| 172 | +</td> |
| 173 | +<td> |
| 174 | + <div>在前后两个窗口间互相切换</div> |
| 175 | +</td> |
| 176 | +</tr> |
| 177 | +<tr> |
| 178 | +<td> |
| 179 | + <div>w</div> |
| 180 | +</td> |
| 181 | +<td> |
| 182 | + <div>通过窗口列表切换窗口</div> |
| 183 | +</td> |
| 184 | +</tr> |
| 185 | +<tr> |
| 186 | +<td> |
| 187 | + <div>,</div> |
| 188 | +</td> |
| 189 | +<td> |
| 190 | + <div>重命名当前窗口;这样便于识别</div> |
| 191 | +</td> |
| 192 | +</tr> |
| 193 | +<tr> |
| 194 | +<td> |
| 195 | + <div>.</div> |
| 196 | +</td> |
| 197 | +<td> |
| 198 | + <div>修改当前窗口编号;相当于窗口重新排序</div> |
| 199 | +</td> |
| 200 | +</tr> |
| 201 | +<tr> |
| 202 | +<td> |
| 203 | + <div>f</div> |
| 204 | +</td> |
| 205 | +<td> |
| 206 | + <div>在所有窗口中查找指定文本</div> |
| 207 | +</td> |
| 208 | +</tr> |
| 209 | +<tr> |
| 210 | +<td rowspan="14" align="left" valign="center" width="0"> |
| 211 | + <div>面板操作</div> |
| 212 | +</td> |
| 213 | +<td> |
| 214 | + <div>”</div> |
| 215 | +</td> |
| 216 | +<td> |
| 217 | + <div>将当前面板平分为上下两块</div> |
| 218 | +</td> |
| 219 | +</tr> |
| 220 | +<tr> |
| 221 | +<td> |
| 222 | + <div>%</div> |
| 223 | +</td> |
| 224 | +<td> |
| 225 | + <div>将当前面板平分为左右两块</div> |
| 226 | +</td> |
| 227 | +</tr> |
| 228 | +<tr> |
| 229 | +<td> |
| 230 | + <div>x</div> |
| 231 | +</td> |
| 232 | +<td> |
| 233 | + <div>关闭当前面板</div> |
| 234 | +</td> |
| 235 | +</tr> |
| 236 | +<tr> |
| 237 | +<td> |
| 238 | + <div>!</div> |
| 239 | +</td> |
| 240 | +<td> |
| 241 | + <div>将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板</div> |
| 242 | +</td> |
| 243 | +</tr> |
| 244 | +<tr> |
| 245 | +<td> |
| 246 | + <div>Ctrl+方向键</div> |
| 247 | +</td> |
| 248 | +<td> |
| 249 | + <div>以1个单元格为单位移动边缘以调整当前面板大小</div> |
| 250 | +</td> |
| 251 | +</tr> |
| 252 | +<tr> |
| 253 | +<td> |
| 254 | + <div>Alt+方向键</div> |
| 255 | +</td> |
| 256 | +<td> |
| 257 | + <div>以5个单元格为单位移动边缘以调整当前面板大小</div> |
| 258 | +</td> |
| 259 | +</tr> |
| 260 | +<tr> |
| 261 | +<td> |
| 262 | + <div>Space</div> |
| 263 | +</td> |
| 264 | +<td> |
| 265 | + <div>在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled</div> |
| 266 | +</td> |
| 267 | +</tr> |
| 268 | +<tr> |
| 269 | +<td> |
| 270 | + <div>q</div> |
| 271 | +</td> |
| 272 | +<td> |
| 273 | + <div>显示面板编号</div> |
| 274 | +</td> |
| 275 | +</tr> |
| 276 | +<tr> |
| 277 | +<td> |
| 278 | + <div>o</div> |
| 279 | +</td> |
| 280 | +<td> |
| 281 | + <div>在当前窗口中选择下一面板</div> |
| 282 | +</td> |
| 283 | +</tr> |
| 284 | +<tr> |
| 285 | +<td> |
| 286 | + <div>方向键</div> |
| 287 | +</td> |
| 288 | +<td> |
| 289 | + <div>移动光标以选择面板</div> |
| 290 | +</td> |
| 291 | +</tr> |
| 292 | +<tr> |
| 293 | +<td> |
| 294 | + <div>{</div> |
| 295 | +</td> |
| 296 | +<td> |
| 297 | + <div>向前置换当前面板</div> |
| 298 | +</td> |
| 299 | +</tr> |
| 300 | +<tr> |
| 301 | +<td> |
| 302 | + <div>}</div> |
| 303 | +</td> |
| 304 | +<td> |
| 305 | + <div>向后置换当前面板</div> |
| 306 | +</td> |
| 307 | +</tr> |
| 308 | +<tr> |
| 309 | +<td> |
| 310 | + <div>Alt+o</div> |
| 311 | +</td> |
| 312 | +<td> |
| 313 | + <div>逆时针旋转当前窗口的面板</div> |
| 314 | +</td> |
| 315 | +</tr> |
| 316 | +<tr> |
| 317 | +<td> |
| 318 | + <div>Ctrl+o</div> |
| 319 | +</td> |
| 320 | +<td> |
| 321 | + <div>顺时针旋转当前窗口的面板</div> |
| 322 | +</td> |
| 323 | +</tr> |
| 324 | +</tbody> |
| 325 | +</table> |
| 326 | + |
| 327 | +1)进入tmux面板后,一定要先按ctrl+b,然后松开,再按其他的组合键才生效。 |
| 328 | +2)常用到的几个组合键: |
| 329 | + |
| 330 | +``` |
| 331 | +ctrl+b ? 显示快捷键帮助 |
| 332 | +ctrl+b 空格键 采用下一个内置布局,这个很有意思,在多屏时,用这个就会将多有屏幕竖着展示 |
| 333 | +ctrl+b ! 把当前窗口变为新窗口 |
| 334 | +ctrl+b " 模向分隔窗口 |
| 335 | +ctrl+b % 纵向分隔窗口 |
| 336 | +ctrl+b q 显示分隔窗口的编号 |
| 337 | +ctrl+b o 跳到下一个分隔窗口。多屏之间的切换 |
| 338 | +ctrl+b 上下键 上一个及下一个分隔窗口 |
| 339 | +ctrl+b C-方向键 调整分隔窗口大小 |
| 340 | +ctrl+b & 确认后退出当前tmux |
| 341 | +ctrl+b [ 复制模式,即将当前屏幕移到上一个的位置上,其他所有窗口都向前移动一个。 |
| 342 | +ctrl+b c 创建新窗口 |
| 343 | +ctrl+b n 选择下一个窗口 |
| 344 | +ctrl+b l 最后使用的窗口 |
| 345 | +ctrl+b p 选择前一个窗口 |
| 346 | +ctrl+b w 以菜单方式显示及选择窗口 |
| 347 | +ctrl+b s 以菜单方式显示和选择会话。这个常用到,可以选择进入哪个tmux |
| 348 | +ctrl+b t 显示时钟。然后按enter键后就会恢复到shell终端状态 |
| 349 | +ctrl+b d 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 |
| 350 | +``` |
| 351 | + |
| 352 | +## 参考资料 |
| 353 | + |
| 354 | +- tmux 官网下载地址:http://tmux.github.io/ |
0 commit comments