成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

macOS 上如何寫自定義命令行工具?

開發 開發工具
蘋果的 masOS 系統的底層核心是 Darwin 系統。Darwin 是類 Unix 系統,所以我們可以在 masOS 上,像 Linux 一樣,執行命令行工具。我們通常通過第三方安裝的命令行工具,比如 node、npm、nginx 等,這很方便。

大家好,我是前端西瓜哥,今天來說說怎么在 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。

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 就可以了,非常方便。

結尾

想要提高效率嗎?那你需要做自動化或半自動化,把一些重復的工作交給計算機,趕緊來寫你的自定義腳本吧。

責任編輯:姜華 來源: 前端西瓜哥
相關推薦

2010-11-16 13:21:08

Oracle命令行

2018-07-12 16:22:45

Linux命令行文本顏色

2022-11-18 12:47:51

LinuxAWS命令行工具

2020-12-10 16:16:08

工具代碼開發

2020-12-11 06:44:16

命令行工具開發

2023-03-08 15:38:56

Linux命令dict

2023-08-12 11:40:11

命令行生存

2018-04-25 10:46:05

Linux命令行日歷

2023-06-09 07:45:29

Kuberneteskubectl

2018-03-29 15:58:55

Linux命令行編輯器

2010-11-24 17:12:17

MySQL命令行

2013-12-09 14:29:13

OpenStack命令行工具API

2011-01-18 19:11:26

Postfix命令行

2021-12-06 11:38:17

命令Glances工具

2021-07-15 13:25:43

LinuxPDF

2014-04-16 10:44:56

OpenStack命令行工具虛擬機

2016-03-29 11:03:30

DISM命令Windows 10

2013-11-15 09:43:15

JDK工具

2018-05-04 09:15:35

PythonPlumbum命令行

2019-08-27 10:32:01

Linux操作系統Windows
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九亚洲 | 国产精品色综合 | 91视频大全 | 国产精品亚洲综合 | 九九在线视频 | 米奇狠狠鲁 | 国产色网 | 精品久久久999 | 欧美日韩在线不卡 | 久久日本 | 国产我和子的乱视频网站 | 91精品在线播放 | 国产精品日韩 | 久久亚洲高清 | 国产精品色婷婷久久58 | 午夜网| 日韩一区在线播放 | 欧美一区二区大片 | 亚洲乱码一区二区三区在线观看 | 欧美视频一区二区三区 | 亚洲成网 | 精品一区二区三区四区在线 | 欧美一区二区三区在线观看视频 | 国产视频一二三区 | 一区二区三区国产 | 丁香婷婷久久久综合精品国产 | 国产美女精品视频 | 成人在线视频网址 | 午夜精品久久久久久久久久久久久 | 免费一区 | 成人综合视频在线观看 | 欧美在线视频网 | 成人午夜免费福利视频 | 91看片官网 | 成人免费看黄 | 91久久精品国产91久久 | 在线欧美一区 | 中文字幕在线二区 | 久久久精品一区 | 久草视频观看 | 丁香久久 |