"เชลล์ล็อกอินแบบโต้ตอบเริ่มต้นหลังจากการล็อกอินสำเร็จโดยใช้ / bin / เข้าสู่ระบบโดยอ่านไฟล์ / etc / passwd โดยปกติการเรียกใช้เชลล์นี้จะอ่าน / etc / profile และเทียบเท่าส่วนตัว ~ / .bash_profile
โดยปกติเชลล์ที่ไม่ใช่การล็อกอินจะเริ่มทำงานที่บรรทัดรับคำสั่งโดยใช้โปรแกรมเชลล์ (เช่น [prompt] $ / bin / bash) หรือโดยคำสั่ง / bin / su เชลล์ที่ไม่ใช่การล็อกอินแบบโต้ตอบเริ่มต้นด้วยโปรแกรมเทอร์มินัลเช่น xterm หรือ konsole จากภายในสภาพแวดล้อมแบบกราฟิก โดยปกติแล้วการเรียกใช้เชลล์ประเภทนี้จะคัดลอกสภาพแวดล้อมพาเรนต์แล้วอ่านไฟล์ ~ / .bashrc ของผู้ใช้เพื่อดูคำแนะนำในการตั้งค่าเริ่มต้นเพิ่มเติม "
http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
ดังนั้นฉันจะไม่ใส่ตัวแปรสภาพแวดล้อมใน bashrc เพราะมันไม่เพียง แต่ต่อต้านการประชุมทั่วไป แต่คุณจะพลาด varialbles bashrc ของคุณเมื่อเรียกใช้เทอร์มินัลจากสภาพแวดล้อมเดสก์ทอปแบบกราฟิก
ใน Redhat ใน/etc/profile
ฉันพบความคิดเห็นนี้:
"นามแฝงทั้งระบบและฟังก์ชั่นควรอยู่ใน / etc / bashrc ตัวแปรสภาพแวดล้อมส่วนบุคคลและโปรแกรมเริ่มต้นควรเข้าสู่ ~ / .bash_profile นามแฝงและฟังก์ชั่นส่วนบุคคลควรเข้าสู่ ~ / .bashrc"
ดังนั้นหากคุณต้องการตั้งค่าตัวแปรสภาพแวดล้อมบนพื้นฐานของผู้ใช้ให้ทำในไฟล์. bash_profile ของผู้ใช้
มุ่งหน้าไปที่.bash_profile
ฉันอ่าน:
"ตัวแปรสภาพแวดล้อมส่วนบุคคลและโปรแกรมเริ่มต้น
ชื่อแทนส่วนบุคคลและฟังก์ชั่นควรไปใน ~ / .bashrc ตัวแปรสภาวะแวดล้อมทั้งระบบและโปรแกรมเริ่มต้นอยู่ใน / etc / profile นามแฝงทั้งระบบและฟังก์ชั่นอยู่ใน / etc / bashrc "
บทสรุป
ถ้าคุณต้องการเพียงแค่รูทเพื่อดูโปรแกรมที่อยู่ตัวอย่างเช่นใน / sbin
ฉันจะเพิ่มพา ธ นั้นไปยัง.bash_profile
ไฟล์ของรูท แต่ถ้าคุณต้องการผู้ใช้ทุกคนจะเห็นสิ่งที่รากเฉพาะโปรแกรมที่ติดตั้งบนกล่องของคุณผมจะนำเข้า/sbin
/etc/.profile
ขณะนี้ผู้ใช้ทุกคนสามารถใช้การเติมเต็มของแท็บเพื่อค้นหาโปรแกรมเฉพาะของรูทและยกระดับสิทธิ์หากจำเป็น
กรณีพิเศษ: SSH
เมื่อ ssh เริ่มต้นด้วย commandline เชลล์ล็อกอินแบบโต้ตอบจะเริ่มต้นขึ้น แต่ในกรณี/etc/profile
นี้ไม่ได้อ่าน เมื่อฉันกำหนดตัวแปรสภาพแวดล้อมใน.bash_profile
ไฟล์ของผู้ใช้แต่ละคนมันทำงานร่วมกับ ssh
~/.profile
เป็นอีกตัวเลือกที่ใช้ได้เช่นกัน