eric-macbook

前言

好久沒有打 blog 了 囧,第一篇先用 MacOS 新手筆記 來練筆吧 XD

在 2023.04.10 進公司之前我完全沒有使用過 MacOS,此篇記錄一位 MacOS 新手如何上手的心得還有推薦安裝的軟體。

推薦閱讀

推薦安裝

Terminal 系列

  • Homebrew: MacOS 的第三方套件管理工具,很多工具都能透過 brew 安裝 (包含 GUI app)
1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
1
brew cask install iterm2

目前我使用的 plugin 有這些

1
2
grep -E "^plugins" ~/.zshrc
plugins=(git aws kubectl z copypath asdf git-open zsh-autosuggestions)
  • nerd-fonts: 提供了很多酷酷的字體,美化 terminal。
1
2
brew tap homebrew/cask-fonts
brew install font-hack-nerd-font
1
2
3
4
brew install powerlevel10k
echo "source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc

p10k configure
1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
1
2
3
4
plugins=( 
    # other plugins...
    zsh-autosuggestions
)

如果要調整提示的顏色:

1
2
3
vim ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
# 替換調 fg=8 換成其他顏色 (0~255 / black, red, green, yellow, blue, magenta, cyan and white)
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8'
1
2
brew install zsh-syntax-highlighting
echo "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

MacOS 缺好多東西 QQ,連 sha256sum 都沒有。GNU coreutils command 列表

1
brew install coreutils

use-gnu-instead

▲ 安裝後會告訴我們有些 command 名稱相同造成衝突,如果想使用 GNU 的版本可以加上 g 前綴。例如 realpath -> grealpath。如果想用原本的名稱可以增加 $PATH 變數。(我自己偏好使用 alias 啦)

  • gnu-sed: GNU 版 sed,我熟悉的 sed

MacOS 內建的 sed 使用 sed -ie "s|abc|123|g" a.txt 的時候會被建立一個結尾帶 ’e’ 的備份檔案 (a.txte),在多個檔案處理場景中會很麻煩要多花時間刪除備份檔案,而且檔案是在 git repo 中不用擔心回不去。

sed

▲ MacOS 內建的 sed 會產生備份檔案。

解決方式是安裝 GNU 版本的 sed,使用 gsed 來取代原本的 sed

1
brew install gnu-sed

gsed

▲ GNU sed (gsed) 不會產生備份檔案,是我熟悉的 seddywang - sed

或者麻煩一點可以這樣

1
sed -i '' -e 's/foo/bar/g' test.txt

cygwin - sed search and replace creating new file - Stack Overflow

  • iproute2mac: MacOS 版的 iproute2,提供 ip 指令
1
brew install iproute2mac

Docker Desktop 在 MacOS 上面用起來很卡、很吃資源,所以我後來都使用 colima 取代 Docker Desktop 來提供 docker

1
brew install colima
1
colima start --memory 4 --cpu 4
1
2
3
brew install docker-compose
mkdir -p ~/.docker/cli-plugins
ln -sfn /usr/local/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose

Use Colima to Run Docker Containers on macOS – Small Sharp Software Tools

App 系列

stats

GitHub macOS system monitor in your menu bar

aidente-applealmond

圖片來源 AIDente 限制電池充電上限,為電池增加壽命。

外接 hub 在喚醒時可能會等 5~10 秒,很麻煩

keeping-you-awake

操作系列

wifi-option

▲ 對著上方工具列 Wi-Fi 圖示按下 + Option (Alt) 可以看 Wi-Fi 頻段。 身為一個阿宅看不到 Wi-Fi 詳細資訊真的很痛苦

如果同時有 Ethernet 與 Wi-Fi 連接,Network service 會決定 default gw 順序

1
networksetup -listnetworkserviceorder

re-order ref

1
networksetup -ordernetworkservices <service1> <service2> <...>

清除 DNS Cache

1
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

截圖

  1. 選取截圖到剪貼簿: Command + Ctrl + Shift +4
  2. 截圖到檔案: Command + Shift + 5

如果要變更截圖預設格式成 JPG

1
defaults write com.apple.screencapture type jpg

Eason 哥推薦 Xnip 比 Mac 內建還好用的免費截圖 App - 電腦王阿達

雜項與茶包射手

既不是推薦安裝,也不是操作技巧,就是一些雜項與茶包射手。

列出背景啟動項目指令 sfltool dumpbtm

我也不知道看 MDM Payload 要幹嘛

1
2
3
4
 MDM Payload UUIDs:

   1: 8Cxx619-xxx-456B-ABA7-09CxxxF43x
   2: 8C2xx619-xxx-456B-ABA7-09Cxxx0F43x

oh-my-zsh 開啟 kubectl 自動補齊功能

  1. zsh plugin 啟用 kubectl <= 理論上應該就有自動補齊功能了
  2. 加上
1
2
alias k="kubectl"
source <(kubectl completion zsh | sed 's/kubectl/k/g')

Fixing kubectl autocompletion for an alias in Zsh - Deferred Posts

Autocompletion for kubectl and aliases using oh-my-zsh · Thorsten Hans’ blog

iTerm 無法使用 Option + Arrow 問題

iterm-option-arrow

command line - iTerm - going one word backwards and forwards - Ask Different

參考資料