เพิ่มสีสันให้ Prompt ใน Terminal


ทิปนี้จะว่ายากก็ยาก ง่ายก็ง่าย เหมือนเป็นฟังก์ชันที่ซ่อนอยู่มากกว่า

ปกติ prompt ใน Ubuntu terminal จะเป็น text ธรรมดาตามรูป

Screenshot-Terminal-1

แต่ถ้าเราอยากให้มันเป็นสีสันสวยงามสะดุดตาแบบนี้

Screenshot-Terminal

ก็ทำได้ง่ายๆ โดยเปิด nautilus เข้าไปที่ Home folder กด Ctrl + H เพื่อโชว์ไฟล์ที่ซ่อนอยู่ หาไฟล์ที่ชื่อว่า .bashrc ดับเบิ้ลคลิกเปิดกับ gedit ได้ทันที

แล้วก็มองหาบรรทัดที่มีคำว่า

#force_color_prompt=yes

ลบเครื่องหมายคอมเมนต์ # ข้างหน้าทิ้งซะ เซฟไฟล์ แล้วก็ลองเปิด terminal ใหม่ดู

ถ้าสังเกตดูก็จะพบว่ามันจะแสดงผลตาม PS1 ที่อยู่ข้างล่างบรรทัด if [ “$color_prompt” = yes ]; then

เช่นในกรณีของผม

PS1=’${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]\$ ‘

อธิบายคร่าวๆ คือ \[33[01;32m\] หมายถึง ปรับแต่งโค้ดสี Foreground เป็นสีเขียวแบบเน้น เป็นต้น หากอยากอ่านรายละเอียดของโค้ดแต่ละอันเต็มๆ ลองไปที่ลิงค์พวกนี้ดู

http://www.neowin.net/forum/lofiversion/index.php/t148706.html

http://ubuntuforums.org/showthread.php?t=614743

แต่ถ้าเราเข้าเป็น root shell เช่น sudo su ก็จะเห็นว่า root shell มันกลับเป็น text แบบเดิมอีกละ นั่นเพราะว่า .bashrc ใน root’s home directory ยังไม่ได้แก้ ถ้าจะแก้ก็ต้องเปิด terminal แล้วพิมพ์คำสั่ง

sudo gedit /root/.bashrc

มองหาบรรทัด

# Comment in the above and uncomment this below for a color prompt
# PS1='${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]\$ '

แล้วก็ลบเครื่องหมาย # ข้างหน้าบรรทัด PS1 ทิ้งซะ เซฟไฟล์ เป็นอันเสร็จ

แถมอีกนิดแล้วกัน เป็นทิปคำสั่งไว้เล่นบน terminal

อันแรกทำ terminal ให้มีเลขวิ่งๆแบบ Matrix
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"

และทำให้ terminal ของคุณไล่เฉดสีขาว-ดำ
yes "$(seq 232 255;seq 254 -1 233)" | while read i; do printf "\x1b[48;5;${i}m\n"; sleep .01; done

สองอันนี้เอามาจาก http://www.pixelbeat.org/docs/terminal_colours/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: