ไม่ต้องกลัวหน้าจอดำอีกต่อไป! มาทำให้การใช้งาน Terminal สบายขึ้นด้วย Fish Shell
ในการทำงานด้านการสร้างและพัฒนาเว็บไซต์ สิ่งที่หลีกเลี่ยงไม่ได้คือการใช้คำสั่งบน "Terminal" หรือที่เรียกกันว่าหน้าจอดำ ในตอนแรกอาจจะดูไม่คุ้นเคยและรู้สึกท้อแท้เมื่อเจอกับข้อผิดพลาดใช่ไหมครับ? แต่ถ้าหาก Terminal ของเราสามารถใช้งานได้ง่ายและเป็นมิตรเหมือนมีผู้ช่วยส่วนตัวล่ะจะเป็นอย่างไร?
เครื่องมือที่เราจะมาแนะนำในครั้งนี้คือ "Fish Shell" ซึ่งเป็นเครื่องมือที่จะมาสานฝันนั้นให้เป็นจริงครับ ด้วยฟังก์ชันการเติมคำสั่งอัตโนมัติ (auto-completion) และการเน้นสี синтаксис (syntax highlighting) ที่มีมาให้เป็นมาตรฐาน จะทำให้แม้แต่ผู้เริ่มต้นก็สามารถใช้คำสั่งได้อย่างสะดวกสบายอย่างน่าทึ่ง ในบทความนี้ เราจะอธิบายอย่างละเอียดตั้งแต่การติดตั้ง fish shell, การสร้างสภาพแวดล้อมของ fish ที่จะช่วยปรับปรุงสภาพแวดล้อมการพัฒนาของคุณได้อย่างมาก และวิธีการตั้งค่าพื้นฐานของ fish ซึ่งทั้งหมดนี้สามารถทำได้ง่ายๆ เพียงแค่คัดลอกและวางโค้ดเท่านั้นครับ มาลองสัมผัสประสบการณ์ "ใช้งานได้จริง" ไปพร้อมกันเลย! 🚀
Fish Shell คืออะไร? ทำไมถึงแนะนำ?
Fish ย่อมาจาก "Friendly Interactive Shell" ซึ่งตามชื่อเลยครับ คือ Shell ที่ถูกพัฒนาขึ้นมาโดยมีเป้าหมายให้เป็น "Shell ที่เป็นมิตรและโต้ตอบได้" เมื่อเทียบกับ "Bash" ที่เป็นมาตรฐานใน Linux และ macOS ส่วนใหญ่ หรือ "Zsh" ที่ได้รับความนิยมจากความสามารถในการปรับแต่งที่สูง จุดเด่นที่สุดของ Fish คือ สามารถใช้งานฟังก์ชันที่ทรงพลังได้ทันทีโดยไม่จำเป็นต้องตั้งค่าใดๆ
- 🎨 การเน้นสี Syntax: บอกให้เรารู้ด้วยสีว่าคำสั่งที่กำลังพิมพ์อยู่นั้นถูกต้องหรือไม่
- 🧠 การเติมคำสั่งอัตโนมัติที่ชาญฉลาด: คาดเดาคำสั่งถัดไปจากประวัติการใช้งานและชื่อไฟล์ แล้วแสดงเป็นตัวอักษรสีจางๆ
- 📖 ความช่วยเหลือที่ครอบคลุม: หากไม่ทราบวิธีใช้คำสั่ง สามารถเปิดดูคู่มือได้ทันที
- 🔧 การตั้งค่าง่ายๆ: สามารถเปลี่ยนแปลงการตั้งค่าผ่านหน้าเว็บเบราว์เซอร์ได้
ด้วยฟังก์ชันเหล่านี้ จะช่วยลดการพิมพ์คำสั่งผิดพลาดลงได้อย่างมาก และเพิ่มประสิทธิภาพในการทำงานได้อย่างก้าวกระโดด เรียกได้ว่าเป็นเพื่อนคู่ใจที่แข็งแgร่งสำหรับนักสร้างสรรค์เว็บมือใหม่เลยทีเดียว
วิธีการติดตั้ง Fish Shell
มาเริ่มติดตั้ง Fish ลงบนเครื่องของคุณกันเลยครับ เราจะแนะนำขั้นตอนสำหรับ macOS และ Linux (ตระกูล Ubuntu/Debian) ตามลำดับ
สำหรับ macOS (ใช้ Homebrew)
บน macOS วิธีที่ง่ายที่สุดคือการใช้โปรแกรมจัดการแพ็คเกจ Homebrew หากคุณยังไม่ได้ติดตั้ง Homebrew ให้ทำการติดตั้งตามขั้นตอนบนเว็บไซต์ทางการก่อนนะครับ
เปิด Terminal แล้วรันคำสั่งต่อไปนี้
brew install fish
สำหรับ Linux (ตระกูล Ubuntu / Debian)
หากคุณใช้ Ubuntu, Debian หรือดิสทริบิวชันที่แตกย่อยออกมา สามารถติดตั้งได้ด้วยคำสั่ง `apt`
ขั้นแรก ให้อัปเดตข้อมูล Repository ก่อน
sudo apt update
จากนั้น ทำการติดตั้ง Fish
sudo apt install fish
เปลี่ยน Shell เริ่มต้นเป็น Fish กันเถอะ
หลังจากติดตั้งเสร็จสิ้นแล้ว มาเปลี่ยน "Shell เริ่มต้น" (Default Shell) ให้เป็น Fish เพื่อที่ว่าเมื่อเปิด Terminal ขึ้นมาใหม่ Fish จะทำงานโดยอัตโนมัติ ซึ่งจะทำให้การ導入 fish เสร็จสมบูรณ์
ขั้นแรก ตรวจสอบตำแหน่งที่ติดตั้ง Fish (path) โดยปกติจะอยู่ที่ `/usr/local/bin/fish` (macOS) หรือ `/usr/bin/fish` (Linux)
which fish
จากนั้น ใช้คำสั่ง `chsh` (change shell) เพื่อเปลี่ยน Shell เริ่มต้นเป็น path ของ Fish ที่เราตรวจสอบเมื่อสักครู่ โดยใช้ option `-s` แล้วตามด้วย path
chsh -s $(which fish)
เมื่อรันคำสั่ง ระบบจะถามรหัสผ่าน ให้ป้อนรหัสผ่านสำหรับล็อกอินของคุณ การตั้งค่าก็เป็นอันเสร็จสิ้น! เพื่อให้การเปลี่ยนแปลงมีผล ให้ปิด Terminal ทั้งหมดแล้วเปิดขึ้นมาใหม่
เมื่อเปิด Terminal ใหม่ขึ้นมาแล้ว หากมีข้อความต้อนรับดังต่อไปนี้ปรากฏขึ้นมา ถือว่าสำเร็จ
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
มาลองตั้งค่าเริ่มต้นของ Fish กัน (fish_config)
หนึ่งในจุดเด่นที่ยอดเยี่ยมของ Fish คือฟังก์ชันการตั้งค่าอย่างง่ายผ่านเว็บเบราว์เซอร์ ด้วยฟังก์ชันการตั้งค่าเริ่มต้นของ fish นี้ คุณสามารถเปลี่ยนหน้าตา (Prompt) และสีสันได้อย่างอิสระโดยไม่จำเป็นต้องรู้คำสั่งใดๆ เลย
ลองรันคำสั่งต่อไปนี้ใน Terminal ดูครับ
fish_config
เว็บเบราว์เซอร์จะเปิดขึ้นมาโดยอัตโนมัติพร้อมกับหน้าจอการตั้งค่า คุณสามารถเลือกชุดสี (Color Scheme) ที่ชอบได้ในแท็บ "Colors" หรือลองดีไซน์ Prompt แบบต่างๆ ได้ในแท็บ "Prompt" เมื่อเจอการตั้งค่าที่ถูกใจแล้ว เพียงแค่กดปุ่ม "Set Theme" หรือ "Set Prompt" ที่ด้านบนของหน้าจอ การตั้งค่าก็จะถูกนำไปใช้กับ Terminal ของคุณทันที ง่ายมากๆ เลยใช่ไหมครับ!
ปรับแต่ง Fish ด้วยไฟล์ตั้งค่า (config.fish)
การตั้งค่าผ่านเบราว์เซอร์นั้นสะดวกสบาย แต่หากต้องการปรับแต่งที่ละเอียดมากขึ้น เราจะแก้ไขไฟล์ตั้งค่า `config.fish` โดยตรง วิธีการตั้งค่า fish ผ่านไฟล์นี้ถือเป็นก้าวแรกของการสร้างสภาพแวดล้อมของ fish อย่างจริงจัง
ไฟล์ตั้งค่าจะอยู่ที่ `~/.config/fish/config.fish` หากยังไม่มีไฟล์นี้ ให้สร้างขึ้นมาใหม่
ขั้นแรก สร้างไดเรกทอรีสำหรับไฟล์ตั้งค่า
mkdir -p ~/.config/fish
จากนั้น สร้างไฟล์ตั้งค่าว่างๆ ขึ้นมา
touch ~/.config/fish/config.fish
เท่านี้การเตรียมการก็เสร็จเรียบร้อย เปิดไฟล์นี้ด้วย Editor ที่คุณชื่นชอบ (เช่น VSCode) แล้วมาเริ่มเขียนการตั้งค่ากันเลย
ตัวอย่างประยุกต์ 1: การตั้งค่าชื่อย่อ (alias)
ฟังก์ชันที่ช่วยให้เราสามารถเรียกใช้คำสั่งยาวๆ ที่ใช้บ่อยได้ด้วยคีย์เวิร์ดสั้นๆ คือ "alias" ครับ ตัวอย่างเช่น เรามาลองตั้งค่าให้สามารถรันคำสั่ง `ls -lha` ได้ด้วยคำว่า `ll` กัน
ให้เขียนโค้ดต่อไปนี้ลงใน `config.fish`
alias ll="ls -lha"
ตัวอย่างประยุกต์ 2: การตั้งค่าตัวแปรสภาพแวดล้อม (Environment Variables)
เครื่องมือพัฒนาบางตัวอาจต้องการให้เราตั้งค่า "ตัวแปรสภาพแวดล้อม" (Environment Variables) บางอย่าง ตัวอย่างเช่น หากคุณใช้ VSCode เป็น Editor หลัก การตั้งค่าตัวแปร `EDITOR` ไว้ก็จะสะดวกมาก
ให้เขียนโค้ดต่อไปนี้ลงใน `config.fish` จุดสำคัญคือ Fish จะใช้ `set -x` ซึ่งแตกต่างจาก `export` ของ Bash
set -x EDITOR "code"
หลังจากบันทึกไฟล์แล้ว ให้เปิด Terminal ใหม่ หรือรันคำสั่ง `source ~/.config/fish/config.fish` เพื่อให้การตั้งค่ามีผล
ข้อควรระวัง: ความแตกต่างจาก Bash
Fish เป็น Shell ที่ใช้งานง่ายมาก แต่สำหรับผู้ที่คุ้นเคยกับ Bash หรือ Zsh มาก่อน อาจมีข้อแตกต่างทาง синтаксис ที่ควรทราบอยู่บ้าง
- ตัวดำเนินการ AND: ใน Bash จะเขียนว่า `command1 && command2` แต่ใน Fish จะเขียนว่า `command1; and command2`
- การตั้งค่าตัวแปรสภาพแวดล้อม: `export VAR=value` ของ Bash จะกลายเป็น `set -x VAR value` ใน Fish
- การแทนที่คำสั่ง (Command Substitution):
`command`หรือ `$(command)` ของ Bash ใน Fish จะใช้เพียงแค่ `(command)` เท่านั้น
เมื่อคัดลอกและวางคำสั่งจากบทความหรือチュートリアル บนเว็บ อาจเกิดข้อผิดพลาดจากความแตกต่างเหล่านี้ได้ หากเจอข้อผิดพลาดเช่น "command not found" อาจมีสาเหตุมาจากความแตกต่างทาง синтаксиส เหล่านี้ ค่อยๆ ทำความคุ้นเคยไปนะครับ
สรุป
ในครั้งนี้ เราได้อธิบายตั้งแต่การติดตั้ง fish shell, การสร้างสภาพแวดล้อมพื้นฐาน, ไปจนถึงวิธีการตั้งค่าเริ่มต้น ฟังก์ชันการเติมคำสั่งอัตโนมัติและการแยกสีที่ทรงพลังและพร้อมใช้งานทันทีโดยไม่ต้องตั้งค่า จะช่วยลดความเครียดจากการใช้งาน Terminal ได้อย่างมาก ในตอนแรกอาจจะยังไม่ชิน แต่เพราะเป็นเครื่องมือที่ต้องใช้ทุกวัน การเลือกใช้สิ่งที่สะดวกสบายที่สุดสำหรับตัวเองจึงเป็นสิ่งที่คุ้มค่าอย่างยิ่ง
หวังว่าบทความนี้จะเป็นจุดเริ่มต้นให้คุณได้ลองใช้ Fish Shell และเริ่มต้นชีวิตบน Command Line ที่แสนสะดวกสบายนะครับ!
ก้าวต่อไป
หลังจากที่คุณได้ทำการ導入 Fish เบื้องต้นเรียบร้อยแล้ว ขั้นตอนต่อไปคือการสัมผัสกับฟังก์ชันอันทรงพลังของมันด้วยตัวเอง! ในบทความต่อไปนี้ เราจะอธิบายอย่างละเอียดพร้อมตัวอย่างการใช้งานจริงว่าทำไม Fish ถึงถูกเรียกว่า "ใช้งานง่าย" โดยจะเน้นไปที่คุณสมบัติเด่นอย่างการเติมคำสั่ง, การแยกสี, และประวัติการใช้งาน
มาลองใช้ฟังก์ชันการเติมคำสั่ง, การแยกสี, และประวัติการใช้งานอันทรงพลังของ Fish Shell กันเถอะ