หากคุณโต้ตอบกับ Linux ผ่าน Bash shell บ่อยๆ คุณจะต้องการปรับแต่งมันนิดหน่อย – อาจเพิ่ม shortcut ของตัวเอง ตั้งค่าสภาพแวดล้อมให้ถูกใจ หรือแม้แค่เพิ่มการตกแต่งส่วนตัว
นี่คือสิ่งที่ Bash profile ทำ มันเก็บอยู่ใน home directory ของคุณ และสามารถแก้ไขได้เพื่อตั้งค่าให้เป็นไปตามที่คุณต้องการทุกครั้งที่ล็อกอิน
การแก้ไข Bash Profile ของคุณ
เพื่อแก้ไข bash profile ให้เปิดด้วย text editor nano โดยรัน:
nano ~/.bash_profile
หากต้องการ backup profile ปัจจุบัน ให้ copy ไฟล์โดยรัน:
cp .bash_profile .bash_profile.bak
หากไฟล์ ~/.bash_profile ไม่มีอยู่ ไฟล์ ~/.profile จะถูกอ่านแทน นี่ค่าเริ่มต้นใน Ubuntu Linux distribution
หากต้องการ copy เนื้อหาของ ~/.profile เริ่มต้นไปยัง ~/.bash_profile ใหม่เพื่อแก้ไข ให้ copy:
cp ~/.profile ~/.bash_profile
หมายเหตุ ~/ ใน Linux shell คือ shortcut ไปยัง home directory ของผู้ใช้ปัจจุบัน
ตัวอย่าง
นี่คือบางสิ่งที่คุณสามารถทำกับ Bash profile เพื่อเริ่มต้น
เปลี่ยน Shell Prompt
ปกติ shell prompt ของคุณจะคล้ายๆ นี้:
admin@wsxdn.com:~$
…ผสมผสานของชื่อผู้ใช้ hostname และ current working directory สามารถเปลี่ยนได้โดยแก้ไขไฟล์ .bash_profile และเพิ่มบรรทัดต่อไปนี้:
export PS1="?"
นี่จะเปลี่ยน prompt ให้เป็น locomotive emoji นี่เพียงอย่างเดียวน่าจะไม่ค่อยมีประโยชน์ แต่อื่นๆ สามารถเพิ่มได้
นี่จะเปลี่ยน prompt ให้เป็น current logged in user ตามด้วย locomotive:
export PS1="\u ?"
คุณสามารถเพิ่มข้อความ ตัวอักษร และค่าของตัวเองได้ สำหรับรายการ built-in variables ทั้งหมดที่ใช้ได้ (วันที่ username current directory ฯลฯ) ดูที่:
https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Controlling-the-Prompt
เปลี่ยนสีข้อความและพื้นหลัง!
ต่อยอดจากตัวอย่างข้างต้น เราสามารถเพิ่มสีได้ ตัวอย่างนี้จะทำให้ prompt text สีแดง พื้นหลังสีน้ำเงิน:
export PS1="\e[44;31m\u ? \e[0m "
…และนี้จะทำให้ train emoji กระพริบ:
export PS1="\e[44;31m\u \e[5m? \e[0m "
โปรดทราบว่า:
- \e[ : เริ่มรูปแบบการจัดรูปแบบ
- 44;31 : สีพื้นหลังและสีข้อความ ตามลำดับ
- \e[5m ทำให้ train icon กระพริบ
- \e[m : หยุดรูปแบบการจัดรูปแบบโดยรีเซ็ตทุก attribute
มีสีและตัวเลือกจัดรูปแบบเยอะมาก นี่ไม่ใช่รายการครบถ้วน แต่ให้ตัวอย่างที่มีประโยชน์:
| Code | ความหมาย | ตัวอย่าง |
|---|---|---|
| 1 | Bold (หนา) | “\e[1mBolded” |
| 2 | Dim (จาง) | “\e[2mDimmed” |
| 3 | Underline (ขีดเส้นใต้) | “\e[4mUnderlined” |
| 4 | Blink (กระพริบ) | “\e[5mBlinking” |
| 5 | Inverted Colour (สีกลับ) | “\e[7mInverted” |
สีที่ใช้ได้เป็นค่าตัวเลขที่จับคู่เป็น background/text combinations จะแตกต่างกันไปตามสภาพแวดล้อม – คำสั่งนี้จะแสดง combinations ที่มีอยู่ในระบบของคุณ:
for x in {0..8}; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo ""
เพิ่ม Shortcuts / Functions ของตัวเอง
หากคุณพบว่าตัวเองพิมพ์ชุดคำสั่งเดิมซ้ำๆ คุณสามารถกำหนด shortcut function ใน bash profile การเพิ่มโค้ดต่อไปนี้ในไฟล์ ~/.bash_profile จะกำหนด function ใหม่ที่ list directory แล้ว exclaim ว่ามันสวยแค่ไหน:
myShortcut(){ ls -la echo "Look at that nice directory!" }
เพื่อรัน ให้พิมพ์แค่:
myShortcut
ลงใน shell และเนื้อหาของ function นั้นจะถูก execute
นำการเปลี่ยนแปลงไปใช้
เพื่อนำการเปลี่ยนแปลงของ profile ไปใช้และเห็นผลทันทีโดยไม่ต้อง restart หรือปิดเทอร์มินัล ให้รัน:
source ~/.bash_profile
Zsh คืออย่างไร?
เราได้สำรวจ zsh shell ไปเมื่อเร็วๆ นี้
Zsh ก็มี profile file ที่ทำหน้าที่เหมือน bash profile อยู่ที่:
~/.zprofile
มันก็สามารถแก้ไขได้เหมือน Bash profile แต่ด้วยฟังก์ชันเฉพาะ Zsh ลองทำดูสิ!