~/.bashrcและ/etc/bash.bashrcจะถูกเรียกใช้ทุกครั้งที่bashเชลล์แบบโต้ตอบเริ่มทำงาน
ในทางตรงกันข้าม~/.profileและ/etc/profileจะทำงานทุกครั้งที่มีการเข้าสู่ระบบเชลล์เริ่มต้น ดังนั้นจึงไม่จำเป็นต้องเป็นbashเชลล์ แต่จำเป็นต้องเป็นเชลล์ล็อกอิน (และbashอินสแตนซ์เชลล์จำนวนมากไม่ใช่เชลล์ล็อกอิน )
bashเปลือกเปลือกที่โปรแกรมเปลือกที่ให้มันเป็นbashมากกว่าโปรแกรมอื่น ๆ dashบางอย่างเช่น
- เปลือกเข้าสู่ระบบเป็นเปลือกที่เริ่มต้นโดยอัตโนมัติเป็นผลมาจากการเข้าสู่ระบบเพื่อให้ส่วนต่อประสานผู้ใช้ (กราฟิกหรือบรรทัดคำสั่ง) สำหรับการเข้าสู่ระบบ เมื่อออกจากการเข้าสู่ระบบเชลล์การเข้าสู่ระบบจะยุติลง
ดังนั้นการใส่คำชื่นชมที่ต่อท้ายรายการPATHในbashrcไฟล์จะ:
ไม่ทำอะไรเลยเมื่อเปลือกไม่ได้bashซึ่งมักจะเป็นกรณี ตัวอย่างเช่นPATHจะไม่มีการแก้ไขเมื่อคุณอยู่ในเซสชันการเข้าสู่ระบบแบบกราฟิก โปรดจำไว้PATHว่าไม่ได้ถูกใช้โดยโปรแกรมบรรทัดคำสั่งเท่านั้น
ต่อท้ายซ้ำแล้วซ้ำอีกในการปรากฏตัวของbashเปลือกที่ซ้อนกัน ดังนั้นถ้าคุณเริ่มต้นเปลือกภายในเปลือก - ซึ่งเป็นเรื่องธรรมดามากสำหรับหลากหลายเหตุผล - แล้วคุณจะมีหลายรายการซ้อนกันบนของคุณ~/bin PATHสิ่งนี้ทำให้PATHตัวแปรสภาพแวดล้อมอ่านยากและบางครั้งก็ลดประสิทธิภาพลง
สิ่งเหล่านี้จะไม่พึงประสงค์ ดังนั้นมันจะผิดที่จะใส่ลงในbashrcไฟล์ ~/.profileจริงๆมันอยู่ใน ~/.profileเป็นสถานที่ที่เหมาะสมสำหรับ:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
เชลล์ที่ไม่ได้ล็อกอินมีเชลล์ล็อกอิน (หรือบางอย่างที่ทำงานเหมือนเชลล์ล็อกอิน) เป็นพาเรนต์และสืบทอดตัวแปรสภาพแวดล้อมส่วนใหญ่รวมถึงPATHจากเชลล์ล็อกอินนี้ ดังนั้นการวางคำสั่งการแก้ไขพา ธ~/.profileให้คุณออกจากระบบและกลับมาใหม่เพื่อให้มีประสิทธิภาพ แต่จะมีผลต่อสภาพแวดล้อมของเชลล์ที่ไม่ใช่การล็อกอินด้วย (รวมถึงสภาพแวดล้อมของโปรแกรมที่ไม่ใช่เชลล์ด้วยเนื่องจากทุกโปรแกรมได้รับมา ชุดตัวแปรสภาพแวดล้อมของตัวเอง - เรียกว่า "สภาพแวดล้อม" - สืบทอดมาจากกระบวนการแม่)