productize.life
TH EN
Dev Setup · Guardrail

สคริปต์คำสั่งเดียวจบ
เราเลือกไม่รัน แล้วประกอบเอง

เจอสคริปต์ติดตั้ง terminal สวยๆ ที่รันคำสั่งเดียวจบ ลง Ghostty กับ Zsh พร้อม 30 เครื่องมือ แต่พอเปิดอ่านว่ามันทำอะไรบ้าง เลยตัดสินใจประกอบเอง นี่คือทั้งเหตุผลและวิธี

Yim· เขียนด้วยกันกับ Dobby (AI Oracle)/8 ก.ค. 2026

หลังจากเลือก Ghostty เป็น terminal หลัก (เล่าไว้ในบทความก่อนหน้า) ก็ถึงตาตั้งค่าให้ใช้งานได้จริง พอไปหาวิธี ก็เจอสคริปต์ยอดนิยมแบบหนึ่งที่สัญญาว่า รันคำสั่งเดียวจบ ลง Ghostty, Zsh, prompt สวยๆ และเครื่องมือ CLI สมัยใหม่อีกสามสิบตัวให้ในทีเดียว

น่าลองมาก คำสั่งก๊อปมาวางแค่บรรทัดเดียว แต่บรรทัดนั้นคือ curl ดึงสคริปต์จากเน็ตแล้วส่งเข้า bash รันทันที ก่อนจะกด Enter เราเปิดอ่านว่ามันทำอะไรบ้าง แล้วสิ่งที่เห็นทำให้ตัดสินใจไม่รัน

ช่วงที่ 1สคริปต์คำสั่งเดียวทำอะไรกับเครื่องบ้าง

ก่อนอื่นต้องพูดให้เป็นธรรม สคริปต์พวกนี้เขียนมาดี เจตนาดี และบนเครื่องใหม่เอี่ยมที่ยังไม่มีอะไร มันช่วยประหยัดเวลาได้จริง ปัญหาไม่ได้อยู่ที่ตัวสคริปต์ แต่อยู่ที่ เรากำลังจะรันอะไรบางอย่างที่ไม่ได้อ่าน ด้วยสิทธิ์เต็มของตัวเอง บนเครื่องที่ตั้งค่าไว้แล้ว

พอเปิดอ่านสคริปต์ตัวที่เจอ สิ่งที่มันทำมีหลายอย่างที่กระทบเครื่องลึกกว่าที่คิด

ไม่มีอะไรในนี้ที่ "อันตราย" ในความหมายว่าจงใจร้าย แต่รวมๆ แล้วมันคือการยกเครื่องตั้งค่า shell ของเราใหม่ทั้งหมด โดยที่ถ้าไม่เปิดอ่านก่อน ก็จะไม่มีทางรู้เลยว่ากำลังจะเสียอะไรไป

สคริปต์ที่ curl เข้า bash รันด้วยสิทธิ์ของคุณ และแก้อะไรในเครื่องก็ได้ การกดรันโดยไม่อ่าน คือการเซ็นเช็คเปล่าให้คนแปลกหน้า

ช่วงที่ 2กฎกันพลาด: อ่านก่อนรัน เลือกก่อนเทหมด

บทเรียนตรงนี้เป็นเรื่องเดียวกับที่เขียนไว้ในโพสต์เรื่องระบบความจำ AI ที่ข้อมูลหายเงียบ คือ รู้ว่าเครื่องมือที่เราปล่อยให้แตะของเรา มันทำอะไรกับของเราบ้าง ในกรณีนี้ "ของเรา" คือทั้งเครื่อง

กฎที่ใช้มีแค่สองข้อ ไม่ได้ซับซ้อน

  1. อ่านก่อนรันเสมอ โดยเฉพาะอะไรที่ curl เข้า bash แทนที่จะ pipe เข้า bash ตรงๆ ให้ save สคริปต์ลงไฟล์ก่อน เปิดอ่านว่ามันแตะอะไร แล้วค่อยรันไฟล์นั้น ใช้เวลาเพิ่มไม่กี่นาที แต่เปลี่ยนจาก "เชื่อสุดใจ" เป็น "เห็นแล้วว่าโอเค"
  2. เลือกก่อนเทหมด บนเครื่องที่ตั้งค่าไว้แล้ว การลงทีละชิ้นที่เรารู้ว่าต้องการ ดีกว่าเทแพ็กเกจสำเร็จรูปทั้งก้อน เพราะสคริปต์รวมมักมาพร้อมของที่เราไม่ได้ใช้และตัวที่ชนกับ config เดิม

ไม่ใช่ความหวาดระแวง เครื่องใหม่เอี่ยมจะรันสคริปต์รวดเดียวก็ได้ ความเสี่ยงต่ำ แต่พอเป็นเครื่องที่มี dotfiles และฟังก์ชันที่สร้างมาเป็นปีแล้ว การอ่านก่อนกับการเลือกลงเอง คือส่วนต่างระหว่างได้เครื่องมือใหม่ กับพังของเดิมที่ใช้อยู่

ช่วงที่ 3วิธีประกอบเองที่เราใช้

พอเลือกทางประกอบเอง มันไม่ได้ยุ่งยากอย่างที่กลัว แค่ทำเป็นขั้น และทุกขั้นมองเห็นว่าเกิดอะไรขึ้น

1. ลงเครื่องมือทีละตัวผ่าน brew

เลือกชุดที่คุ้มและไม่ล้น ลงผ่าน Homebrew ตัวเดียวจบต่อคำสั่ง จะได้รู้ว่ามีอะไรอยู่ในเครื่องบ้าง

brew install eza bat fd ripgrep zoxide starship fzf \
  zsh-autosuggestions zsh-syntax-highlighting

อยากได้ history ที่ค้นและ sync ได้ ค่อยเพิ่ม atuin ทีหลัง ไม่ต้องมีตั้งแต่แรก

2. ตั้งค่า Ghostty เป็นไฟล์เดียว

Ghostty อ่านไฟล์เดียวที่ ~/.config/ghostty/config เป็นข้อความ key = value ตรงๆ เก็บใน dotfiles/git แล้วก๊อปข้ามเครื่องได้ทันที

theme = catppuccin-mocha
font-family = "JetBrainsMono Nerd Font Mono"
font-size = 14
macos-option-as-alt = true

บรรทัด macos-option-as-alt จำเป็นถ้าอยากให้คีย์ลัดแบบ Alt (เช่นของ fzf) ทำงานบน Mac ส่วนฟอนต์ต้องเป็น Nerd Font ไอคอนใน prompt ถึงจะโชว์

3. ต่อ .zshrc เป็น block ที่ถอดกลับได้ (สำรองก่อนเสมอ)

หัวใจของการประกอบเองอยู่ตรงนี้ แทนที่จะให้ใครมาเขียน .zshrc ให้ใหม่ เรา สำรองไฟล์เดิมไว้ก่อน แล้วต่อของใหม่เป็นบล็อกที่มีป้ายกำกับ ลบออกเมื่อไหร่ก็กลับสภาพเดิม

cp ~/.zshrc ~/.zshrc.bak-$(date +%F)   # สำรองก่อน

# --- curated modern-cli (ลบทั้งบล็อกนี้เพื่อย้อนกลับ) ---
eval "$(starship init zsh)"
eval "$(zoxide init zsh)"
alias ls='eza --icons=auto --group-directories-first'
alias cat='bat'
source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh
# syntax-highlighting ต้อง source เป็นบรรทัดท้ายสุด
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
# --- end ---

สองอย่างที่ต้องระวัง หนึ่ง syntax-highlighting ต้องอยู่ท้ายสุดหลัง plugin อื่นทั้งหมด สอง ต่อบล็อกไว้ท้ายไฟล์ ของเดิมที่อยู่ข้างบน (PATH, ฟังก์ชันที่ตั้งเอง) ยังอยู่ครบ ไม่โดนแตะ

ผลลัพธ์เหมือนกับที่สคริปต์รวมสัญญาไว้ ทั้ง prompt สวย ทั้งเครื่องมือครบ แต่ได้มาแบบที่รู้ว่ามีอะไรบ้าง และย้อนกลับได้ทุกขั้น

สรุปกฎเดียวที่อยากให้จำ

ถ้าจะจำอย่างเดียวจากบทความนี้ อะไรที่จะ curl เข้า bash ให้เปิดอ่านก่อน และบนเครื่องที่ตั้งค่าไว้แล้ว เลือกลงเองทีละชิ้นดีกว่าเทสคริปต์รวมทั้งก้อน ความสะดวกของคำสั่งเดียวจบ ไม่คุ้มกับการเสีย config ที่สร้างมาทั้งปี

อ่านต่อในซีรีส์เดียวกัน
ที่มาและอ้างอิง
ติดตาม

รับบทความใหม่และของฟรีก่อนใคร

ทิ้งอีเมลไว้ บทความใหม่และของฟรีเป็นครั้งคราวจะส่งไปให้ ไม่สแปม

ใช้อีเมลเพื่อส่งอัปเดตเท่านั้น

ความคิดเห็น

ร่วมพูดคุย

แบ่งปันความคิดเห็นได้เลย

ชื่อจะแสดงต่อสาธารณะ อีเมลเก็บเป็นความลับ ไม่แสดงที่ไหน

กำลังโหลดความคิดเห็น…