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
การกำหนดค่าอื่น ๆ ของฉันถูกเก็บไว้ที่นั่น ฉันต้องยอมรับว่าฉันไม่ค่อยคุ้นเคยกับหอยประเภทต่างๆ จากการอ่านลิงก์ที่คุณโพสต์ฉันเดาว่าฉันใช้เชลล์แบบโต้ตอบ แต่ฉันจะอ่านต่อไปเพื่อความแน่ใจ ... ขอบคุณอีกครั้ง!