เมื่อคุณล็อกอินไฟล์~/.profile
จะถูกอ่านโดยเชลล์ล็อกอิน (ksh สำหรับคุณ) คุณสามารถสั่งให้เชลล์ล็อกอินนั้นแทนที่ตัวเองด้วยการทุบตี คุณควรใช้ความระมัดระวัง:
- แทนที่เชลล์ล็อกอินเท่านั้นหากเป็นแบบโต้ตอบ สิ่งนี้มีความสำคัญ: มิฉะนั้นการเข้าสู่ระบบในโหมดกราฟิกอาจไม่ทำงาน (ขึ้นอยู่กับระบบ: บางระบบ แต่ไม่ทุกระบบอ่าน
~/.profile
เมื่อเข้าสู่ระบบผ่าน xdm หรือคล้ายกัน) และสำนวนต่าง ๆ เช่นssh foo '. ~/.profile; mycommand'
จะล้มเหลว
- ตรวจสอบว่ามีการทุบตีเพื่อให้คุณยังสามารถเข้าสู่ระบบหากปฏิบัติการไม่ได้มีด้วยเหตุผลบางอย่าง
คุณมีตัวเลือกว่าจะรัน bash เป็นเชลล์ล็อกอินหรือไม่ ข้อแตกต่างที่สำคัญในการทำให้เปลือกเข้าสู่ระบบก็คือว่ามันจะโหลดหรือ~/.bash_profile
~/.profile
ดังนั้นหากคุณรัน bash เป็น login shell โปรดระมัดระวังที่จะมี a ~/.bash_profile
หรือระวังไม่ให้ทำการ bash ซ้ำ~/.profile
ๆ ไม่มีข้อได้เปรียบที่แท้จริงของการ~/.profile
ถูกดำเนินการโดย bash แทนที่จะเป็น ksh ดังนั้นฉันขอแนะนำไม่ให้ทำ
นอกจากนี้ยังตั้งค่าSHELL
ตัวแปรสภาพแวดล้อมเป็น bash ดังนั้นโปรแกรมเช่นเทอร์มินัลอีมูเลเตอร์จะเรียกใช้เชลล์นั้น
นี่คือรหัสเพื่อเปลี่ยนเป็นทุบตี ~/.profile
วางไว้ในตอนท้ายของ
case $- in
*i*)
# Interactive session. Try switching to bash.
if [ -z "$BASH" ]; then # do nothing if running under bash already
bash=$(command -v bash)
if [ -x "$bash" ]; then
export SHELL="$bash"
exec "$bash"
fi
fi
esac