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

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

off999 2025-03-29 20:51 34 浏览 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系统汉化)

要下载犀牛7grasshopper汉化包,首先你需要从官方网站或可靠的第三方网站上找到可信赖的下载链接。然后,点击链接进行下载,并确保你的电脑设备有足够的存储空间来安装这个汉化包。安装完成后,打开犀牛...

ghost系统备份与恢复的详细步骤

还原系统步骤。1、电脑开机进入ghost,这里注意如果是通过U盘启动盘进入,注意先进入bios把第一启动项设置为当前的U盘;如果是通过自身电脑硬盘启动,建议先把ghost系统安装好。2、点击确定,然后...

photoshop官方下载电脑版(ps软件官方下载中文版电脑版)

鼠标右键点击压缩包,点击解压到文件夹按钮。打开文件夹,点击安装文件。弹出安装对话框,点击默认位置。更改安装路径,点击确认按钮。等待安装完成,双击打开ps快捷方式即可。目前在电脑上免费下载PS是不太可能...

2025最火电脑壁纸(2025最火电脑壁纸全屏)

要更改MacBookPro2022的壁纸,可以按照以下步骤操作:首先,点击桌面上的空白区域,然后选择“更改桌面背景”选项。接着,从预设的壁纸中选择一个或者点击“+”号添加自己的图片。如果需要更改壁...

安装系统安装包(系统安装包里的安装文件在哪)

oppocoloros13具体的下载方法如下,第一步,手机打开OPPO官方网站服务中心,登录手机账号。第二步,找到coloroS13升级包,点击安全下载,将coloroS13系统升级软件包...

u盘2t为什么才30元(为什么u盘128g那么便宜)

因为它是假的!之前我买了一个,说什么双十一搞活动,256G的U盘,花了30多元都是假的!楼主描述的这个情况百分之九十九是假的U盘!右击U盘,然后点“属性”,看到的可能是2T,但实际存储量却远没有2T,...

笔记本cpu90度正常吗(笔记本cpu 90多度)

如果运行大型游戏的话,还算正常。如果只是开个小游戏那就有点问题了。只要低于Intel原厂规范温度(105或100度),都不会影响产品寿命,CPU本身皆有保护机制,当核心超过设定的调节温度时,将会降...

win10家庭版系统官网(windows10家庭版官网)

微软官网下载的WIN10系统需要制作成U盘安装盘才能安装。也可以直接在微软官网制作U盘安装盘。微软官网只提供原版(也就是纯净版的)系统的下载,需要用户自行永久激活后才是正版的。如果不是永...

win7系统语言包(w7语言包在哪里)

1.单击桌面左下角的开始菜单,打开“控制面板”。2.在“控制面板”中找到“区域和语言”选项,点击该选项。3.弹出“区域和语言”属性对话框,切换到“管理选项”。4.点击“更改系统区域设置”...

照片恢复软件免费(照片恢复软件免费版)

苹果照片恢复软件是一款专业的免费的数码照片恢复软件,苹果照片恢复软件将成为你恢复丢失照片的最佳助手,它内核采用多种JPEG开发规范进行精确查找,支持多种品牌相机的拍摄格式。有极快的速度,可快速恢复被误...

autocad2012产品密钥(cad2012的产品密钥是什么)

CAD2012产品密钥和序列号序列号:400-45454545钥匙:651D1序列号:356-72378422钥匙:001D1序列号:400-45454545钥匙:001D1序列号:666-6969...

软件误删怎么找回来(软件删掉怎么找回)
  • 软件误删怎么找回来(软件删掉怎么找回)
  • 软件误删怎么找回来(软件删掉怎么找回)
  • 软件误删怎么找回来(软件删掉怎么找回)
  • 软件误删怎么找回来(软件删掉怎么找回)
桌面语言栏不见了怎么办(桌面语言栏不见了怎么办呢)

如果您的语言栏在某个应用程序或操作系统中消失了,您可以尝试以下方法来恢复它。首先,您可以检查操作系统的设置,查看语言和区域选项是否正确设置。如果设置正确,但语言栏仍然不可见,您可以尝试重新启动计算机,...

怎么装win98(怎么装win7系统教程)

如何安装windows98  一、具体安装步骤  备份好重要文件之后,就可以安装windows98了。  第一步:启动安装程序。  用户如果原来已安装了windows95/97/98,现在拟对其进行升...

u盘写保护无法格式化怎么解除
  • u盘写保护无法格式化怎么解除
  • u盘写保护无法格式化怎么解除
  • u盘写保护无法格式化怎么解除
  • u盘写保护无法格式化怎么解除

取消回复欢迎 发表评论: