新遇到的神器--Tmux

又是一个之前从没听过的玩意,最近真的是疯狂长见识!之前三年明明都只是一个小前端,现在突然接触后端,看啥都新鲜,看啥都不会。前段时间项目提测,再测试环境的命令行里同时用了tmux,看的我一脸懵逼,赶紧请教了一下,然后百度了几个常用快捷键,算是知道咋回事儿了,今天周末,抓紧时间补一下,了解一波

参考资料:

作用

首先tmux是做啥的捏?

tmux(terminal multiplexer)是什么呢?它能让你轻松地在多个任务之间切换、使任务在后台运行并且能够在不同的终端中恢复之前的任务。

tmux主要的功能有两点:

  • 终端利用,可以在一个terminal开启多个shell的session,这样就不需要vim一个terminal,命令又要需要一个,其他服务还要再开一个了。
  • 断线保证任务在后台继续执行,以及当你上线后保证原来打开的多个窗口与断线之前完全一样。以后就不用再使用screen了

安装及配置

Mac下使用brew install tmux来安装。

配置:

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

// 新建文件 .tmux.conf 并编辑
vim ~/.tmux.conf

// 写入以下
# 开启鼠标模式
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

// 然后进入tmux
// 执行快捷键
ctrl+b (松手)// 即可生效

此时,使用快捷键ctrl+b (松手) % 分窗口之后,就可以使用鼠标来选则窗口了。

场景

我在工作中遇到的场景,是这样的:

通过ssh连接远程测试机时,我需要在测试机中同时执行前端的yarn start 和 后端node的yarn dev,但我进入前端目录执行之后,就没办法再退出来cd到后端目录了。这时候就需要tmux,相当于在测试机中创建多个: 会话(session)、窗口(window)、窗格(Pane),我可以在不用的窗口cd到不同的目录下,去执行相应的任务。同时我可以很方便的使用tmux来在任务之间切换。

基本应用

启动tmux

安装后在命令行输入tmux就启动了,看到只有一个窗口,窗口下方会有基本状态信息。
tmux的使用可以完全靠快捷键,快捷键以前缀快捷键+快捷键构成,默认的前缀(prefix)快捷键是ctrl-b,用法是按下Ctrl-b,放开后再按下相应的快键即可,例如查看tmux会话的快捷键是s,可以按下ctrl-b,放开再按s,即可查看当前的所有会话。

针对我的使用常见,其实只用了几个非常简单的命令:

// ssh连接测试机
ssh xxxxx

// 查看当前所有会话
tmux ls

// 启用新会话
tmux [new -s 会话名 -n 窗口名]

// 关闭会话
tmux kill-session -t 会话名

// 进入某一个会话
tmux at [-t 会话名]

// 在会话中进行了需要的操作后,退出会话,使用快捷键:
ctrl+b (松手) d

更多详细的快捷键,可以参考上边的参考资料哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章