ServBay 本地環境中的第三方命令列工具詳解
ServBay 作為一款功能強大的本地 Web 開發環境,不僅整合了常用的 Web 伺服器、資料庫及程式語言執行環境,還預載多款對開發者日常工作極為有用的第三方命令列工具。這些工具橫跨圖像處理、網絡通訊、檔案壓縮與解壓縮、資料加密與安全等多個關鍵領域。
本文將詳細介紹 ServBay 環境中所包含的各類命令列工具,說明其用途並提供基本操作實例,協助開發者充分發揮 ServBay 的便利性。
為什麼 ServBay 會內建這些工具?
在 Web 開發過程中,除了編寫程式碼之外,開發者時常需要完成各種輔助任務,例如:
- 優化或處理圖片資源
- 測試 API 介面或偵錯網絡請求
- 管理或處理壓縮檔案
- 產生或管理 SSL 憑證及金鑰
ServBay 將這些常用的命令列工具全部預裝於環境中,讓開發者無需另行安裝與設定,即可在 ServBay 的終端機會話中直接使用,大幅提升開發效率與便利性。
前置條件
在使用以下命令列工具之前,請確保:
- 您已成功在 macOS 系統上安裝並執行 ServBay。
- 您已透過 ServBay 的終端機或配置了 ServBay 環境變數的系統終端機進入 ServBay 環境,才能直接調用這些工具。
圖像處理組件
ServBay 內建多款命令列圖像處理工具,對於前端開發及需處理媒體資源的後端開發者來說非常實用。
ImageMagick
ImageMagick 是一套功能極為強大的命令列工具及函式庫,支援逾 200 種圖像檔案格式。它可用於建立、編輯、合成或轉換點陣圖檔案。
基本用法
轉換圖像格式:
bashmagick convert input.jpg output.png
1調整圖像尺寸:
bashmagick convert input.jpg -resize 300x300 output.jpg
1加入浮水印:
bashmagick convert input.jpg -gravity southeast -draw "text 10,10 'ServBay'" output.jpg
1
cwebp
cwebp 是 Google 開發的命令列編碼器,可將圖像轉換為 WebP 格式。WebP 是一種現代化圖像格式,通常比 JPEG 及 PNG 同時提供更優異的無失真/有失真壓縮,卻能維持類似的畫質,有助提升網站的載入速度。
基本用法
將 JPEG 圖像轉換為 WebP 格式:
bashcwebp input.jpg -o output.webp
1將 PNG 圖像轉換為 WebP 格式:
bashcwebp input.png -o output.webp
1設定壓縮畫質(如:品質值 80):
bashcwebp -q 80 input.jpg -o output.webp
1
jpegtran
jpegtran 是一個無失真的 JPEG 轉換工具,可在無需解壓與重壓影像的情況下進行旋轉、翻轉及轉置,避免二次壓縮造成畫質劣化。
基本用法
將 JPEG 圖像順時針旋轉 90 度:
bashjpegtran -rotate 90 input.jpg > output.jpg
1水平翻轉 JPEG 圖像:
bashjpegtran -flip horizontal input.jpg > output.jpg
1
djpeg
djpeg 用來將 JPEG 檔案解壓為較原始的像素格式(如 PPM、PGM、BMP 或 Targa)。當你需要進一步操作 JPEG 原始像素資料時非常有用。
基本用法
- 將 JPEG 解壓為 PPM 格式:bash
djpeg input.jpg > output.ppm
1
cjpeg
cjpeg 則為 djpeg 的反向操作,用於將 PPM、PGM、BMP 或 Targa 格式之圖片壓縮成 JPEG 檔。
基本用法
- 將 PPM 壓縮為 JPEG 格式:bash
cjpeg input.ppm > output.jpg
1
img2webp
img2webp 能將多張靜態圖像(如 PNG、JPEG)合併生成單一動態 WebP 檔案。
基本用法
- 將多張圖像合併生成動畫 WebP:bash(請確認
img2webp -o output.webp frame1.png frame2.png frame3.png
1frame*.png
為按順序排列的影格)
網絡通訊組件
cURL
cURL 是業界普遍使用的命令列工具與函式庫,用於透過多種網絡協定進行資料傳輸。它是測試 API、下載文件、與遠端伺服器互動不可或缺的工具。ServBay 內建 cURL,讓開發者能輕鬆執行網絡除錯和資料交換。
基本用法
發送 HTTP GET 請求至示例 API:
bashcurl -X GET https://api.servbay.demo/data
1發送 HTTP POST 請求並帶資料:
bashcurl -X POST -d "param1=value1¶m2=value2" https://api.servbay.demo/data
1下載檔案並依原檔名儲存:
bashcurl -O https://servbay.demo/file.zip
1檢視請求與回應標頭:
bashcurl -I https://servbay.demo
1
壓縮與解壓縮組件
ServBay 內含多種常用檔案壓縮及解壓縮工具,方便開發者處理多種壓縮格式。
bzip2
bzip2 是高效能壓縮工具,運用 Burrows-Wheeler 轉換及 Huffman 編碼。通常產生的壓縮檔比 gzip 更小,不過壓縮與解壓速度可能稍慢。
基本用法
壓縮檔案(原檔將被取代為
.bz2
檔):bashbzip2 input.txt
1解壓檔案(
.bz2
會還原為原始檔):bashbunzip2 input.txt.bz2
1解壓到標準輸出:
bashbzip2 -dc input.txt.bz2
1
gzip
gzip 是非常普及的壓縮工具,特別在 Unix 和 Linux 系統長期廣受採用。它採用 Lempel-Ziv 編碼(LZ77),壓縮和解壓效率皆佳。
基本用法
壓縮檔案(原檔將被取代為
.gz
檔):bashgzip input.txt
1解壓檔案(
.gz
會還原為原始檔):bashgunzip input.txt.gz
1解壓到標準輸出:
bashgzip -dc input.txt.gz
1
xz
xz 採用 LZMA2 演算法,为高效壓縮工具。通常壓縮比高於 gzip 和 bzip2,但壓縮過程所需時間較長;解壓速度則相對較快。
基本用法
壓縮檔案(原檔將被取代為
.xz
檔):bashxz input.txt
1解壓檔案(
.xz
會還原為原始檔):bashunxz input.txt.xz
1解壓到標準輸出:
bashxz -dc input.txt.xz
1
zstd
zstd(Zstandard)是 Facebook 開發的高速無失真壓縮演算法。壓縮比與壓縮速度兼備,通常比 gzip 快許多,同時壓縮率也接近甚至超越 gzip。
基本用法
壓縮檔案(原檔將被取代為
.zst
檔):bashzstd input.txt
1解壓檔案(
.zst
會還原為原始檔):bashunzstd input.txt.zst
1解壓到標準輸出:
bashzstd -dc input.txt.zst
1
加密與安全組件
OpenSSL
OpenSSL 是功能極為完整的開源工具箱,實作了 SSL(Secure Sockets Layer)與 TLS(Transport Layer Security)協定,同時具備多種密碼學功能。在 ServBay 環境下,OpenSSL 對於產生金鑰、CSR(憑證簽發請求)、處理 SSL 憑證檔案等安全需求尤為重要,特別是在本地測試 HTTPS 或配合 ServBay 的 SSL 功能(如用 ServBay User CA 或 ACME)時。
基本用法
產生 RSA 私鑰(2048 位元):
bashopenssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
1自私鑰產生對應公鑰:
bashopenssl rsa -pubout -in private_key.pem -out public_key.pem
1建立憑證簽署申請 (CSR):
bashopenssl req -new -key private_key.pem -out request.csr
1(執行指令後,請依照提示輸入憑證相關資訊,如國家、組織、常用名稱等)
產生自簽憑證(用於本機測試):
bashopenssl req -x509 -days 365 -key private_key.pem -in request.csr -out certificate.crt
1(注意:
-in request.csr
前提是你已生成 CSR。如果僅供簡易測試,也可用更簡便方式一次產生私鑰與自簽憑證。)檢視憑證資訊:
bashopenssl x509 -in certificate.crt -text -noout
1
注意事項
- 這些命令列工具的版本,視 ServBay 內建設置而定。
- 所有工具皆可於作業系統終端機會話直接存取。若無法使用,請檢查 ServBay 的環境變數(特別是 PATH)是否設置正確。
總結
ServBay 不只是單純的本地 Web 開發環境,更融入大量實用的第三方命令列工具,大幅擴展了整體功能,讓開發者能以更高效率完成圖像處理、網絡除錯、檔案管理與安全性相關任務。善用這些內建工具,將更進一步提升您的開發體驗與工作效率。