วิธีง่ายๆคือการคิดค้นเครื่องย้อนเวลาเยี่ยมชมบุคคลต่าง ๆ ที่คิดค้นแฟ้มเริ่มต้นของเชลล์และบอกให้แยกความแตกต่างระหว่างสามสิ่ง:
- การตั้งค่าเซสชันเช่นตัวแปรสภาพแวดล้อม
- การเปิดใช้งานเซสชั่นเช่นเริ่มต้นเชลล์บรรทัดคำสั่งหรือจัดการหน้าต่างหรือทำงาน
startx
;
- การกำหนดค่าเริ่มต้นของเชลล์เช่นนามแฝงพรอมต์การเชื่อมโยงคีย์
มันไม่ยากเกินไปที่จะได้รับเมื่อเทียบกับเซสชั่นที่เหมาะสมเปลือกในทางแบบพกพา: การเริ่มต้นการเข้าสู่ระบบจะเข้าสู่ช่วงเวลา.profile
(หรือ.zprofile
หรือ.login
) เริ่มต้นเปลือกไปในหรือ.bashrc
.zshrc
ผมเคยเขียนไว้ก่อนหน้านี้เกี่ยวกับ.bash_profile
, zsh กับเปลือกหอยอื่น ๆ , เพิ่มเติมเกี่ยวกับการพกพา (ส่วนใหญ่เกี่ยวกับการทุบตี) , เพิ่มเติมเกี่ยวกับผู้อ่าน.profile
ปัญหาที่เหลือคือการแยกแยะระหว่างการตั้งค่าเซสชันและการเปิดใช้งานเซสชัน ในกรณีส่วนใหญ่~/.profile
จะทำงานเมื่อคุณเข้าสู่ระบบและสามารถเป็นสองเท่าเป็นทั้งสอง แต่มีข้อยกเว้น:
- ถ้าเปลือกเข้าสู่ระบบของคุณ (t) csh หรือ zsh,
~/.login
และมีที่มาแทน~/.zprofile
~/.profile
เช่นเดียวกันสำหรับทุบตีและ~/.bash_profile
แต่นี้จะแก้ไขได้อย่างง่ายดายโดยการจัดหาจาก~/.profile
~/.bash_profile
- หากคุณเข้าสู่ระบบภายใต้ตัวจัดการการแสดงผล (xdm, gdm, kdm, …) การ
~/.profile
อ่านของคุณขึ้นอยู่กับเวอร์ชันของโปรแกรมการกระจายของคุณ (Linux หรืออย่างอื่น) และประเภทเซสชันที่คุณเลือก
- หากคุณเชื่อใจในเครื่องมือจัดการการแสดงผลเพื่อเริ่มเซสชันสำหรับคุณคุณ
.profile
ต้องตั้งค่าตัวแปรสภาพแวดล้อม แต่ไม่เริ่มเซสชัน (เช่นผู้จัดการหน้าต่าง)
- ไฟล์คอนฟิกูเรชันดั้งเดิมสำหรับเซสชัน X คือ
~/.xsession
ทำการตั้งค่าเซสชันและเปิดใช้เซสชัน . ~/.xsession; . ~/.xinitrc
ดังนั้นแฟ้มสามารถเป็นหลัก บางแหล่งกระจายก่อน~/.profile
~/.xsession
การแจกแจงแบบใหม่เป็นแหล่งที่มาเฉพาะ~/.xsession
เมื่อคุณเลือกเซสชัน "กำหนดเอง" จากเครื่องมือจัดการการแสดงผลและเซสชันดังกล่าวจะไม่สามารถใช้งานได้ตลอดเวลา
- ผู้จัดการเซสชันของคุณอาจมีวิธีการตั้งค่าตัวแปรสภาพแวดล้อมของตนเอง (นั่นเป็นส่วนเสริมของสภาพแวดล้อมเดสก์ท็อปของคุณซึ่งคุณเลือกผ่านไฟล์กำหนดค่าหรือโดยการเลือกประเภทเซสชันเมื่อทำการล็อกอินอย่าสับสนกับสคริปต์เริ่มต้นเซสชันที่จัดทำโดยผู้จัดการการแสดงผลซึ่งดำเนินการภายใต้ผู้ใช้ของคุณ เลือกตามระบบทั้งระบบใช่เป็นระเบียบ)
โดยสรุป~/.profile
เป็นสถานที่ที่เหมาะสมสำหรับตัวแปรสภาพแวดล้อม หากยังไม่ได้อ่านลองหาจาก~/.xsession
(และเริ่มโปรแกรม X ของคุณจากที่นั่น) หรือค้นหาวิธีการเฉพาะของระบบ (ซึ่งอาจขึ้นอยู่กับการแจกจ่ายของคุณตัวจัดการการแสดงผลถ้ามีประเภทเซสชันถ้าตัวจัดการการแสดงผลและสภาพแวดล้อมเดสก์ทอปหรือ ผู้จัดการเซสชั่น)
.profile
ไม่ได้โหลดเลยหรืออย่างอื่นเขียนทับตัวแปรโลแคลหรือไม่ (ลองตั้งค่าบางตัวแปรอื่น ๆ เช่นexport MACIEJ_PROFILE=yes
เพื่อให้แน่ใจว่า.set -x
ใน.profile
อาจจะเป็นวิธีที่ดีในการตรวจสอบสิ่งที่จะถูกดำเนินการในและหลังจากนั้น.profile
ถ้ามันอ่านที่ทุกคน.) มีจุดใดที่อยู่ในการจัดหาจาก.profile
.zshrc