ตั้งแต่อัปเดตเป็นเวอร์ชัน 10.15 Catalina macOS รวม Z shell (zsh) ไว้เป็นค่าเริ่มต้นแทน Bash ในแอป Terminal แม้จะเป็นเช่นนั้น คุณยังได้หน้าต่างสีดำพร้อมข้อความสีขาวภายใน Terminal เหมือนเดิม สิ่งต่างๆ ไม่จำเป็นต้องอยู่ในลักษณะนั้น
คุณสามารถตกแต่งพรอมต์ zsh ให้เป็นแบบมินิมอลและใช้พื้นที่ได้เต็มที่ เราจะแสดงวิธีปรับแต่งพรอมต์ zsh ในแอป Terminal ให้เด่นชัดบนพื้นหลังที่คุณเลือก
พื้นฐานของพรอมต์ zsh
เมื่อคุณเปิดแอป Terminal มันจะแสดงข้อมูลที่มีประโยชน์บางอย่าง เช่น การล็อกอินล่าสุดและพรอมต์คำสั่ง นี่คือลักษณะของพรอมต์โดยค่าเริ่มต้นปกติ
Last login: Wed Feb 3 22:00:40 on console
samir@MacBook-Air ~ %
พรอมต์ zsh แสดงสตริงข้อความที่ประกอบด้วยชื่อผู้ใช้และรุ่นคอมพิวเตอร์ เช่น MacBook Air, MacBook Pro, Mac Mini และอื่นๆ เครื่องหมายทิลเด (~) บ่งชี้ตำแหน่งของพรอมต์ในไดเรกทอรีโฮม
สร้างโปรไฟล์ Z Shell เพื่อจัดเก็บการตั้งค่าทั้งหมด
โดยทั่วไป คุณต้องไปแก้ไขไฟล์ระบบเพื่อเปลี่ยนลักษณะเริ่มต้น นั่นเป็นเพราะการอัปเดต macOS จะรีเซ็ตไฟล์ระบบทั้งหมดกลับเป็นค่าเริ่มต้น และคุณจะสูญเสียการเปลี่ยนแปลงทั้งหมดที่คุณทำ
ดังนั้น คุณสามารถสร้างไฟล์การตั้งค่าเฉพาะที่เรียกว่า dotfile สำหรับโปรไฟล์ zsh ของคุณ เพื่อจัดเก็บการเปลี่ยนแปลงและการตั้งค่าทั้งหมดที่คุณต้องการในพรอมต์ zsh
คุณจะไม่พบ dotfile นี้โดยค่าเริ่มต้นบน macOS ดังนั้นคุณจะต้องสร้างมันขึ้นมา การสร้างโปรไฟล์ .zshrc ใหม่แนะนำเพื่อจัดเก็บการตั้งค่าทั้งหมด เช่น ลักษณะและพฤติกรรมของพรอมต์ zsh
นี่คือวิธีสร้างโปรไฟล์ zsh (dotfile):
1. เปิดแอป Terminal
2. พิมพ์คำสั่งต่อไปนี้และกดปุ่ม Return
touch ~/.zshrc
นี่จะสร้างโปรไฟล์ .zshrc ในไดเรกทอรีโฮมของบัญชีผู้ใช้ของคุณ คุณสามารถเห็นมันภายใต้เส้นทาง /User/<username>/ ใน Finder หากคุณเปิดใช้งานการดูไฟล์ระบบที่ซ่อนอยู่
หลังจากนั้น โปรไฟล์ zsh จะพร้อมใช้งานสำหรับเชลล์ล็อกอินและเชลล์โต้ตอบทุกครั้งที่คุณเปิด Terminal อย่างไรก็ตาม มันจะไม่ทำงานในเซสชัน SSH
การเปลี่ยนแปลงทั้งหมดที่คุณต้องการทำกับพรอมต์ zsh สามารถรวมไว้ในโปรไฟล์นี้ได้
ปรับแต่งพรอมต์ zsh ใน Terminal
โดยทั่วไป พรอมต์ zsh เริ่มต้นมีข้อมูล เช่น ชื่อผู้ใช้ ชื่อเครื่อง และตำแหน่งเริ่มต้นในไดเรกทอรีโฮมของผู้ใช้ รายละเอียดเหล่านี้จัดเก็บอยู่ในไฟล์ระบบของ zsh shell ที่ตำแหน่ง /etc/zshrc
PS1="%n@%m %1~ %#"
ในสตริงตัวแปรเหล่านี้:
- %n คือชื่อผู้ใช้ของบัญชีของคุณ
- %m คือชื่อรุ่น MacBook
- %1~ หมายถึงเส้นทางไดเรกทอรีทำงานปัจจุบัน โดย ~ ตัดตำแหน่ง $HOME ออก
- %# หมายถึงพรอมต์จะแสดง # หากเชลล์รันด้วยสิทธิ์รูท (ผู้ดูแลระบบ) หรือจะแสดง % หากไม่ใช่
เพื่อทำการเปลี่ยนแปลงใดๆ ให้กับพรอมต์ zsh เริ่มต้น คุณจะต้องเพิ่มค่าที่เกี่ยวข้องสำหรับพรอมต์ให้ปรากฏแตกต่างจากค่าเริ่มต้น
นี่คือวิธีการทำ เปิด Terminal พิมพ์คำสั่งต่อไปนี้ และกด Enter
nano ~/.zshrc
มันจะว่างเปล่าหากคุณเข้าถึงครั้งแรก คุณสามารถเพิ่มบรรทัดใหม่ด้วยข้อความ PROMPT='...' และรวมค่าที่เกี่ยวข้องในเครื่องหมายไข่ปลา
สำหรับการแก้ไขพรอมต์ zsh แบบง่าย คุณสามารถพิมพ์ค่าเหล่านี้ในโปรไฟล์ .zshrc
PROMPT='%n~$'
กด Ctrl + O เพื่อยืนยันการเปลี่ยนแปลงเหล่านั้นในไฟล์ และกด Ctrl + X เพื่อออกจาก nano editor
เปิดหน้าต่าง Terminal ใหม่เพื่อยืนยันและดูการเปลี่ยนแปลงที่คุณเพิ่งทำ พรอมต์ zsh ใหม่จะแสดงชื่อผู้ใช้ของ Mac, ไดเรกทอรีโฮม และสัญลักษณ์ $ ที่ท้าย
เพิ่มวันที่และเวลาในพรอมต์ zsh
นอกจากชื่อผู้ใช้แล้ว คุณสามารถต่อท้ายวันที่หรือเวลาปัจจุบันได้ เพื่อให้คุณไม่ต้องมองออกไปจากหน้าต่าง Terminal ที่ใช้งานอยู่เพื่อเช็คข้อมูลนั้น
เปิด Terminal และเปิดโปรไฟล์ .zshrc
nano ~/.zshrc
เพื่อรวมวันที่ในพรอมต์ คุณสามารถใช้ %D สำหรับวันที่แสดงในรูปแบบ yy-mm-dd หรือ %W สำหรับแสดงในรูปแบบ mm/dd/yy พรอมต์ใหม่จะปรากฏเหมือน
PROMPT='%n:%W:~$'
หากคุณต้องการรวมเวลาระบบในพรอมต์ zsh ให้เพิ่ม %T สำหรับเวลาปัจจุบันในรูปแบบ 24 ชั่วโมง %t สำหรับเวลาแสดงในรูปแบบ am/pm หรือ 12 ชั่วโมง หรือใช้ %* เพื่อแสดงเวลาในรูปแบบ 24 ชั่วโมงพร้อมวินาที
PROMPT='%n:%T:~$'
เพิ่มสีให้ข้อความในพรอมต์ zsh
คุณเบื่อกับข้อความสีขาวของพรอมต์ zsh หรือไม่? นอกจากการปรับแต่งแอป Terminal ด้วยสีแล้ว คุณสามารถเพิ่มสีให้ข้อความได้ เพื่อให้คุณได้การแบ่งแยกทางสายตาที่ดี
เปิด Terminal และเปิดโปรไฟล์ .zshrc
nano ~/.zshrc
zsh รองรับสีและเฉดสีเทาให้ข้อความพรอมต์ ทำให้มันตรงกับพื้นหลัง คุณสามารถเลือกสีพื้นหน้า (ข้อความ) ระหว่าง black, white, yellow, green, red, blue, cyan และ magenta
นี่คือวิธีใช้งาน:
PROMPT='%F{cyan}%n%f:~$'
หากคุณต้องการเลือกเฉดสีเฉพาะ คุณสามารถเลือกระหว่าง 0 ถึง 256 สี 8-bit ที่ Terminal รองรับ นี่คือวิธีใช้ค่าตัวเลขของสี
PROMPT='%F{51}%n%f:~$'
คุณต้องวางตัวแปรสีพื้นหน้าเริ่มต้น %F และ %f ระหว่างข้อความที่เกี่ยวข้องที่คุณต้องการให้มีสี
เพิ่มเอฟเฟกต์ภาพในพรอมต์ zsh
หากการระบายสีข้อความพรอมต์ยังไม่พอ คุณสามารถไฮไลท์พรอมต์ zsh ให้เด่นชัดกลางกำแพงข้อความ และคุณสามารถเห็นมันได้ง่าย เริ่มต้นด้วย คุณสามารถทำให้พรอมต์ zsh หนา (bold) ได้
PROMPT='%B%F{51}%n%f%b:~$'
การเพิ่ม %B ที่จุดเริ่มต้น และวาง %b ที่จุดสิ้นสุดระหว่างข้อความที่เกี่ยวข้องจะทำให้มันหนา
เช่นเดียวกัน คุณสามารถวาง %S ที่จุดเริ่มต้น และ %s ที่จุดสิ้นสุดเพื่อไฮไลท์ข้อความ ไฮไลท์จะมีสีเดียวกับที่คุณเลือกให้ปรากฏระหว่างตัวแปร %S และ %s
PROMPT='%S%F{51}%n%f%s:~$'
คุณยังสามารถขีดเส้นใต้ข้อความพรอมต์ zsh ได้ สำหรับการต่อท้ายเส้นใต้ให้กับพรอมต์ คุณสามารถรวมตัวแปร %U ที่จุดเริ่มต้น และ %u ที่จุดสิ้นสุดของข้อความที่เกี่ยวข้อง
PROMPT='%U%F{51}%n%f%u:~$'
ลบรายละเอียดการล็อกอินล่าสุดออกจากพรอมต์ zsh
การซ่อนหรือปิดใช้งานบรรทัดบนสุดที่แสดงเวลาล็อกอินล่าสุดในแอป Terminal สามารถทำให้พรอมต์ zsh ของคุณดูสะอาดขึ้น คุณสามารถใช้คำสั่งต่อไปนี้เพื่อซ่อนข้อมูลนั้น
touch ~/.hushlogin
ครั้งต่อไปที่คุณเปิด Terminal คุณจะไม่เห็นอะไรเหนือพรอมต์ zsh
เพิ่มรสชาติให้พรอมต์ zsh ใน Terminal
แม้คุณจะใช้แอป Terminal บน macOS บ้างครั้ง คุณก็สามารถปรับแต่งลักษณะที่พรอมต์ zsh ปรากฏอยู่ที่นั่น คุณสามารถทำให้มันหนา ขีดเส้นใต้ ย่อสั้น และแม้แต่รวมวันที่และเวลาไว้ด้วย
ตอนนี้คุณเริ่มปรับแต่งพรอมต์ zsh แล้ว ลองทดลองเล่นนิดหน่อยและทำให้มันเป็นของคุณเอง