ค้นหาเว็บไซต์

วิธีปรับแต่งสี Bash และเนื้อหาใน Linux Terminal Prompt


ปัจจุบัน Bash เป็นเชลล์เริ่มต้นในลีนุกซ์รุ่นใหม่ส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) อย่างไรก็ตาม คุณอาจสังเกตเห็นว่าสีข้อความในเทอร์มินัลและเนื้อหาพร้อมต์อาจแตกต่างกันไปใน distro ที่หนึ่งไปยังอีกที่หนึ่ง

การอ่านที่แนะนำ: 5 Open Source Shells ที่ใช้บ่อยที่สุดสำหรับ Linux

ในกรณีที่คุณสงสัยว่าจะปรับแต่งสิ่งนี้อย่างไรเพื่อให้เข้าถึงได้ดีขึ้นหรือไม่ได้ตั้งใจ โปรดอ่านต่อ – ในบทความนี้ เราจะอธิบายวิธีการทำเช่นนั้น

ตัวแปรสภาพแวดล้อม Bash ของ PS1

พรอมต์คำสั่งและรูปลักษณ์ของเทอร์มินัลจะถูกควบคุมโดยตัวแปรสภาพแวดล้อมที่เรียกว่า PS1 ตามหน้าคู่มือ Bash PS1 แสดงถึงสตริงพร้อมท์หลักซึ่งจะแสดงเมื่อเชลล์พร้อมที่จะอ่านคำสั่ง

เนื้อหาที่อนุญาตใน PS1 ประกอบด้วยอักขระพิเศษที่ใช้เครื่องหมายแบ็กสแลชหลายตัว ซึ่งความหมายแสดงอยู่ในส่วน การแจ้ง ของหน้า man

เพื่อให้เห็นภาพ เรามาแสดงเนื้อหาปัจจุบันของ PS1 ในระบบของเรา (ซึ่งอาจแตกต่างออกไปบ้างในกรณีของคุณ):

echo $PS1

[\u@\h \W]$

ตอนนี้เราจะอธิบายวิธีปรับแต่ง PS1 ตามความต้องการของเรา

การปรับแต่งรูปแบบ PS1

ตามส่วน PROMPTING ในหน้า man นี่คือความหมายของอักขระพิเศษแต่ละตัว:

  1. \u: ชื่อผู้ใช้ ของผู้ใช้ปัจจุบัน
  2. \h: ชื่อโฮสต์ จนถึงจุดแรก (.) ในชื่อโดเมนที่มีคุณสมบัติครบถ้วน
  3. \W: ชื่อฐาน ของไดเร็กทอรีการทำงานปัจจุบัน โดยมี $HOME ย่อด้วยเครื่องหมายทิลเดอ (~)
  4. \$: หากผู้ใช้ปัจจุบันเป็น root ให้แสดง #, $ มิฉะนั้น

ตัวอย่างเช่น เราอาจพิจารณาเพิ่ม \! หากเราต้องการแสดงหมายเลขประวัติของคำสั่งปัจจุบัน หรือ \H หากเราต้องการแสดง FQDN แทน ชื่อเซิร์ฟเวอร์แบบสั้น

ในตัวอย่างต่อไปนี้ เราจะนำเข้าทั้งสองอย่างในสภาพแวดล้อมปัจจุบันของเราโดยดำเนินการคำสั่งนี้:

PS1="[\u@\H \W \!]$"

เมื่อคุณกด Enter คุณจะเห็นว่าเนื้อหาที่แจ้งเปลี่ยนแปลงดังที่แสดงด้านล่าง เปรียบเทียบพรอมต์ก่อนและหลังการดำเนินการคำสั่งด้านบน:

ตอนนี้เราไปอีกขั้นหนึ่งแล้วเปลี่ยนสีของผู้ใช้และชื่อโฮสต์ในพร้อมท์คำสั่ง – ทั้งข้อความและพื้นหลังโดยรอบ

จริงๆ แล้ว เราสามารถปรับแต่งพรอมต์ได้ 3 ด้าน:

Text Format Foreground (text) color Background color
0: normal text 30: Black 40: Black
1: bold 31: Red 41: Red
4: Underlined text 32: Green 42: Green
33: Yellow 43: Yellow
34: Blue 44: Blue
35: Purple 45: Purple
36: Cyan 46: Cyan
37: White 47: White

เราจะใช้อักขระพิเศษ \e ที่จุดเริ่มต้นและ m ที่ท้ายเพื่อระบุว่าสิ่งที่ตามมาคือลำดับสี

ในลำดับนี้ ค่าสามค่า (พื้นหลัง, รูปแบบ และ เบื้องหน้า) จะถูกคั่นด้วยเครื่องหมายจุลภาค (หากไม่มีการระบุค่า ระบบจะถือว่าค่าเริ่มต้น) .

แนะนำให้อ่าน: เรียนรู้การเขียนสคริปต์ Bash Shell ใน Linux

นอกจากนี้ เนื่องจากช่วงของค่าแตกต่างกัน จึงไม่สำคัญว่าคุณจะระบุ (พื้นหลัง, รูปแบบ หรือ เบื้องหน้า) ใดก่อน

ตัวอย่างเช่น PS1 ต่อไปนี้จะทำให้ข้อความแจ้งปรากฏขึ้นในข้อความที่ขีดเส้นใต้ สีเหลือง โดยมีพื้นหลัง สีแดง:

PS1="\e[41;4;33m[\u@\h \W]$ "

แม้ว่ารูปลักษณ์ภายนอกจะดูดี แต่การปรับแต่งนี้จะคงอยู่เฉพาะในเซสชันผู้ใช้ปัจจุบันเท่านั้น หากคุณปิดเทอร์มินัลหรือออกจากเซสชัน การเปลี่ยนแปลงจะหายไป

เพื่อที่จะทำการเปลี่ยนแปลงเหล่านี้อย่างถาวร คุณจะต้องเพิ่มบรรทัดต่อไปนี้ใน ~/.bashrc หรือ ~/.bash_profile ขึ้นอยู่กับการกระจายของคุณ:

PS1="\e[41;4;33m[\u@\h \W]$ "

อย่าลังเลที่จะลองใช้สีต่างๆ เพื่อค้นหาสิ่งที่ดีที่สุดสำหรับคุณ

สรุป

ในบทความนี้ เราได้อธิบายวิธีปรับแต่งสีและเนื้อหาของพรอมต์ Bash ของคุณ หากคุณมีคำถามหรือข้อเสนอแนะเกี่ยวกับโพสต์นี้ โปรดใช้แบบฟอร์มความคิดเห็นด้านล่างเพื่อติดต่อเรา เราหวังว่าจะได้ยินจากคุณ!