Mac 【Mac】清除dns快取     MACOS VERSION COMMAND macOS 12 (Monterey) sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder macOS 11 (Big Sur) sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder macOS 10.15 (Catalina) sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder macOS 10.14 (Mojave) sudo killall -HUP mDNSResponder macOS 10.13 (High Sierra) sudo killall -HUP mDNSResponder macOS 10.12 (Sierra) sudo killall -HUP mDNSResponder OS X 10.11 (El Capitan) sudo killall -HUP mDNSResponder OS X 10.10 (Yosemite) sudo discoveryutil udnsflushcaches OS X 10.9 (Mavericks) sudo killall -HUP mDNSResponder OS X 10.8 (Mountain Lion) sudo killall -HUP mDNSResponder Mac OS X 10.7 (Lion) sudo killall -HUP mDNSResponder Mac OS X 10.6 (Snow Leopard) sudo dscacheutil -flushcache Mac OS X 10.5 (Leopard) sudo lookupd -flushcache Mac OS X 10.4 (Tiger) lookupd -flushcache 【Mac】brew 切換php版本 brew 安裝 特定 php 版本 #brew install php@{php version} brew install php@7.3 brew 切換 php 版本 查詢目前版本 #-v 查詢版本 php -v PHP 7.3.33 (cli) (built: Nov 24 2021 13:40:29) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.33, Copyright (c) 1999-2018, by Zend Technologies 切換版本 # 刪除php7.3 (連結,非相關檔案) brew unlink php@7.3 # 連結php7.4 brew link php@7.4 如果有安裝zsh 要編輯.zshrc #vim .zshrc export PATH=/usr/local/opt/php@7.4/bin:$PATH export PATH=/usr/local/opt/php@7.4/sbin:$PATH 【Quicktime】影片合併分割 超簡單!在 Mac 電腦裁切、分割、合併多段影片(Quicktime) – 重灌狂人 (briian.com) 【Mac】保持不休眠語法 終端機執行 caffeinate,直到中斷(Ctrl + c)之前不會休眠 caffeinate   #-t 秒數 保持喚醒時間 caffeinate -t 3600   【 Mac】安裝netdata $ brew update $ brew install netdata $ brew services start netdata # prometheus 格式 http://10.80.84.9:19999/api/v1/allmetrics?format=prometheus   【zsh】如何設定快捷鍵 編輯登入執行檔 vim ~/.zshrc # 加上你要設定的alias alias ll="ls -alF" 重新載入或是關掉終端機再開 . ~/.zshrc # 或是 source ~/.zshrc 【Mac】設定路由 添加路由 要添加一個新的靜態路由,你可以使用以下命令: sudo route -n add -net [目標網段] [網關IP] [目標網段]:你要添加的路由的目標網段。例如, 192.168.1.0/24。 [網關IP]:通往該目標網段的網關 IP 地址。 示例: sudo route -n add -net 192.168.1.0/24 192.168.1.1 這會將到達  192.168.1.0/24 的流量路由到網關  192.168.1.1。 刪除路由 要刪除一個已存在的路由,你可以使用以下命令: sudo route -n delete -net [目標網段] 示例: sudo route -n delete -net 192.168.1.0/24 這會刪除到達  192.168.1.0/24 的路由。 查看路由表 要查看當前的路由表,你可以使用: netstat -nr 或者 route -n get default 這會列出當前所有的路由信息,包括網關、目標網段和路由標誌。 注意事項 使用  sudo 是必要的,因為更改網絡配置需要管理員權限。 添加的靜態路由通常不會在重啟後保留。如果需要持久化的路由設置,通常需要編輯網絡配置文件或使用網絡管理工具。 小心配置路由,以避免網絡連接問題。 【Mac】使用自簽憑證 產生憑證 在要放置自簽憑證資料夾 openssl req -x509 -out localhost.crt -keyout localhost.key -days 365 -newkey rsa:2048 -nodes -sha256 -subj '/CN=localhost' -extensions EXT -config <( printf "[dn] \nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth") openssl req -x509 -out localhost.crt -keyout localhost.key -days 365 -newkey rsa:2048 -nodes -sha256 -subj '/CN=localhost' -extensions EXT -config <( printf "[dn] \nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth") 產生憑證檔跟key localhost.crt localhost.key 你可以使用 macOS 的 Keychain Access(鑰匙圈存取) 工具將 localhost.crt 憑證加入系統的信任憑證清單中。以下是詳細步驟: 【方法一】用 Terminal 安裝憑證到「系統」鑰匙圈 sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain localhost.crt 參數說明: -d:代表這是一個用來信任的憑證(不是用來簽署的憑證)。 -r trustRoot:將憑證標記為信任根(Trust Root)。 -k /Library/Keychains/System.keychain:安裝到系統層級的鑰匙圈(需要 sudo 權限)。 localhost.crt:你生成的憑證檔案。 【方法二】手動用 GUI 加入(若你想看圖形介面) 開啟 「鑰匙圈存取」 ( Keychain Access) 選擇左上角「系統」鑰匙圈 拖曳 localhost.crt 到右邊的憑證清單中 右鍵點選剛剛新增的 localhost 憑證 → 點選「取得資訊」 展開「信任」區塊 將「使用此憑證時」設為「永遠信任」 關閉視窗時,系統會要求你輸入管理員密碼以儲存變更 🧪 驗證是否已信任憑證 你可以使用以下方式確認憑證是否信任: security verify-cert -c localhost.crt 或是直接在瀏覽器打開 https://localhost,若沒有「不受信任」或「警告」的訊息,就代表成功。   【Mac】固定網卡mac 隨機化 MAC (Private Address, Random MAC) 從 macOS Big Sur 開始,Wi-Fi 預設會啟用 隨機 MAC 功能,連接某些 SSID 時,系統會產生一個虛擬的 MAC,而不是用真實硬體的 MAC。 目的:避免被網路追蹤。 你會看到同一台 Mac 連不同 Wi-Fi,MAC 會不一樣。   【Mac】指令開關wifi - lan   vim ~/.zshrc # networksetup -listallhardwareports 查詢介面 export ETH_IF="en0" # 實體網卡 export WIFI_IF="en1" # Wi-Fi net_to_wifi() { sudo ifconfig "$ETH_IF" down sudo networksetup -setairportpower "$WIFI_IF" on sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder } net_to_lan() { sudo ifconfig "$ETH_IF" up sudo networksetup -setairportpower "$WIFI_IF" off sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder } alias towifi='net_to_wifi' alias tolan='net_to_lan' source ./zshrc 【Mac】查詢dns scutil --dns 在 mac 上要看「目前正在用哪幾個 DNS」,最準的是看系統實際套用到每個網路介面的設定(Wi-Fi / 有線可能不同)。你可以用下面幾種方式: 1) GUI 方式(最直覺) 系統設定 → 網路 選你正在用的介面(例如 Wi-Fi 或 乙太網路) 點 詳細資訊 / 進階 → DNS 你會看到 DNS 伺服器清單(目前套用的) 這裡顯示的是你手動填的 + DHCP 下發的(視版本介面不同) 2) CLI 方式(最準,直接看目前介面) 看整台 Mac 所有網路服務的 DNS(推薦) scutil --dns 你會看到多組 resolver #,裡面有 nameserver[0] : x.x.x.x 通常 優先看 order 最小、以及 if_index 對應你正在用的介面那組。 只看某個網路服務(例如 Wi-Fi / Ethernet) 先列出網路服務名稱: networksetup -listallnetworkservices 再看某個服務的 DNS(例如 Wi-Fi): networksetup -getdnsservers "Wi-Fi" 乙太網路則可能叫: networksetup -getdnsservers "Ethernet" 3) 快速判斷「目前預設走哪個介面」 route get default | grep interface 會回傳像 interface: en0(通常 en0 可能是有線或 Wi-Fi,依機型/設定而定)     【除錯】【Mac】crontab 無法正常執行 在 macOS 環境下, crontab 沒執行的原因通常與 Linux 大不相同,最常見的元凶是 macOS 嚴格的隱私權與安全性限制(TCC),其次是排程時間定義或環境變數路徑問題。 以下是排查 macOS Crontab 沒有執行(或執行失敗)的精準步驟: 原因一:macOS 系統權限封鎖(最常見原因) 從 macOS Mojave (10.14) 開始,系統引入了 TCC 隱私保護。 cron 程式預設沒有權限讀取使用者的家目錄(如 /Users/srou/shell/...)。當排程時間到了, cron 試圖去讀取腳本時,會直接被系統阻擋(Permission denied),而且這種阻擋不會寫入您的自訂 log 中。 🛠️ 解決步驟: 打開 Mac 的 「系統設定」 (System Settings)。 進入 「隱私權與安全性」 (Privacy & Security) -> 「全權硬碟存取權」 (Full Disk Access)。 檢查清單中是否有 cron。 如果沒有(通常預設沒有): 點擊下方的 「+」 號。 按下 Command + Shift + G 彈出路徑輸入框。 輸入 /usr/sbin/cron 並點選開啟。 將 cron 的開關切換為開啟(允許)狀態。 原因二:Crontab 時間格式設定不符合預期 您的設定為: */5 * * * 1-5 /Users/AAA/shell/clean_mangodb.sh 2025-02-20 */5:每 5 分鐘執行一次。 1-5:週一至週五(Monday to Friday)。 今天是 2026 年 5 月 19 日(星期二),時間符合週一至週五。 排查點:請確認您測試當下的時間是否在週一至週五。如果是週末測試,它確實不會觸發。 原因三:沒有擷取錯誤輸出,導致失敗卻看不到 目前您的 clean_mangodb.sh 這一行沒有加上錯誤重導向。如果腳本在啟動時就因為路徑或權限問題掛掉,您完全無法得知原因。 🛠️ 解決步驟: 請修改 crontab,將標準錯誤輸出(stderr)導向暫存檔: 輸入 crontab -e 將該行修改為(加上 >> /tmp/clean.log 2>&1): */5 * * * 1-5 /Users/AAA/shell/clean_mangodb.sh 2025-02-20 >> /tmp/clean.log 2>&1 儲存離開後,靜待下一個 5 分鐘,然後查看 /tmp/clean.log 的內容。 原因四:macOS cron 服務未啟動 雖然 macOS 預設會啟動 cron,但有時可能被關閉。macOS 負責管理後台服務的是 launchd。 🛠️ 檢查與重啟步驟: 檢查 cron 是否在運行: sudo launchctl list | grep cron 如果沒有輸出,或是您想強制重載 cron 服務,請執行: # 停止服務 sudo launchctl unload /System/Library/LaunchDaemons/com.vix.cron.plist 2>/dev/null # 重新啟動服務 sudo launchctl load /System/Library/LaunchDaemons/com.vix.cron.plist 原因五:環境變數(PATH)問題 cron 執行時的環境變數非常乾淨,通常 PATH 只有 /usr/bin:/bin。 如果您的 clean_mangodb.sh 腳本內容中呼叫了某些透過 Homebrew 安裝的工具(雖然您目前主要使用 curl、 sed,這些在 /usr/bin 都有),但若腳本有用到 /usr/local/bin 或 /opt/homebrew/bin 的套件,就會噴出 command not found。 驗證方式:透過上述原因三加上 2>&1 導出 log 後,最容易看出來是否卡在找不到指令。 📋 建議排查順序 先去 全權硬碟存取權 補上 /usr/sbin/cron 的權限(90% 是這個問題)。 用 crontab -e 把日誌重導向 >> /tmp/clean.log 2>&1 補上。 檢查 /tmp/clean.log 的報錯訊息。 【Mac】mac 顯示隱藏檔案 在 macOS 中,以點( .)開頭的目錄或檔案預設為隱藏。顯示或存取 ~/.ssh 目錄主要有以下兩種方式: 方法一:使用 Finder(圖形介面 GUI) 做法 A:直接前往特定路徑(最快速) 開啟 Finder。 按下快速鍵 Command + Shift + G(或點選上方選單列的「前往」>「前往資料夾...」)。 在輸入框中輸入 ~/.ssh 並按 Enter,Finder 會直接開啟該目錄。 做法 B:全域顯示隱藏檔案與資料夾 開啟 Finder 並前往你的家目錄( ~)。 按下快速鍵 Command + Shift + .(句點鍵)。 系統會立即切換顯示/隱藏狀態,此時即可看到灰半透明顯示的 .ssh 資料夾。 (再次按下相同的快速鍵組合即可恢復隱藏) 方法二:使用 Terminal(終端機 CLI) 若偏好在命令列介面檢視或操作,可開啟「終端機(Terminal)」執行以下指令: 列出目錄內所有檔案(包含權限與隱藏檔案): Bash ls -la ~/.ssh 從終端機直接在 Finder 視窗中開啟該目錄: Bash open ~/.ssh 安全提示: ~/.ssh 內通常存放 SSH Private Key(私鑰)與授權設定。請確保該目錄權限設定為 700 ( chmod 700 ~/.ssh),且私鑰檔案(如 id_ed25519 或 id_rsa)權限為 600 ( chmod 600 ~/.ssh/id_ed25519),以符合 SSH 協定的安全限制。