“ Run command as login shell” ทำอะไรได้บ้าง?


28

ฉันได้ติดตั้งโปรแกรมแยกไว้ไม่กี่โปรแกรมบางโปรแกรมต้องการให้ฉันเข้าไปในการตั้งค่าเทอร์มินัล GUI ของฉันและเปิด / ปิดการใช้งานตัวเลือก "เรียกใช้คำสั่งเป็นเปลือกเข้าสู่ระบบ" เพื่อให้ทำงานได้

ตัวอย่าง:

ผมติดตั้งRuby on Rails น่าเสียดายที่ฉันต้องเข้าไปในตัวเลือกเทอร์มินัลและเปิดใช้งาน "Run command as login shell" เพื่อให้มันอยู่ใน PATH ของฉัน

นี่ไม่ใช่ปัญหามากเกินไปจนกว่าฉันจะติดตั้งsexy-bash-promptซึ่งจะทำงานเฉพาะเมื่อปิดการใช้งานตัวเลือก

ดังนั้นคำถามของฉันคือ: "Run command as login shell" ทำอะไร มีวิธีรับสิ่งที่ทำงานเมื่อมันถูกปิดการใช้งานเมื่อคุณทำงานเป็นเปลือกเข้าสู่ระบบ?

คำตอบ:


31

สมมติว่าเชลล์ของคุณคือ Bash (ค่าเริ่มต้นใน Ubuntu) นี่คือความแตกต่าง:

  • เมื่อรันเป็นเชลล์ล็อกอิน Bash จะอ่าน~/.bash_profile(หรือหากไม่มีอยู่~/.profile) เมื่อเริ่มต้น ในบางกรณีไฟล์นี้จะอ่าน~/.bashrcเช่นกัน

  • เมื่อใช้เป็นที่ไม่ใช่การเข้าสู่ระบบ~/.bashrcเปลือกทุบตีจะอ่าน

ดังนั้นทำไมคุณเห็นพฤติกรรมที่แตกต่างกันเมื่อทำงานเป็นเชลล์ล็อกอิน / ไม่ใช่ล็อกอิน? เพราะคุณ.bash_profile/ จะทำสิ่งที่แตกต่างกว่าของคุณ.profile.bashrc

วิธีการแก้ปัญหาที่ผมจะแนะนำในกรณีของคุณคือการคัดลอกการปรับแต่งที่ทำกับ.bash_profile/ .profile, วางพวกเขาลง.bashrcและปิดการใช้งาน "เรียกใช้คำสั่งเป็นเปลือกเข้าสู่ระบบ"


อ่าโอเค ฉันคิดว่ามันเกี่ยวข้องกับโปรไฟล์การเข้าสู่ระบบที่อ่าน (แหล่งที่มา. bashrc แก้ไขปัญหาบางอย่างที่ฉันมี) ฉันจะให้ไปขอโทษสำหรับคำถามที่เขียนอย่างน่ากลัว
AlbertEngelB

ขอบคุณสำหรับคำอธิบายที่กระชับ ไม่ใช่เรื่องแปลกที่จะเห็นผู้คนเพียงเก็บการกำหนดเองไว้ใน. bashrc และมี. bash_profile เป็นแหล่ง. bashrc การปรับแต่งเฉพาะการเข้าสู่ระบบควรเก็บไว้ใน. bash_profile เท่านั้น
MichaelZ

1
ทำไมไม่เพียงแค่จัดหา. bashrc ให้เป็น. bash_profile และเปิดเปลือกการเข้าสู่ระบบไว้ เป็นไปได้ไหม?
ดร. เนฟาริโอ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.