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

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

off999 2025-03-29 20:51 40 浏览 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 就可以了,非常方便。

结尾

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

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

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: