Terminal เป็นประตูสู่ command line บน macOS ให้อินเทอร์เฟซกับ shell/command interpreter ที่รับคำสั่งและเรียกโปรแกรมอื่นๆ ทำงานทั้งงานทั่วไปและซับซ้อน
ถ้าคุณเพิ่งเริ่มต้น หรือใช้ Terminal บ่อย อาจอยากปรับลักษณะ รูปลักษณ์ และแอตทริบิวต์ต่างๆ เราจะแสดงวิธีปรับแต่ง Terminal ให้เหมาะกับสภาพแวดล้อมและเวิร์กโฟลว์ของคุณ
พื้นฐานหน้าต่าง Terminal
เปิด Terminal จะเห็นหน้าต่างเกือบว่าง มีข้อความ 2 บรรทัด:
- บรรทัดแรก: วันเวลา login ล่าสุด เช่น
Last login: Wed Feb 13 01:08:35 on ttys000 - บรรทัดที่สอง: command prompt จริง กล่องสี่เหลี่ยมท้ายบรรทัดคือ cursor พิมพ์คำสั่งที่นี่ เช่น
Rahul-Mac:~ rahulsaigal$
ความหมายแต่ละส่วน:
- ส่วนแรก: ชื่อ Mac ของคุณ จุลภาค (:) คือตัวแบ่ง
- ส่วนที่สอง: เริ่มด้วย tilde (~) แสดงว่าอยู่ใน home directory ใช้ชื่อผู้ใช้สั้น
- เครื่องหมายดอลลาร์ ($) = login เป็น non-root user
ปรับแต่งหน้าต่าง Terminal
หน้าต่าง Terminal คล้ายแอปทั่วไป: minimize, move, resize, zoom, scroll ใช้งานนานขึ้น ข้อความจะเยอะ ตัวเล็ก ยากอ่าน หา cursor ไม่เจอ 雖然 resize ได้ แต่หายตอนปิดแอป
ปรับขนาดถาวร: Shell > Show Inspector หรือ Cmd + I เปิด Inspector > ส่วน Window ใส่ค่า Columns และ Rows หรือ resize หน้าต่างให้เต็มค่าอัตโนมัติ แล้ว Shell > Use Settings as Default
ปรับธีม Terminal
ค่าเริ่มต้น: ข้อความสีดำ พื้นขาว แต่ปรับได้: สีพื้นหลัง ฟอนต์ (รูปแบบ ขนาด) สีข้อความ รูปแบบ cursor และอื่นๆ
Shell > New Window ลองธีมสำเร็จรูป: Grass, Homebrew, Man Page, Ocean, Red Sands ฯลฯ
Preferences > Profiles แสดงธีมทั้งหมด: thumbnail ซ้าย แอตทริบิวต์ขวา แบ่ง 6 ส่วน: Text, Window, Tab, Shell, Keyboard, Advanced
ปรับแอตทริบิวต์: เลือกธีม > Gear menu > Duplicate Profile
แอตทริบิวต์ข้อความ (Text Attributes)
- เปลี่ยนฟอนต์: กด Change ในส่วน Font เลือก typeface และ size
- Text smoothing, bold fonts, สีสว่างสำหรับ bold text, สีข้อความ (กดปุ่ม Text color)
- รูปทรง cursor: Block, Underline, Vertical Bar สี cursor: กดปุ่มสีข้างคำว่า Cursor
- ความโปร่งใส: ปรับ Opacity และ Blur sliders — วาง Terminal ทับหน้าเว็บพิมพ์คำสั่งขณะอ่านได้
แอตทริบิวต์หน้าต่าง (Window Attributes)
รวม: title, size, scrollback limit, พฤติกรรมอื่นๆ จำไว้: ตัวเลือกในแผงนี้ใช้กับ profile นั้นๆ ไม่ใช่ Terminal ทั้งแอป
- เปลี่ยนชื่อหน้าต่าง: พิมพ์ในช่อง Title
- ติ๊กแสดง: ชื่อ process ที่ทำงาน, working directory, path, shell name ฯลฯ
- ปรับขนาดหน้าต่างเริ่มต้นสำหรับธีมนี้ และ scrollback buffer (ประวัติคำสั่งวัน/สัปดาห์ที่แล้ว)
แอตทริบิวต์ Shell (Shell Attributes)
ปรับการทำงาน Terminal รายละเอียด:
- คำสั่งรันตอนเริ่มต้น: เช่นเริ่ม alternate shell
- Prompt ก่อนปิดหน้าต่าง: Ask before closing > Always (กันปิดผิด) หรือ Never (ขี้เกียจ prompt)
- ติ๊ก Only if there are processes other than the login shell and — จะเตือนก่อน quit ถ้ามี process อื่นทำงาน ป้องกันคลิก/กดผิด
ทำงานกับ Window Groups
ชอบจัดหน้าต่าง Terminal แบบเฉพาะเจาะจง และต้องการ resume session โดยไม่ต้องจัดใหม่? Window Groups ประหยัดเวลา เพิ่มประสิทธิภาพ แต่ละหน้าต่างมี process, attributes, ตำแหน่งบนเดสก์ท็อปของตัวเอง
ตัวอย่าง: แก้ไฟล์ด้วย Vim ในหน้าต่างหนึ่ง รัน Octave ในอีกหนึ่ง ดู man page ในหนึ่ง ลองคำสั่งในอีกหนึ่ง หาก shell หนึ่ง busy ก็รันคำสั่งในอีกหน้าต่าง
บันทึก Window Group
ก่อนสร้าง group ต้อง:
- จัดหน้าต่างบนหน้าจอตามต้องการ
- ปรับแอตทริบิวต์ ขนาด รูปร่างแต่ละหน้าต่าง
- รันคำสั่งที่ต้องการ resume ในแต่ละหน้าต่าง
แล้ว Window > Save Windows as Group ใส่ชื่อ ติ๊ก Use window group when Terminal starts กด Save
กู้คืน Window Group
Window > Open Window Group — ทำงาน shell ปัจจุบันต่อ ได้แต่เปิด group เมื่อต้องการรันชุดงานเฉพาะ
Preferences > Window Groups กด Gear import/export/delete groups ถ้ามีหน้าต่างแอปอื่น ให้ assign group ไป desktop workspace แยกกันกันรบกวน
ตั้งค่า Default Shell
Default login shell ของ macOS คือ bash แต่มีหลายตัว: /bin/bash, /bin/csh, /bin/zsh, /bin/ksh ฯลฯ ผู้ชื่นชอบ Unix ชอบ zsh (Z shell) — มีฟีเจอร์มากกว่า bash และรองรับปลั๊กอินหลายสิบตัว
มือใหม่ ใช้ bash เริ่มต้นก่อน ไม่เป็นไร แต่ควรรู้วิธีสลับ
เช็คว่าใช้ shell ไหนอยู่
พิมพ์คำสั่ง: echo $0 — Terminal แสดงชื่อ shell นำหน้าด้วย hyphen
เปลี่ยน Login Shell
- System Preferences > Users & Groups
- คลิกล็อก ใส่รหัสแอดมิน
- คลิกขวาที่ชื่อผู้ใช้ในรายการ > Advanced Options
- ในหน้าต่าง dialog เปลี่ยน Login shell — ไม่ต้องรีสตาร์ท Mac แค่ quit และเปิด Terminal ใหม่
เปลี่ยน default shell ของ Terminal สำหรับ user ใดๆ: Terminal > Preferences > General ตรง Shells open with เลือก Command (complete path) ใส่ path ของ shell ใหม่
ปรับแต่ง Command Prompt
Prompt เริ่มต้นแสดงข้อมูลเดิมทุกครั้ง มี special character sequences มาก ที่นำมา define prompt แล้วแสดงข้อมูลน่าสนใจ
รูปลักษณ์ prompt เก็บใน environment variable $PS1 พิมพ์ echo $PS1 จะได้ string-coded แบบ default:
\h:\W \u\$
- \h = host computer name
- \W = current working directory
- \u = current user
บน macOS .bash_profile เก็บ preferences ของ shell — การปรับแต่งในนี้ใช้กับ shell session เท่านั้น ไม่ใช่ shell scripts แก้ .bash_profile ด้วย nano: nano ~/.bash_profile
เพิ่มบรรทัดใหม่: PS1="..." ใส่ลำดับตัวอักษรระหว่างเครื่องหมายคำพูด มีรายการครบใน bash manual ตัวอย่าง:
PS1="\!\d\u\$"
- ! = history number ของคำสั่งนี้
- \d = วันที่ format weekday/month/date
- \u = username
- $ = effective UID
พิมพ์เสร็จ กด Control + O เขียนข้อมูลใหม่ แล้ว Control + T บันทึกลง .bash_profile ปิดและเปิด Terminal ใหม่เพื่อดูการเปลี่ยนแปลง
Prompt ที่ผมชอบ: PS1="\w \! \$" ลองดู ชอบไหม บนระบบ multiuser ใส่ hostname, username, bash version, history number ฯลฯ ได้
ลอง Terminal Alternatives
Terminal เป็น CLI เริ่มต้นมาหลายทศวรรษ ไม่ว่าจะเพิ่งเริ่มหรือใช้มานาน การปรับแต่งข้างต้นทำให้ productive มากขึ้น เหมือนแอป Apple อื่นๆ Terminal พยายามสมดุลระหว่าง accessibility สำหรับมือใหม่ และ power features สำหรับนักพัฒนา
อยากเป็น power user ของ command line ต้องการฟีเจอร์มากกว่า: split-pane, autocomplete, search, paste history ฯลฯ ลอง Terminal alternatives ที่เหมาะกับ workflow ของคุณ