写了个基于 MacOS + iTerm2 自动打开窗口执行命令的工具
大家好,我是秋风,今天要给大家带来的这个工具是我最近写的 一个 npm 工具。mmt 是基于 MacOS + iTerm2 ,目的主要是为了提高日常生活中的效率,接下来我带大家看看一些常用的一些场景。
场景1:单项目多仓库
不知道你是否遇到过这样的场景,当你的项目是拥有前后端两个仓库,你总是需要记住多个命令或者是多个目录,而且需要开启多个终端窗口。例如我开发「木及简历」的时候,就会有这样的困扰,明明是非常重复的动作,每次开发的时候却要输入 路径 + 启动命令,这些步骤的重复是完全没有必要的。
以上便是我开发 mmt 的第一个场景痛点,使用了 mmt 后,你便可以节约以上琐碎的流程,下面通过一个例子来说明:
你的前端项目路径:path/case1-front 启动命令: npm run start
你的后端项目路径: pathcase1-backend 启动命令: npm run dev
使用 mmt 声明:
> cd path/case1-front
> mmt add case1 start
> cd path/case1-backend
> mmt add case1 dev
在任意命令窗口运行
> mmt run case1
效果如下:
行云流水般丝滑,再也不用输入那些枯燥重复的命令了。
场景2:多项目多仓库
当你一个人维护多个技术栈的项目,启动命令总是容易搞混,使用 Vue 项目启动命令可能是 npm run serve, 而使用 React 项目却是 npm run start, 有些项目还可能是 npm run dev。使用 mmt 可以抹平这种差异,并且你无须记忆你的工程路径。
举个例子:
你的项目1: projec1-vue, 启动命令 npm run serve
你的项目1: projec2-react, 启动命令 npm run start
使用 mmt 声明:
> cd path/projec1-vue
> mmt add project1 serve
> cd path/projec2-react
> mmt add project2 start
在任意命令窗口
> mmt run project1
> mmt run project2
效果如下:
场景3:脚本别名
当你想要同步运行一些流程线的工作,你就可以使用 add-sync 方式,例如我的某个本地项目需要依赖两个容器环境 e8a47b8aed91 和 e0d433a26388 这个时候运行 mmt 将会自动执行命令。
> mmt add-sync project1-dep "docker restart e8a47b8aed91"
> mmt add-sync project1-dep "docker restart e0d433a26388"
在任意命令窗口,即可启动两个 docker 实例
> mmt run project1-dep
为了能够让脚本复用性更上一个层次,你还可以通过导出配置,分享给你的朋友。
以上就是 mmt 的基础介绍,更多功能可以查看 github地址: https://github.com/hua1995116/mmt
如果你觉得对你有帮助欢迎提 Star 呀。
工具好用,当然也要配上好的域名,特地买了一个比较符合这个工具定位的域名 mmt.run
写了个基于 MacOS + iTerm2 自动打开窗口执行命令的工具的更多相关文章
- ssh伪登陆执行远程主机脚本命令 C程序基于ssh passwordless执行远程主机命令及基于配置文件的验证伪登陆执行命令
1,基于有密码及免秘钥在远程主机上执行命令及脚本 ssh -T ip "CLI or shell.sh"; 2,C程序实现上述功能--基于password-less
- C#使用管理员权限打开cmd执行命令行
最近遇到个棘手的问题,服务器远程连不上,但是ftp可以,可能远程连接的服务挂了或者防火墙入站规则有点问题,想要重启,得找机房工作人员,还是挺麻烦的 想了想可以上传个执行cmd命令的东西,然后远程访问触 ...
- Eclipse自动打开实现类原型的工具
http://eclipse-tools.sourceforge.net/implementors/ I always use this implementors plugin to find all ...
- H5拖动火狐自动打开新标签
写在前面的话:<H5拖动火狐自动打开新标签>原因是为什么百度很多了我就不细说,本文章只说我自己的解决方法... 自定义数据里写个链接,如果火狐自动打开就跳到这个链接 这个页面就写一句话:关 ...
- 如何彻底禁止 macOS Monterey 自动更新,去除更新标记和通知
请访问原文链接:如何彻底禁止 macOS Monterey 自动更新,去除更新标记和通知,查看最新版.原创作品,转载请保留出处. 作者主页:www.sysin.org 随着 macOS Montere ...
- Python 一键拉取Git分支源码自动解析并执行SQL语句
基于Python实现自动拉取Git分支源码自动解析并执行SQL语句 by:授客 QQ:1033553122 1.代码用途 开发过程中,研发人员会提交SQL更新脚本到Git源码库,然后测试负责去拉取这些 ...
- MacOS常用命令行工具
转自:https://blog.csdn.net/u014102846/article/details/77964493 https://ohmyz.sh/ https://github.com/ro ...
- 基于node和npm的命令行工具——tive-cli
前端开发过程中经常会用到各种各样的脚手架工具.npm全局工具包等命令行工具,如:Vue脚手架@vue/cli.React脚手架create-react-app.node进程守卫工具pm2.本地静态服务 ...
- 根据python上下文管理,写一个在读文件内容前后自动打开关闭文件的程序
利用上下文管理实现读f文件前后自动打开关闭文件#在本目录创建f文件,内容写monkey代码如下 import contextlib #导入模块1 @contextlib.contextmanager# ...
随机推荐
- python基本数据类型介绍
数据类型 首先知道什么是数据类型 针对不同的数据类型采用不同的处理方法 --目录-- 一.数据类型之整型 二.数据类型之浮点型 三.数据类型之字串符 四.数据之列表 一.数据类型之整型 1.其实呢就是 ...
- Linux磁盘之inode
什么是 inode ? 文件储存在硬盘上,硬盘的最小存储单位叫作"扇区"(Sector).每一个扇区储存512字节(至关于0.5KB).操作系统读取硬盘的时候,不会一个个扇区地读取 ...
- 【二进制枚举】【CF Div2 C】
2022.3.4 https://codeforces.com/contest/1646/problem/C 题意: 给一个数, 问可以最少有几个以下的数构成: 1.x! 2.2^x(x在每次都是任 ...
- 通过命令验证docker容器相当一个轻量级的Linux运行环境,且每个容器内都有一个属于自己的文件系统,容器之间相互隔离
一.docker的三个重要概念 1.镜像:打包项目带上环境,即镜像 Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包含了一些为运行时准备的配置参数.镜像 ...
- ServletContext类 (共享数据+获取初始化的参数+请求转发+读取资源文件)
ServletContext对象 web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的 web应用: 作用 1.共享数据 (一般用sessio ...
- [AcWing 770] 单词替换
点击查看代码 #include<iostream> #include<sstream> using namespace std; string s, a ,b; int mai ...
- Java汽车租赁系统[源码+数据库]
系统名称 Java汽车租赁系统 (源码在文末) 系统概要 汽车租赁系统总共分为两个大的模块,分别是系统模块和业务模块.其中系统模块和业务模块底下又有其子模块. 功能模块 一.业务模块 1.客户管理 ...
- FreeRTOS --(3)内存管理 heap2
在<FreeRTOS --(2)内存管理 heap1>知道 heap 1 的内存管理其实只是简单的实现了内存对齐的分配策略,heap 2 的实现策略相比 heap 1 稍微复杂一点,不仅仅 ...
- [Istio是什么?] 还不知道你就out了,一文40分钟快速理解
@ 目录 前言 Istio是什么? 服务网格是什么? 应用场景 为什么使用Istio? 流量管理介绍 istio架构 Envoy Sidecar Istiod 虚拟服务(VirtualService) ...
- Linux vs Unix - Linux与Unix到底有什么不同?
来自:Linux迷链接:https://www.linuxmi.com/linux-vs-unix.html Linux和Unix这两个术语可以互换地用来指同一操作系统.这在很大程度上是由于他们惊人的 ...