เป็นไปได้ไหมที่จะค้นหาไฟล์ที่ตั้งค่า / เพิ่มลงในตัวแปรสภาพแวดล้อมและลำดับความสำคัญของไฟล์?


9

บางส่วนของตัวแปรสภาพแวดล้อมของฉัน ( $PATH, $MANPATHและเพื่อน ๆ ) มีการตั้งค่าบางส่วนในไฟล์ที่มาที่แตกต่างกัน

ฉันพบว่าตัวเองต้องการให้คำสั่งหรือวิธีการรวบรวมส่วนใดส่วนหนึ่งในตัวแปรสภาพแวดล้อมที่เฉพาะเจาะจงอย่างรวดเร็วมาจากไฟล์ใด

ชุด $ PATH ตัวอย่างเช่นได้รับอย่างเห็นได้ชัดของฉัน (เพิ่มไปยัง) ใน.bashrc, /etc/paths, /etc/paths.d/X11... $PATHและฉันยังคงมองหาว่าไฟล์ลึกลับก่อนที่ฟุ่มเฟือยสร้างคำนิยามที่ซ้ำกันในเส้นทางของฉัน

มันใช้เวลาสักครู่ในการระบุไฟล์ที่สนับสนุนตัวแปรสภาพแวดล้อมด้วยตนเอง จะต้องมีวิธีที่มีประโยชน์ในการหลีกเลี่ยงแรงงานที่ไม่จำเป็นนี้ในการติดตามผู้ตั้งค่าทั้งหมด ... หรือฉันเป็นคนเดียวที่กำลังคิดตามสายเหล่านี้

คำตอบ:


6

โดยทั่วไปแล้วPATHจะถูกตั้งค่าเป็นค่าเริ่มต้นในวิธีที่ขึ้นอยู่กับระบบอย่างสูงโดยโปรแกรมที่จะเข้าสู่ระบบคุณ ( pam_envเป็นผู้มีส่วนร่วมทั่วไป) จากนั้น/etc/profileและ~/.profileและไฟล์ที่พวกเขารวมไปเพื่อแก้ไขค่านั้น

ลบการเปลี่ยนแปลงใด ๆPATHใน.bashrc, การตั้งค่าสภาพแวดล้อมไม่ได้อยู่ใน.bashrc: ดูความแตกต่างระหว่าง. bashrc และ . bash_profile

ก่อนอื่นให้ลองเข้าสู่ระบบในโหมดข้อความ (เช่นด้วยssh localhost) เนื่องจากการเริ่มต้นเซสชันนั้นง่ายกว่าในโหมดกราฟิก

ใส่set -xที่จุดเริ่มต้นของและ/etc/profile ~/.profileเชลล์จะพิมพ์การติดตามของสิ่งที่ทำบนสตรีมข้อผิดพลาดมาตรฐาน มองหาการมอบหมายให้PATHในการติดตาม

ไม่มีความคิดที่มีความสำคัญกับการกำหนดตัวแปรสภาพแวดล้อม: ใครก็ตามที่ได้รับรางวัลล่าสุด


6

PATH ของคุณสามารถตั้งค่าได้ทุกที่ไม่เพียง แต่ในไฟล์. bashrc ของคุณ เป็นไปได้ว่าระบบของคุณมีไฟล์ /etc/profileและ / หรือ/etc/profile.localกำหนดเส้นทางเริ่มต้นสำหรับผู้ใช้ทั้งหมดในระบบของคุณ การเปลี่ยนแปลงหรือการเพิ่มเติมเฉพาะของผู้ใช้อาจถูกตั้งค่าใน.profileไฟล์ของคุณหากไม่ได้อยู่ในไฟล์ของคุณ.bashrcหรือคุณอาจใช้ค่าเริ่มต้นในระบบของคุณ

หากคุณต้องการทำการเปลี่ยนแปลงที่มีผลกับคุณเท่านั้นฉันจะทำการเปลี่ยนแปลงใน.profileแบบฟอร์มต่อไปนี้:

export PATH=/new/directory:$PATH

ดังนั้นการแก้ไขเส้นทางปัจจุบันแทนที่จะเขียนใหม่ทั้งหมด

ส่วน "INVOCATION" ของman bash(หรือที่นี่ ) จะอธิบายความแตกต่างระหว่าง.profileและ.bashrcและอื่น ๆ รวมถึงไฟล์อื่น ๆ และสิ่งที่อ่านและในลำดับใดเมื่อคุณเข้าสู่ระบบหรือเริ่มเชลล์


1

มันไม่น่าเป็นไปได้อย่างยิ่งที่จะมีกลไกสำหรับสิ่งนี้ ลองคิดดูว่ามีกี่วิธีในการเปลี่ยนค่าของตัวแปร env ในเชลล์

คุณอาจจะมีบางคนที่มีโชคset -xแม้ว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.