หากคุณใช้ Linux มาสักพัก โดยเฉพาะเริ่มคุ้นเคยกับบรรทัดคำสั่ง Linux คุณจะรู้ว่า BASH เป็น Linux Shell
BASH ย่อมาจาก Bourne Again Shell มี Shell อื่นๆ เช่น csh, zsh, dash, korn
Shell คือ Interpreter ที่รับคำสั่งจากผู้ใช้และรันเพื่อดำเนินการ เช่น นำทางระบบไฟล์ รันโปรแกรม และโต้ตอบกับอุปกรณ์
หลาย Distribution ที่อิง Debian เช่น Debian, Ubuntu, Linux Mint ใช้ DASH แทน BASH DASH ย่อมาจาก Debian Almquist Shell DASH คล้าย BASH แต่เล็กกว่ามาก
ไม่ว่าจะใช้ BASH หรือ DASH คุณจะมีไฟล์ชื่อ .bashrc และมีหลายไฟล์
เปิดเทอร์มินัล พิมพ์คำสั่ง:
find / -name .bashrc
ผลลัพธ์จะได้ 3 ไฟล์:
- /etc/skel/.bashrc
- /home/gary/.bashrc
- /root/.bashrc
ไฟล์ /etc/skel/.bashrc จะถูกคัดลอกไปยังโฟลเดอร์ Home ของผู้ใช้ใหม่ทุกครั้งที่สร้างบัญชี
ไฟล์ /home/gary/.bashrc ใช้เมื่อผู้ใช้ gary เปิด Shell และไฟล์ root ใช้เมื่อ root เปิด Shell
.bashrc คืออะไร?
ไฟล์ .bashrc เป็น Shell Script ที่รันทุกครั้งที่ผู้ใช้เปิด Shell ใหม่
เช่น เปิดเทอร์มินัล พิมพ์:
source ~/.bashrc
มีอะไรแสดงไหม? ขึ้นอยู่กับ .bashrc ของคุณ ทุกครั้งที่เริ่ม Bash Shell .bashrc จะรันอัตโนมัติ (เปิดเทอร์มินัลใหม่ รัน Shell เอง หรือ reload ด้วย source)
ดังนั้น .bashrc เหมาะสำหรับวางคำสั่งที่ต้องการรันทุกครั้งที่เปิด Shell
ตัวอย่าง: เปิด .bashrc ด้วย nano:
nano ~/.bashrc
เพิ่มบรรทัดต่อไปนี้ท้ายไฟล์:
echo Hello $USER
บันทึกด้วย CTRL+O ออกจาก nano ด้วย CTRL+X
ในเทอร์มินัล รัน:
source ~/.bashrc
ควรเห็นคำว่า "Hello" ตามด้วยชื่อผู้ใช้ที่ล็อกอิน
คุณสามารถใช้ .bashrc ทำอะไรก็ได้ ตัวอย่างยอดนิยมคือ neofetch แสดงข้อมูลระบบสำคัญ หลายคนใช้เป็นข้อความต้อนรับเมื่อเปิดเทอร์มินัล ลองติดตั้ง neofetch:
sudo apt install neofetch
เพิ่มบรรทัด neofetch ใน .bashrc
neofetch
โหลด Bash ใหม่ในเทอร์มินัล:
source ~/.bashrc
ควรเห็นข้อมูลระบบคล้ายภาพ (แต่เป็นข้อมูล Distribution ของคุณ)
การใช้ Aliases
.bashrc มักใช้ตั้งค่า Aliases สำหรับคำสั่งที่ใช้บ่อย เพื่อไม่ต้องจดจำคำสั่งยาว
บางคนคิดว่านี้ไม่ดี เพราะอาจลืมคำสั่งจริงเมื่ออยู่บนเครื่องที่ไม่มี .bashrc ของตัวเอง
แต่ความจริงคือ คำสั่งทั้งหมดหาได้ง่ายจากออนไลน์และ man pages การเพิ่ม Aliases จึงเป็นประโยชน์มากกว่า
ดู .bashrc เริ่มต้นของ Ubuntu หรือ Mint จะเห็น Aliases ตั้งอยู่แล้ว เช่น:
alias listall='ls -alF'
คำสั่ง ls ใช้แสดงไฟล์และไดเรกทอรี
-alF แสดงไฟล์ทั้งหมดรวมไฟล์ซ่อน (ขึ้นต้นด้วยจุด) รวมชื่อเจ้าของ และจัดประเภทไฟล์
สร้าง Alias อื่นเพื่อแสดงแบบอื่น:
alias listcols='ls -A -CF'
-A แสดงทั้งหมดแต่ละไฟล์ .. (parent directory) -CF แสดงเป็นคอลัมน์พร้อมการจัดประเภท
ตอนนี้พิมพ์คำสั่งเหล่านี้ในเทอร์มินัลได้ทุกเมื่อ:
listall
หากคุณรันคำสั่งยาวๆ บ่อย ควรเพิ่ม Alias ของตัวเองใน .bashrc
รูปแบบ Alias:
alias name='command'
ระบุคำสั่ง alias ตามด้วยชื่อ alias แล้วคำสั่งที่ต้องการรันหลังเครื่องหมายเท่ากับ
ตัวอย่าง:
alias up='cd ..'
คำสั่งนี้ให้คุณย้อนกลับไปโฟลเดอร์บนได้ด้วยคำว่า up
สรุป
ไฟล์ .bashrc เป็นเครื่องมือทรงพลังและวิธีปรับแต่ง Shell Linux ใช้งานอย่างถูกต้องจะเพิ่มประสิทธิภาพการทำงานของคุณหลายเท่า
คำถามที่พบบ่อย (FAQ)
- Mac: แก้ไข .bashrc ยังไง? ง่ายเท่า Linux เข้าถึงและสร้าง .bashrc ผ่าน Terminal ของ Apple ใช้ไม่กี่วินาที
- Windows รองรับ .bashrc ได้ไหม? ไม่รองรับโดยตรง แต่ใช้ Command Prompt แทนได้สำหรับฟังก์ชันคล้าย .bashrc