
Note วิธีย้าย .zshrc เข้าไปยัง .config folder บน macos เพื่อให้ง่ายต่อการ backup
# Create new folder
mkdir -p ~/.config/zsh
# Move config
mv ~/.zshrc ~/.config/zsh/.zshrc
mv ~/.zsh_history ~/.config/zsh/.zsh_history
จากนั้นแก้ไขไฟล์ .zshenv เพื่อเปลี่ยน working directory
nano ~/.zshenv
export ZDOTDIR="$HOME/.config/zsh"
ลองปิดเปิดใหม่เพื่อทดสอบว่า config ถูก load ถูกต้องมั้ย (ปิด terminal ไปเลยนะครับ)
แนะนำให้สร้าง .gitignore แล้วเพิ่ม
# Ignore everything in zsh...
zsh/*
# ...Except .zshrc
!zsh/.zshrc
เพื่อให้ backup เฉพาะส่วนที่เป็น config ไว้เท่านั้นครับ เนื่องจากใน .zsh_history อาจจะมี secret ต่าง ๆ อยู่ได้
เพื่อเพิ่มความปลอดภัยอีกชั้น แนะนำให้ติด pre-commit hook เพื่อดักจับ secret (เช่น API Key, Token ต่าง ๆ) ก่อนที่เราจะเผลอ commit ลงไปใน git ครับ
เริ่มจากติดตั้ง pre-commit (หากยังไม่มี)
brew install pre-commit
จากนั้นสร้างไฟล์ .pre-commit-config.yaml ไว้ที่ root directory ของโปรเจกต์ และกำหนด version ของ gitleaks เป็น v8.30.0
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.30.0
hooks:
- id: gitleaks
สั่ง install hook เข้าไปใน git directory
pre-commit install
ผลลัพธ์: หลังจากนี้ทุกครั้งที่เราพิมพ์คำสั่ง git commit ตัว pre-commit จะทำการเรียก Gitleaks มาสแกนไฟล์ที่เรากำลังจะ commit ให้โดยอัตโนมัติ ถ้าเจอ secret มันจะแจ้ง error และหยุดการ commit ให้ทันทีครับ
เพิ่มเติม (Optional) ถ้าอยากให้บทความสมบูรณ์ขึ้น อาจจะปิดท้ายด้วยคำสั่งสำหรับ Test ดูครับ ทดสอบการทำงาน ลองสร้างไฟล์ที่มี Mock Secret ดูครับ
wget https://raw.githubusercontent.com/trufflesecurity/test_keys/refs/heads/main/keys
git add keys
git commit -m "test secret"

