zsh
ฉันกำลังมองหาแนวทางในการสิ่งหนึ่งที่ควรและไม่ควรรวมอยู่ในแฟ้มเริ่มต้นต่างๆสำหรับ
ฉันเข้าใจลำดับของการจัดหาไฟล์เหล่านี้และเงื่อนไขที่พวกเขามีแหล่งที่มา แต่ก็ยังไม่ชัดเจนสำหรับฉันว่าควรจะไปที่ไหนในแต่ละไฟล์
zsh
ฉันกำลังมองหาแนวทางในการสิ่งหนึ่งที่ควรและไม่ควรรวมอยู่ในแฟ้มเริ่มต้นต่างๆสำหรับ
ฉันเข้าใจลำดับของการจัดหาไฟล์เหล่านี้และเงื่อนไขที่พวกเขามีแหล่งที่มา แต่ก็ยังไม่ชัดเจนสำหรับฉันว่าควรจะไปที่ไหนในแต่ละไฟล์
คำตอบ:
นี่คือรายการที่ไม่เฉพาะเจาะจงของสิ่งที่แต่ละไฟล์มีแนวโน้มที่จะมี:
.zshenv
มีที่มาเสมอมันมักจะมีตัวแปรส่งออกที่ควรมีให้กับโปรแกรมอื่น ๆ ตัวอย่างเช่น$PATH
, $EDITOR
และมักจะตั้งอยู่ใน$PAGER
.zshenv
นอกจากนี้คุณยังสามารถตั้งค่า$ZDOTDIR
ใน.zshenv
การระบุตำแหน่งทางเลือกสำหรับส่วนที่เหลือของการกำหนดค่า zsh ของคุณ.zshrc
ใช้สำหรับการกำหนดค่าเชลล์แบบโต้ตอบ คุณตั้งค่าตัวเลือกสำหรับเชลล์เชิงโต้ตอบที่นั่นด้วยsetopt
และunsetopt
คำสั่ง นอกจากนี้คุณยังสามารถโหลดโมดูลเชลล์ตั้งค่าตัวเลือกประวัติเปลี่ยนพรอมต์ตั้งค่า zle และเสร็จสมบูรณ์และอื่น ๆ นอกจากนี้คุณยังตั้งค่าตัวแปรใด ๆ ที่ใช้ในเชลล์เชิงโต้ตอบเท่านั้น (เช่น$LS_COLORS
).zlogin
มีที่มาจากจุดเริ่มต้นของเปลือกเข้าสู่ระบบ startx
แฟ้มนี้มักจะถูกใช้ในการเริ่มใช้ X บางระบบเริ่มต้น X เมื่อบู๊ตดังนั้นไฟล์นี้อาจไม่มีประโยชน์เสมอไป.zprofile
โดยพื้นฐานแล้วเหมือนกับ.zlogin
ว่ามันมีแหล่งที่มาโดยตรงก่อนที่จะ.zshrc
มีแหล่งที่มาแทนที่จะเป็นโดยตรงหลังจากที่มัน ตามเอกสารของ zsh " .zprofile
มีความหมายว่าเป็นทางเลือกแทน` .zlogin 'สำหรับแฟน ๆ ksh; ทั้งสองไม่ได้ตั้งใจที่จะใช้ร่วมกันแม้ว่าจะสามารถทำได้ถ้าต้องการแน่นอน ".zlogout
บางครั้งใช้เพื่อล้างและรีเซ็ตเครื่อง คุณควรดำเนินการผ่านไฟล์กำหนดค่าของผู้ใช้ Github แบบสุ่มเพื่อทำความเข้าใจกับสิ่งที่ควรมีในแต่ละไฟล์
man zshall
รายละเอียด)
$PATH
ใน.zshenv
ไฟล์อื่น ๆ ทั้งหมดมีที่มาหลังจากที่ไฟล์ที่จะแทนที่ค่านี้ ดูzsh.org/mla/users/2003/msg00600.html
$LANG
และ$LC_ALL
ไป?
.zshenv
→ [ .zprofile
ถ้าเข้าสู่ระบบ] → [ .zshrc
ถ้าโต้ตอบ] → [ .zlogin
ถ้าเข้าสู่ระบบ] → [ .zlogout
บางครั้ง]
นี่คือรายการสิ่งที่แต่ละไฟล์ควร / ไม่ควรมีในความคิดของฉัน:
[อ่านทุกครั้ง]
มันมีที่มาเสมอดังนั้นจึงควรตั้งค่าตัวแปรสภาพแวดล้อมซึ่งจะต้องมีการปรับปรุงบ่อย PATH (หรือเส้นทางที่เกี่ยวข้องกัน) เป็นตัวอย่างที่ดีเพราะคุณอาจไม่ต้องการเริ่มต้นเซสชันใหม่ทั้งหมดเพื่อให้อัปเดต ด้วยการตั้งค่าในไฟล์นั้นการเปิดเทอร์มินัลอีมูเลเตอร์อีกครั้งจะเริ่มต้นอินสแตนซ์ Zsh ใหม่ด้วยค่าPATH ที่อัพเดท
แต่ทราบว่าไฟล์นี้จะอ่านแม้ในขณะที่มีการเปิดตัว zsh เพื่อเรียกใช้คำสั่งเดียว (กับ-cตัวเลือก) make
แม้โดยเครื่องมืออื่นเช่น คุณควรระวังไม่ให้ปรับเปลี่ยนพฤติกรรมเริ่มต้นของคำสั่งมาตรฐานเนื่องจากอาจทำให้เครื่องมือบางอย่างที่ใช้งานไม่ได้ (โดยการตั้งค่านามแฝงเป็นต้น) แน่นอนว่ามันไม่ถูกห้ามเพราะคุณรู้ว่าคุณกำลังทำอะไรอยู่
[อ่านเมื่อเข้าสู่ระบบ]
ฉันถือว่าไฟล์นั้นเป็นส่วนตัว.zshenv
แต่สำหรับคำสั่งและตัวแปรที่ควรตั้งค่าหนึ่งครั้งหรือที่ไม่จำเป็นต้องได้รับการปรับปรุงบ่อยครั้ง :
SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))"
) เนื่องจากอาจใช้เวลาสักครู่ในการดำเนินการหากคุณแก้ไขไฟล์นั้นคุณสามารถรับการอัพเดตการกำหนดค่าได้โดยแทนที่เชลล์ปัจจุบันด้วยเชลล์ใหม่เป็นล็อกอินเชลล์:
exec zsh --login
[อ่านเมื่อมีการโต้ตอบ]
ฉันใส่ที่นี่ทุกอย่างที่จำเป็นสำหรับการใช้งานแบบโต้ตอบ :
[อ่านเมื่อเข้าสู่ระบบ]
ไฟล์นี้เป็นเหมือนแต่หลังจากอ่าน.zshprofile
.zshrc
ฉันคิดว่าเชลล์จะติดตั้งอย่างสมบูรณ์ในเวลานี้
ดังนั้นฉันใช้มันเพื่อเปิดคำสั่งภายนอกซึ่งไม่ได้ปรับเปลี่ยนพฤติกรรมของเชลล์ (เช่นตัวจัดการการเข้าสู่ระบบ)
[อ่านเมื่อออกจากระบบ] [ภายในเชลล์ล็อกอิน]
ที่นี่คุณสามารถล้างข้อมูลเทอร์มินัลหรือการตั้งค่าทรัพยากรอื่น ๆ เมื่อเข้าสู่ระบบ
.zshenv
.zshenv
.zprofile
.zshrc
.zlogin
.zlogout
อย่าวางสายในssh-agent
.zshenv
มันทำให้less
คำสั่งของฉันไม่แสดงไฟล์ข้อความใด ๆ อีกต่อไปอาจเป็นเพราะตัวเลือกของมันได้รับการปรับแต่งโดย Prezto ( export LESS='-F -g -i -M -R -S -w -X -z-4'
ใน.zprofile
)