之前讲了如何安装 Tmux,这篇文章讲讲如何使用 Tmux。其实工具的使用都是很简单,最终是看你如何使用这个工具,才能发挥出工具最大的作用。
在讲如何使用 Tmux 之前,我们需要先熟悉它的几个概念。
会话:会话的概念很好理解。我们一台服务器正在那边运行着,我们拿终端工具如:XShell、SecureCRT 等去连接的时候,每新建一个连接,就是一个新的会话。使用 Tmux 新建会话的时候,也是一样,一个新的会话就表示一个新的连接。
窗口:窗口的概念,可以类比于 Windows 里面的窗口的概念。之前我们连服务器的时候,终端工具每次连接只有一个界面,当我们需要同时操作多个过程的时候,我们就需要建立新的连接。这样很不方便。Tmux 里面的窗口的概念,就可以让我们在一个会话里有多个界面,就不需要去建立的一个会话。
面板:面板的概念的话,是用于对界面的布局而言的。就是将一个界面划分为多个不同的区域,每个区域我们称之为一个面板。
简单来说就是,一个会话里面可以有多个窗口,一个窗口里面可以有多个面板。
Tmux 可以有两种使用方式,一种是命令行的方式,一种是快捷键的方式。前者的话不需要怎么记忆,后者的话效率更高。我觉得还是命令行入门,先熟悉这个工具的作用,之后将常用的几个功能的快捷键记下来,多使用,多熟练。
$ tmux new -s [session_name] // 创建一个会话
创建完会话之后,会自动进入这个会话之内。并且会话默认帮你创建好一个窗口。
$ tmux list-sessions // 显示所有会话,也可以简写成 tmux ls
当前的话,我一共有一个会话,并且会话的名称为: session1 。
$ tmux detach // 退出当前的会话,返回 shell 界面 $ tmux kill-session -t [session_name ] // 结束一个会话 $ tmux attach -t [session_name] // 回到某一个会话当中 $ tmux switch -t [session_name] // 切换到某一会话当中 $ tmux kill-server // 关闭所有会话
讲完会话的操作,我们来讲讲窗口的操作。
$ tmux new-window [-n window_name] // 创建一个新的窗口,可以指定新的窗口的名字也可以不指定
这边,我新建了一个名为 window1 的窗口,并且 Tmux 自动帮我切换到了这个窗口, *
标记当前正在使用的窗口,一个窗口默认包含一个面板。
$ tmux rename-window [new_window_name] // 重命名当前窗口的名字
$ tmux list-windows // 显示当前会话中所有的窗口
$ tmux kill-window -t [window_name | window_index] // 关闭一个窗口 $ tmux select-window -t [window_index] // 切换窗口
$ tmux split-window //将一个面板垂直切成两个面板 $ tmux split-window -h // 将一个面板水平切成两个面板
可以看到图片中的话,我将一个窗口切成了三部分区域,每一个区域都是一个面板。
$ tmux swap-pane -[UDRL] // 选择 [ 上下左右 ] 的面板交换 $ tmux select-pane -[UDRL] // 选择 [ 上下左右 ] 的面板进行切换
以上的话就是同过命令行的方式使用 Tmux,使用命令行的方式,可以简单了解一下 Tmux 这个工具提供的一些功能。接下来就是进阶的,使用快捷键的方式操作 Tmux。
Tmux 快捷键的话需要先按下前缀键,之后再按快捷键才会有效果。 Tmux 默认的前缀键是 Ctrl + b
。我就只简单罗列一下快捷键,实际效果的话,使用一下就知道了,上面使用命令行能达到的功能,都能找到相应的快捷键。
Tmux 还有一个配置文件,可以根据自己的习惯将快捷键改成自己喜欢的键。
? 列出所有快捷键;按q返回 d 脱离当前会话,可暂时返回Shell界面 s 选择并切换会话;在同时开启了多个会话时使用 D 选择要脱离的会话;在同时开启了多个会话时使用 : 进入命令行模式;此时可输入支持的命令,例如 kill-server 关闭所有tmux会话 [ 复制模式,光标移动到复制内容位置,空格键开始,方向键选择复制,回车确认,q/Esc退出 ] 进入粘贴模式,粘贴之前复制的内容,按q/Esc退出 ~ 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息 t 显示当前的时间 ctrl + z 挂起当前会话
c 创建新窗口 & 关闭当前窗口 [0-9] 数字键切换到指定窗口 p 切换至上一窗口 n 切换至下一窗口 l 前后窗口间互相切换 w 通过窗口列表切换窗口 , 重命名当前窗口,便于识别 . 修改当前窗口编号,相当于重新排序 f 在所有窗口中查找关键词,便于窗口多了切换
" 将当前面板上下分屏 % 将当前面板左右分屏 x 关闭当前分屏 ! 将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板 ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小 alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小 q 显示面板编号 o 选择当前窗口中下一个面板 方向键 移动光标选择对应面板 { 向前置换当前面板 } 向后置换当前面板 alt+o 逆时针旋转当前窗口的面板 ctrl+o 顺时针旋转当前窗口的面板 z 最大化当前所在面板 page up 向上滚动屏幕,q 退出 page down 向下滚动屏幕,q 退出
说到底 Tmux 也就是这么一个工具,功能也就这么多,但是将 Tmux 和 Vim 结合起来的时候,效果就不一样了,在命令行下开发,整个逼格一下就上去了。装逼使人进步。