百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

macOS 上如何写自定义命令行工具?

off999 2025-03-29 20:51 29 浏览 0 评论

大家好,我是前端西瓜哥,今天来说说怎么在 macOS 上写自定义命令行工具。

苹果的 masOS 系统的底层核心是 Darwin 系统。Darwin 是类 Unix 系统,所以我们可以在 masOS 上,像 Linux 一样,执行命令行工具。

我们通常通过第三方安装的命令行工具,比如 node、npm、nginx 等,这很方便。

但,有时候我们想运行自己编写的命令行工具,怎么做呢?

在这之前,我们先了解一些比较基本的恶概念

Shell

对于类 Unix 系统,它有一个 shell 的概念。

Shell 是命令行的输入界面,用户可以在上面输入命令去执行任务。因为它是操作系统底层的一层封装,因此得名为 Shell(壳)。

Shell 本身也是脚本语言,在能运行一些命令行工具的同时,也能进行一些判断、循环之类的逻辑。

Shell 有各种实现,比如最常用的 Bash,它是 Linux 和旧版本的 macOS 的默认版本。

目前 macOS 默认的 Shell 换成了 zsh。zsh 配置比较复杂,我推荐安装 Oh My Zsh,会让你的 zsh 更好用。

脚本保存位置

Shell 怎么知道可以执行的命令行工具,也就是脚本的放在哪里呢?

答案是它会找全局变量 PATH 指定的目录,找到匹配的文件去执行。

我们执行 echo $PATH 就能看到有哪些目录:

$ echo $PATH
/Users/watermelon/.nvm/versions/node/v18.8.0/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin

目录是有多个的,用冒号分隔。会按顺序查询每个目录下的文件,直到找到一个同名的执行它,然后结束。

如果你想要知道某个命令的位置,可以使用 which 命令:

$ which node
/Users/watermelon/.nvm/versions/node/v18.8.0/bin/node

现在我们想写自己的自定义脚本,那么就需要找到一个目录放这些脚本。

我的做法是在用户家目录下创建一个 bin 目录,也就是路径位置 ~/bin

# 创建 bin 目录
mkdir ~/bin

然后给 PATH 变量新增一个路径,我们需要在 ~/.zshrc 文件加上:

export PATH=~/bin:$PATH

这样,每次打开终端时,PATH 路径都会执行 .zshrc 文件,然后给 PATH 变量加上 ~/bin 路径。

自定义脚本

然后我们就可以在 bin 目录下写自己的脚本。

你可以写名为 hello 的 sh 脚本:

#!/bin/sh
echo Hello!

也可以写一个名为 hi 的 nodejs 脚本:

#!/usr/bin/env node
console.log('Hi!')

我们通过第一行带有 #! (称为 shebang)的注释来指定编译器。然后下面的几行就是对应语言的脚本。

然后记得给这些脚本的属性设置为可执行,否则会报权限否认的错误。

chmod u+x hello
chmod u+x hi

看看效果:

下面就可以根据自己需要做写一些脚本了。

想要在 VS Code 下集成的终端打开独立的 iterm2 窗口,我们的一个方式是:

open . -a iTerm .

很长,我们可以写一个名为 iterm 的脚本:

open . -a iTerm ${1:-.}

${1:-.} 代表取第一个参数,如果没有,就实用默认值 .。另外把第一行的注释也省略掉了,默认会作为 shell 脚本执行。

这样我执行 iterm 就能打开独立 iterm2 窗口

或者你可以用 github 做一些文章备份,我写了一个 artcle-push 脚本:

cd ~/Documents/articles
git add .
arg1=${1:-update}
git commit -m $arg1
git push

该脚本可以某个目录的文件进行 commit,然后提交到 Github,且支持指定 commit 信息。

当你写了新的内容,想备份的时候,输入 artcle-push 就可以了,非常方便。

结尾

想要提高效率吗?那你需要做自动化或半自动化,把一些重复的工作交给计算机,赶紧来写你的自定义脚本吧。

我是前端西瓜哥,欢迎关注我,学习更多前端知识。

相关推荐

win7打印机共享设置(详细图文步骤)
  • win7打印机共享设置(详细图文步骤)
  • win7打印机共享设置(详细图文步骤)
  • win7打印机共享设置(详细图文步骤)
  • win7打印机共享设置(详细图文步骤)
键盘快捷键(键盘快捷键是哪个)

电脑键盘快捷键大全:Ctrl+1,2,3... 功能:切换到从左边数起第1,2,3...个标签Ctrl+A 功能:全部选中当前页面内容Ctrl+C 功能:复制当前选中内容Ctrl+D 功能:打开“添加...

宏基acer官网商城(宏基官方商城)

宏碁本本底部有个序列号标签,不是粉色的那个,粉色的是系统的序列号,白色的是本本的出厂序列号,上宏碁官网查查你的序列号就知道真假了。在盖子的后面就可以查询到序列号,或者是去网上查询宏碁笔记本在官网下...

网盘在哪里打开(华为网盘在哪里打开)

给你的是一个网盘地址吧,直接把这个地址放到浏览器地址栏就好了,如果有提取码,他会提示你输入提取码的。一般都是在网上找到百度云链接,然后把文件保存在自己的百度网盘文件夹里面的。打开百度网盘app,...

win10系统安全模式怎么进入(win10安全模式如何进入)
  • win10系统安全模式怎么进入(win10安全模式如何进入)
  • win10系统安全模式怎么进入(win10安全模式如何进入)
  • win10系统安全模式怎么进入(win10安全模式如何进入)
  • win10系统安全模式怎么进入(win10安全模式如何进入)
win7sp1专业版(win7专业版vl)

Win7系统SP1是系统发布后第一个SP包x64是64位操作系统。Windows7指的是微软公司的Windows7操作系统ultimate指的是旗舰版(with表示伴随,说明这是提供商所提供...

手写输入法手写板怎么设置(手写输入法手写板怎么设置 iphone)

手写输入法设置方法:1、打开手机至桌面主页,保持手机处于工作状态;  2、在手机桌面主页列表找到设置,点击打开并进入设置主界面;  3、在设置主界面找到系统设置选项,点击打开并进入系统设置主界面;  ...

推荐杀毒软件(下载杀毒软件最新版)
推荐杀毒软件(下载杀毒软件最新版)

好的杀毒软件有360杀毒,金山毒霸,AVG杀毒等等。1,360杀毒,品牌介绍:360安全卫士品牌是一款由奇虎360公司推出的功能强、效果好、受用户欢迎的安全杀毒软件。360安全卫士拥有查杀木马、清理插件、修复漏洞、电脑体检、电脑救援、保护隐...

2025-11-12 08:51 off999

百度云盘官网(百度云盘官网下载)

网盘在手机上面仅仅是一个图标,他是不占用手机硬盘的,当然,如果你从网盘上下载了文件到本地,下载的文件就会占用手机的硬盘空间。要找到这个文件,可以通过文件管理器来进行查找,也可以通过路径的方式来查找,但...

路由器设置管理系统(路由器设置管理员密码怎么设置)
路由器设置管理系统(路由器设置管理员密码怎么设置)

电脑端:把华为路由器接通电源,并开启WIFI,如果你使用电脑PC端,请使用网线连接路由器;成功连接到路由器之后,打开电脑浏览器,在浏览器中输入IP地址:192.168.3.1即可进入华为路由器管理界面;进入我要上网页面。在上网方式下拉框中,...

2025-11-12 07:51 off999

win10家庭版密钥在哪里看(windows10家庭版密钥在哪里)

要查看Windows10系统的激活密钥,请按照以下步骤操作: 1.点击“开始”菜单,然后选择“设置”(齿轮图标)。 2.在“设置”窗口中,选择“更新和安全”。 ...

两个wifi路由器怎么连接(两个wifi路由器设置方法)

无线路由器再连接一个无线路由器的设置方法如下:一、主路由器设置方法:先将网线(总线)插在无线路由器的WAN口,用一条网线一头插入无线路由器的任意LAN口一头连接电脑网卡,开启路由器的电源。电脑打开浏览...

windows7的安装过程(windows7安装步骤有哪些)

安装教程注意事项:1、本系统可以直接安装,不需要制作U盘启动盘,适合能正常开机的电脑。2、安装系统后C盘(包括桌面)数据会丢失,重要的东西请自行备份。3、此安装方法只适用于当前系统为XP、Win7、W...

惠普打印机插件手机版(惠普打印插件app)

您好,感谢您选择惠普产品。不是所有的打印机都可以实现手机打印功能的。一般来说支持ariprint的打印机,并且手机也有该功能,才能实现打印功能。如果您不需要实现打印功能,那么这个插件对您来说可能用处不...

电脑热点怎么禁止别人连接(怎么让电脑的热点不被关闭)

方法/步骤1/7首先,在我们的屏幕上找到“设置”。2/7点击进入设置之后,正数第三位就是个人热点。3/7在个人热点中,我们可以设置热点密码,开启关闭热点。4/7排名第三的是连接管理,可以设置允许一个至...

取消回复欢迎 发表评论: