PS1
www.tanabutr.co.th/photobook
ปรกติใช้เชลล์ไปก็ไม่ค่อยได้ตั้งค่า PS1 เท่าไรนักเพราะคิดว่ามันดีอยู่แล้ว. PS1 เป็นตัวแปรสภาพแวดล้อมสำหรับตั้งแค่พรอมต์ (prompt) โดยปรกติพรอมต์ของ bash ทั่วๆไปก็จะเป็น
poonlap@colinux:~$
คือชื่อล็อกอินตามด้วยเครื่องหมาย @, ชื่อโฮสคั่นด้วยเครื่องหมาย : และชื่อไดเรกทอรีที่ทำงานอยู่. ลอง echo ดูก็จะเห็นเป็น
poonlap@colinux:~$ echo $PS1 \u@\h:\w\$
- \u คือ username
- \h คือ hostname แบบสั้นๆ
- \w คือ working directory
- \$ แสดงพรอม์เป็นเครื่องหมาย $ สำหรับยูสเซอร์ธรรมดาและ # สำหรับ root
ใช้ไปใช้มามันก็ดีอยู่แต่พอไปไดเรกทอรีที่ลึกๆมันก็ยาวเกินบรรทัดจะพิมพ์คำสั่งอะไรทีก็ตกขอบจอบ่อยๆ. เลยนึกได้ว่าไปเอาค่าพรอมต์ของ cygwin มาใช้ดีกว่า คือคล้ายๆกันแต่มีการขึ้นบรรทัดใหม่หลังไดเรกทอรีที่ทำงานอยู่แล้วค่อยแสดงพรอมต์.
poonlap@stardust ~ $ echo $PS1 \[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$
ดูค่า $PS1 แล้วเหมือนจะยุ่งยากแต่จริงๆแล้วตัวที่ดูยุ่งๆคือส่วนที่ใส่สี ansi color ให้พรอมต์. ถ้าจะทำให้ง่ายหน่อยก็เป็น
$ export PS1='\u@\h \w\n\$ ' poonlap@colinux ~ $
คือไม่เอาสี. และสังเกตว่าหลังเครื่องหมาย $ มีช่องไฟหนึ่งตัวสำหรับเวลาพิมพ์คำสั่งแล้วจะได้ไม่ไปติดกับพรอมต์. ใช้แบบนี้ดีกว่ามั่นใจได้ว่าคำสั่งที่สั่งจะอยู่ตรงต้นบรรทัดเสมอ.
อ่านเพิ่มเติม
- Bash reference manual: Controlling the prompt.