tl; dr เวอร์ชัน: ใช้ ~/.zshrc
และอ่านหน้าคนเพื่อทำความเข้าใจความแตกต่างระหว่าง:
~/.zshrc, และ~/.zshenv~/.zprofile
เกี่ยวกับความคิดเห็นของฉัน
ในความคิดเห็นของฉันที่แนบมากับคำตอบที่เคฟให้ฉันพูดว่า:
สิ่งนี้ดูเหมือนจะไม่ถูกต้อง - / etc / profile ไม่อยู่ในเอกสาร zsh ใด ๆ ที่ฉันหาได้
นี้จะออกมาเป็นบางส่วนที่ไม่ถูกต้อง: /etc/profile อาจจะ sourced zshโดย อย่างไรก็ตามสิ่งนี้จะเกิดขึ้นzshก็ต่อเมื่อ"เรียกใช้เป็นshหรือksh"; ในโหมดความเข้ากันได้เหล่านี้:
สคริปต์เริ่มต้น / ปิด zsh ตามปกติจะไม่ถูกเรียกใช้งาน ล็อกอินเชลล์ source / etc / profile ตามด้วย $ HOME / .profile ถ้าตัวแปรสภาพแวดล้อม ENV ถูกตั้งค่าตามการเรียกใช้ $ ENV จะมาจากสคริปต์โปรไฟล์ ค่าของ ENV ขึ้นอยู่กับการขยายพารามิเตอร์การแทนที่คำสั่งและการขยายทางคณิตศาสตร์ก่อนที่จะตีความเป็นชื่อพา ธ [ man zshall, "ความเข้ากันได้" ]
ลิงค์ ArchWiki ZSHพูดว่า:
เมื่อเข้าสู่ระบบ Zsh จะจัดหาไฟล์ต่อไปนี้ตามลำดับนี้:
/ etc / profile
ไฟล์นี้มาจากเชลล์ที่เข้ากันได้กับ Bourne ทั้งหมดเมื่อล็อกอิน
implys นี้ที่/etc/profileจะอ่านเสมอโดยzshในการเข้าสู่ระบบ - ฉันไม่ได้มีประสบการณ์กับโครงการ Arch ลินุกซ์; วิกิอาจถูกต้องสำหรับการแจกแจงนั้น แต่โดยทั่วไปแล้วไม่ถูกต้อง ข้อมูลที่เป็นที่ไม่ถูกต้องเมื่อเทียบกับหน้าคู่มือ zsh และดูเหมือนจะไม่นำไปใช้กับ zsh บน OS X (เส้นทางใน$PATHชุด/etc/profileไม่ให้มันไปประชุม zsh ของฉัน)
เพื่อตอบคำถาม:
ฉันควรวาง rvm, python, node และส่วนเพิ่มเติมไว้ที่ใดใน $ PATH ของฉัน
โดยทั่วไปฉันจะส่งออก$PATHจากของฉัน~/.zshrcแต่ก็คุ้มค่าที่จะอ่านหน้าzshall man โดยเฉพาะส่วน "เริ่มต้น / ปิดไฟล์" - ~/.zshrcอ่านสำหรับเชลล์แบบโต้ตอบซึ่งอาจหรือไม่เหมาะกับความต้องการของคุณ - หากคุณต้องการ$PATHสำหรับ ทุกzshเชลล์เรียกใช้โดยคุณ (ทั้งสองอย่างinteractiveและไม่ใช่ทั้งสองอย่างloginและไม่ใช่ ฯลฯ ) ดังนั้นจึง~/.zshenvเป็นตัวเลือกที่ดีกว่า
มีไฟล์เฉพาะที่ฉันควรใช้ (เช่น. zshenv ซึ่งปัจจุบันไม่มีอยู่ในการติดตั้งของฉัน) ไฟล์ใดไฟล์หนึ่งที่ฉันกำลังใช้อยู่หรือมันมีความสำคัญหรือไม่
มีไฟล์จำนวนมากที่อ่านเมื่อเริ่มต้น (ตรวจสอบmanหน้าที่เชื่อมโยง) และมีเหตุผลสำหรับสิ่งนั้น - แต่ละไฟล์มีสถานที่เฉพาะ (การตั้งค่าสำหรับผู้ใช้ทุกคนการตั้งค่าสำหรับผู้ใช้เฉพาะการตั้งค่าสำหรับล็อกอินเชลล์การตั้งค่าสำหรับทุกเชลล์ ฯลฯ )
อย่ากังวลว่าจะ~/.zshenvไม่มีอยู่ - หากคุณต้องการสร้างมันขึ้นมาและจะอ่านได้
.bashrcและ.bash_profileจะไม่ถูกอ่านโดยzshเว้นแต่คุณจะระบุแหล่งที่มาอย่างชัดเจน~/.zshrcหรือคล้ายกัน ไวยากรณ์ระหว่างbashและzshเป็นไม่ได้เข้ากันได้เสมอ ทั้งสองแบบ.bashrcและ.bash_profileออกแบบมาสำหรับbashการตั้งค่าไม่ใช่zshการตั้งค่า
.bashrcและ.bash_profileไม่ได้อ่านโดยzshที่ฉันมีการrvmเพิ่มเข้ามา$PATHใน.bashrcปัจจุบันและการpythonเพิ่มของฉัน.bash_profileและทั้งสองกำลังถูกเพิ่มเข้ามาอย่างดี ไม่ว่าในกรณีใดฉันจะย้ายการ$PATHส่งออก~/.zshrcทั้งหมดไปที่เนื่องจากzshการกำหนดค่าอื่น ๆ ของฉันถูกเก็บไว้ที่นั่น ฉันต้องยอมรับว่าฉันไม่ค่อยคุ้นเคยกับหอยประเภทต่างๆ จากการอ่านลิงก์ที่คุณโพสต์ฉันเดาว่าฉันใช้เชลล์แบบโต้ตอบ แต่ฉันจะอ่านต่อไปเพื่อความแน่ใจ ... ขอบคุณอีกครั้ง!