,大家好,我是前端西瓜哥,今天来说说怎么在 macOS 上写自定义命令行工具。,苹果的 masOS 系统的底层核心是 Darwin 系统。Darwin 是类 Unix 系统,所以我们可以在 masOS 上,像 Linux 一样,执行命令行工具。,我们通常通过第三方安装的命令行工具,比如 node、npm、nginx 等,这很方便。,但,有时候我们想运行自己编写的命令行工具,怎么做呢?,在这之前,我们先了解一些比较基本的恶概念,对于类 Unix 系统,它有一个 shell 的概念。,Shell 是命令行的输入界面,用户可以在上面输入命令去执行任务。因为它是操作系统底层的一层封装,因此得名为 Shell(壳)。,Shell 本身也是脚本语言,在能运行一些命令行工具的同时,也能进行一些判断、循环之类的逻辑。,Shell 有各种实现,比如最常用的 Bash,它是 Linux 和旧版本的 macOS 的默认版本。,目前 macOS 默认的 Shell 换成了 zsh。zsh 配置比较复杂,我推荐安装 Oh My Zsh,会让你的 zsh 更好用。,Shell 怎么知道可以执行的命令行工具,也就是脚本的放在哪里呢?,答案是它会找全局变量 PATH 指定的目录,找到匹配的文件去执行。,我们执行 echo $PATH 就能看到有哪些目录:,目录是有多个的,用冒号分隔。会按顺序查询每个目录下的文件,直到找到一个同名的执行它,然后结束。,如果你想要知道某个命令的位置,可以使用 which 命令:,现在我们想写自己的自定义脚本,那么就需要找到一个目录放这些脚本。,我的做法是在用户家目录下创建一个 bin 目录,也就是路径位置 ~/bin。,然后给 PATH 变量新增一个路径,我们需要在 ~/.zshrc 文件加上:,这样,每次打开终端时,PATH 路径都会执行 .zshrc 文件,然后给 PATH 变量加上 ~/bin 路径。,然后我们就可以在 bin 目录下写自己的脚本。,你可以写名为 hello 的 sh 脚本:,也可以写一个名为 hi 的 nodejs 脚本:,我们通过第一行带有 #! (称为 shebang)的注释来指定编译器。然后下面的几行就是对应语言的脚本。,然后记得给这些脚本的属性设置为可执行,否则会报权限否认的错误。,看看效果:,,下面就可以根据自己需要做写一些脚本了。,想要在 VS Code 下集成的终端打开独立的 iterm2 窗口,我们的一个方式是:,很长,我们可以写一个名为 iterm 的脚本:,${1:-.} 代表取第一个参数,如果没有,就实用默认值 .。另外把第一行的注释也省略掉了,默认会作为 shell 脚本执行。,这样我执行 iterm 就能打开独立 iterm2 窗口。,或者你可以用 github 做一些文章备份,我写了一个 artcle-push 脚本:,该脚本可以某个目录的文件进行 commit,然后提交到 Github,且支持指定 commit 信息。,当你写了新的内容,想备份的时候,输入 artcle-push 就可以了,非常方便。,想要提高效率吗?那你需要做自动化或半自动化,把一些重复的工作交给计算机,赶紧来写你的自定义脚本吧。
© 版权声明
文章版权归作者所有,未经允许请勿转载。