เส้นทางใน/etc/pathsและ/etc/paths.d/*มักจะมีการเพิ่มการPATHโดยpath_helper path_helperถูกเรียกใช้จาก/etc/profileดังนั้นจะถูกเรียกใช้เมื่อ bash ถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบ แต่จะไม่ทำงานเมื่อ bash ถูกเรียกใช้เป็นเชลล์ที่ไม่ใช่การล็อกอินหรือเชลล์ที่ไม่โต้ตอบ
/etc/pathsมี/usr/local/binที่ท้ายโดยค่าเริ่มต้นและ/etc/paths.d/ว่างเปล่าโดยค่าเริ่มต้น
Terminal และ iTerm 2 เปิดเชลล์ใหม่เป็นเชลล์ล็อกอินตามค่าเริ่มต้นและเชลล์ที่เปิดเมื่อคุณ ssh กับคอมพิวเตอร์ของคุณก็เป็นเชลล์ล็อกอินด้วย เทอร์มินัลอีมูเลเตอร์จำนวนมากบนแพลตฟอร์มอื่นtmuxและโหมดเชลล์ใน Emacs เปิดเชลล์ใหม่เป็นเชลล์ที่ไม่ใช่การเข้าสู่ระบบ
ฉันได้เพิ่มบรรทัดนี้ไปที่/etc/launchd.conf:
setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin
มันเปลี่ยนค่าของPATHกระบวนการ launchd รูท ค่าถูกสืบทอดโดยกระบวนการอื่น ๆ ทั้งหมดรวมถึงกระบวนการ launchd ต่อผู้ใช้ คุณสามารถใช้การเปลี่ยนแปลงกับการ/etc/launchd.confรีสตาร์ทหรือโดยการเรียกใช้launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confและเรียกใช้กระบวนการใหม่
บน OS X ~/.profileจะไม่อ่านเมื่อคุณเข้าสู่ระบบแบบกราฟิก หากทั้งสอง~/.bash_profileและ~/.profileอยู่ทุบตีไม่ได้อ่าน~/.profileทั้ง
~/.MacOSX/environment.plist หยุดทำงานใน 10.8
/etc/profileเป็นสคริปต์ที่ใช้เป็นหลักโดยทุบตี? ฉันไม่เคยมีประสบการณ์กับกระสุนอื่น ๆ แต่ฉันคิดว่าพวกมันทำตามโครงสร้างที่แตกต่างกันหรือไม่?