เพิ่ม Git Branchใน Command Prompt ใน Linux/UNIX shell

NottDev
2 min readJul 16, 2019

--

สำหรับหลายท่านที่ชอบใช้ command prompt เป็นหลัก ก็คงน่าจะชอบที่จะปรับแต่งมันให้มีสีสัน เพื่อให้ง่ายต่อการใช้งาน ซึ่งบทความนี้จะแนะนำ trick เล็กๆ ในการปรับแต่ง เพิ่ม git branch ให้แสดงใน command prompt กันน่ะครับ ไม่รอช้าลุยกันเล๊ยยยย++

วิธีการตั้งค่า

  • เปิด Terminal ขึ้นมา จากนั้นพิมพ์คำสั่งด้านล่าง เพื่อเปิดไฟล์ .bash_profile ขึ้นมาแก้ไข ค่าของตัวแปร PS1
$ sudo nano ~/.bash_profile
  • เพิ่มคำสั่งด้านล่าง เพื่อกำหนดค่าใหม่ให้กับตัวแปร PS1 (ค่าเริ่มต้น คือ \s-\v\$ .)
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] \n\$ "

อธิบายเพิ่มเติม++

\u@\h (แสดงชื่อผู้ใช้และชื่อโฮสต์)
\[\033[32m\]\w (แสดงชื่อไดเรกตอรีปัจจุบันด้วยสีเขียว)
\[\033[33m\]\$(parse_git_branch)\ (แสดงชื่อ Branch ปัจจุบันด้วยสีเหลือง)
[\033[00m\] \n\$ (ขึ้นบรรทัดใหม่พร้อมแสดงอักขระ $ ด้วยสีขาว)
  • บันทึก เป็นอันเสร็จเรียบร้อย :)

จากนั้นให้ปิดแล้วเปิด Terminal ขึ้นมาใหม่ เพื่อให้ระบบเรียกใช้ค่าใหม่ที่พึ่งแก้ไขไป แล้วลองเข้า Directory โปรเจคที่มี git จากรูปภาพตัวอย่างด้านบน อธิบายดังนี้

  • nottdev@Siriphons-MacBook-Pro แสดงชื่อผู้ใช้กับชื่อโฮสต์
  • ~/Workspace/demo แสดงชื่อ Directory ที่อยู่ปัจจุบัน
  • (develop) แสดงชื่อ Branch ปัจจุบันที่ใช้งานอยู่

เพิ่มเติม

.bash_file คือ ไฟล์ที่เก็บคำแนะนำการตั้งค่าสำหรับสภาพแวดล้อมของเชลล์ เช่นตัวแปรสภาพแวดล้อมและสคริปต์เริ่มต้นที่จะดำเนินการ ในระบบของ linux นั้นยูสเซอร์แต่ละยูสเซอร์จะมี .bash_profile อยู่ ซึ่งมันคือ user profile ซึ่งเป็น profile ที่มีผลกับเฉพาะ user นี้เท่านั้น จะมีการถูกรัน(execute) ทุกครังที่ login

PS1 (PS1 denotes Prompt String 1.) คือ หนึ่งในตัวแปรของ Prompt (PS1, PS2, PS3 and PS4) ใน Linux/UNIX shell ที่เก็บค่าของรูปแบบการแสดงผลของ Command Prompt ซึ่งเราสามารถกำหนดรูปแบบการแสดงผลได้ตามที่ตัวการ

อ่านเพิ่มเติมได้ที่ How to: Change / Setup bash custom prompt (PS1)

(ข้อมูลอาจมีข้อผิดพลาด ถ้าจะเอาบทความนี้ไปอ้างอิงที่อื่นให้ตรวจสอบให้ดีก่อนนะครับ ขอบคุณครับ)

สำหรับวันนี้ ต้องขอลาไปก่อน สวัสดีครับ NottDev :)

--

--

NottDev
NottDev

Written by NottDev

Your only limit is your mind.

No responses yet