มีเหตุผลที่เกี่ยวข้องสองประการที่ทำให้ชื่อแทนไม่ทำงานเสมอเมื่อใส่ใน.profile
ไฟล์ อย่างแรกคือไฟล์.profile
(หรือ.bash_profile
) นั้นจะรันสำหรับเชลล์ล็อกอินเท่านั้น หากคุณเริ่มทุบตีในหน้าต่างเทอร์มินัลภายใต้ X ตัวจำลองเทอร์มินัลของคุณ (เช่น gnome-termanl) อาจไม่ได้ใช้ bash เป็นเชลล์ล็อกอิน [ส่วนใหญ่มีตัวเลือกในการเปลี่ยนแปลงสิ่งนี้หากคุณต้องการ แต่ค่าเริ่มต้น (สำหรับ gnome-termal ต่อไป) จะไม่เรียกใช้เป็นเชลล์การเข้าสู่ระบบ]
เชลล์จะเป็นเชลล์แบบโต้ตอบและ.bashrc
จะถูกเรียกใช้
อย่างไรก็ตามโดยปกติแล้ว bash จะถูกเรียกใช้เป็นเชลล์ล็อกอินกลับมาเมื่อเริ่มต้นเซสชัน X ดังนั้นหากมีคำสั่ง alias อยู่คำสั่ง.profile
เหล่านั้นจะถูกเรียกใช้งานพร้อมกับการตั้งค่าตัวแปรสภาพแวดล้อมเช่น PATH เป็นต้นเมื่อเปิดหน้าต่างเทอร์มินัลอินสแตนซ์ใหม่ของ bash จะถูกเรียกใช้เพื่อให้พร้อมรับคำสั่งและดำเนินการคำสั่งต่างๆ ไม่เหมือนกับตัวแปรสภาพแวดล้อมนามแฝงไม่สามารถส่งออกจากอินสแตนซ์หนึ่งของการทุบตีไปยังอันใหม่ที่เริ่มต้นโดยมัน ดังนั้นนามแฝงจะไม่ถูกส่งต่อไปยังเชลล์ใหม่
หากต้องการดูสิ่งนี้ลองการทดลองนี้:
export ROBERT=bob
alias james=jimmy
echo $ROBERT
alias james
bash #start a new bash instance
echo $ROBERT
alias james
exit #end the new bash instance and revert to the original one
echo $ROBERT
alias james
โปรดทราบว่า.bashrc
จะไม่ทำงานโดยการทุบตีเมื่อมันเริ่มเป็นเปลือกเข้าสู่ระบบ ดังนั้นการวางนามแฝงของคุณจะไม่สามารถทำงานได้เว้นแต่คุณ.bashrc
จะได้รับจากแหล่งของคุณ.profile
ซึ่งเป็นวิธีปฏิบัติทั่วไป
gl
ที่ไหน สถานี? GUI หรือไม่