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 ~
$

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

อ่านเพิ่มเติม