/etc/pathsเป็นส่วนหนึ่งของสิ่งที่ใช้ในการตั้งค่า$PATHสำหรับกระบวนการเชลล์ เมื่อคุณเปิดหน้าต่าง terminal ใหม่ก็เริ่มต้นbashซึ่งไหลสคริปต์เริ่มต้นหลาย/etc/profileและ~/.bash_profileOR (หากไม่ได้อยู่) ~/.bash_loginOR ~/.profile(หากไม่ได้อยู่อย่างใดอย่างหนึ่ง) $PATHสคริปต์เหล่านี้ตั้งค่าสภาพแวดล้อมเปลือกรวมทั้ง
หนึ่งในสิ่งที่/etc/profileไม่ถูกเรียกใช้/usr/libexec/path_helperซึ่งอ่าน/etc/pathsและไฟล์ใด ๆ ในและเพิ่มเนื้อหาของพวกเขาไป/etc/paths.d $PATHแต่นี่เป็นเพียงจุดเริ่มต้น สคริปต์เริ่มต้นของคุณเอง (ถ้ามี) สามารถเพิ่ม$PATHแก้ไขแทนที่มันอย่างสมบูรณ์ ฯลฯ
ดูเหมือนว่าผมชอบสคริปต์เริ่มต้นของคุณ (และ / หรือสิ่งที่มันวิ่ง) /etc/pathsคือการเพิ่มจำนวนของรายการไปยังชุดพื้นฐานที่จะได้รับจาก "Users / myusername / .node_modules_global / bin: /Users/mac/.node_modules_global/bin:" ถูกเพิ่มไปยังจุดเริ่มต้นของ$PATH(หมายถึงไดเรกทอรีเหล่านั้นจะถูกค้นหาก่อน) และ ": / Users / mac / Library / Android / sdk / platform-tools: / platform-tools "ถูกเพิ่มในตอนท้าย หากคุณต้องการทราบว่ากำลังเพิ่มอะไรอยู่คุณต้องดูที่สคริปต์เริ่มต้นของคุณ
BTW กระบวนการนี้สำหรับการตั้งค่า$PATHใช้กับเชลล์ "ล็อกอิน" bash เท่านั้น สิ่งใดก็ตามที่ดำเนินการโดย bash shell จะสืบทอด$PATHมาจากมันดังนั้นอาจมีสิ่งเดียวกัน bash non-login shells ทำตามขั้นตอนการตั้งค่าที่แตกต่างกันบ้าง เปลือกหอยอื่น ๆ และสิ่งที่ไม่ได้เริ่มจากเปลือกที่ทั้งหมด (เช่น cron งาน) $PATHsอาจจะมีแตกต่างอย่างสิ้นเชิง
/etc/pathsของฉัน แต่ฉันกำลังวิ่ง10.4.11และสิ่งต่าง ๆ อาจมีการเปลี่ยนแปลงตั้งแต่นั้นมา