อะไรคือความแตกต่างระหว่าง 'เข้าสู่ระบบ' และเปลือกทุบตี 'แบบโต้ตอบ'


50

ความแตกต่างระหว่าง 'เข้าสู่ระบบ' และเปลือกทุบตี 'แบบโต้ตอบ' คืออะไร? ฉันอ้างถึง Wikipedia ด้านล่าง แต่ทุกคนสามารถให้คำตอบที่ดีกว่าได้ไหม

แก้ไข: นี่คือ wiki ชุมชนดังนั้นอาจจะมากกว่าการลงคะแนนเพื่อปิดคุณสามารถให้ตัวอย่างของสถานการณ์ที่เรียกว่า $ SHELL ประเภทใด

สคริปต์เริ่มต้น

เมื่อ Bash เริ่มทำงานคำสั่งจะดำเนินการกับสคริปต์ที่แตกต่างหลากหลาย

เมื่อ Bash ถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบอันดับแรกจะอ่านและดำเนินการคำสั่งจากไฟล์ / etc / profile หากไฟล์นั้นมีอยู่ หลังจากอ่านไฟล์นั้นจะค้นหา ~ / .bash_profile, ~ / .bash_login และ ~ / .profile ตามลำดับและอ่านและเรียกใช้คำสั่งจากไฟล์แรกที่มีอยู่และอ่านได้

เมื่อล็อกอินเชลล์ออก Bash จะอ่านและดำเนินการคำสั่งจากไฟล์ ~ / .bash_logout หากมีอยู่

เมื่อเชลล์เชิงโต้ตอบที่ไม่ใช่เชลล์ล็อกอินเริ่มทำงาน Bash จะอ่านและดำเนินการคำสั่งจาก ~ / .bashrc หากไฟล์นั้นมีอยู่ สิ่งนี้อาจถูกยับยั้งโดยใช้ตัวเลือก --norc ตัวเลือกไฟล์ --rcfile จะบังคับให้ Bash อ่านและดำเนินการคำสั่งจากไฟล์แทน ~ / .bashrc


ฉันได้แก้ไขคำถามเพื่อให้สอดคล้องกับกฎไซต์ครึ่งตัวมากขึ้น ฉันไม่คิดว่าฉันเคยจะเข้าใจความปรารถนาที่จะลบข้อมูลที่เป็นประโยชน์ ...
แกเร็ ธ

7
ทำไมผู้คนถึงลงคะแนนคำถามนี้ไม่ได้ ดูเหมือนจะสมบูรณ์แบบสำหรับฉันไหม
duffbeer703

2
เอาคำตอบจากคำถามของคุณแล้วโพสต์มันเป็นคำตอบ ตกลงที่จะตอบคำถามของคุณเอง
Derobert

2
เป็นคำถามที่ถูกต้องมากเนื่องจากความแตกต่างทำให้เกิดความสับสน หมายเหตุเช่นเมื่อคุณเข้าสู่สภาพแวดล้อมแบบกราฟิกผ่าน xdm และเรียกใช้ xterm คุณจะได้รับเชลล์แบบโต้ตอบและไฟล์เริ่มต้นเชลล์เข้าสู่ระบบจะไม่ทำงาน
pjc50

คำตอบ:


16

ในไฟล์โปรไฟล์ของล็อกอินเชลล์คุณสามารถตั้งค่าบางสิ่งที่คุณจะใช้ในระหว่างเซสชันและจะต้องทำเพียงครั้งเดียวเท่านั้น ความคิดบางอย่าง:

  • สร้างไฟล์ชั่วคราวที่มีที่อยู่ IP ที่คุณเชื่อมต่อในภายหลังคุณสามารถรวมไว้ในสคริปต์บางตัวที่ตั้งกฎไฟร์วอลล์
  • เรียกใช้ ssh-agent, ขอคีย์ SSH ของคุณ, และเก็บตัวแปรสภาพแวดล้อมของเอเจนต์ SSH ในไฟล์
  • หากเป็นเครื่องที่มีข้อ จำกัด และเพื่อนร่วมงานของคุณต้องการทราบการเข้าสู่ระบบของผู้อื่นให้เขียน (1) ข้อความเพื่อแจ้งการเข้าสู่ระบบของคุณ

ในไฟล์ของเชลล์ที่ไม่ใช่การเข้าสู่ระบบ ( .bashrc) คุณควรกำหนดค่าเชลล์ของคุณ:

  • พร้อมรับคำแฟนซี
  • ตั้งชื่อแทน
  • ตั้งค่าตัวเลือกประวัติ
  • กำหนดฟังก์ชั่นเปลือกที่กำหนดเอง
  • ตัวแปรสภาพแวดล้อมการส่งออก (อาจ PAGER, EDITOR หากการตั้งค่าทั้งระบบดูด)
  • บันทึกตัวแปร ssh-agent แล้ว .bash_profile

โดยปกติแล้วคุณจะต้องรวม.bashrcจาก.bash_profileต่อไปนี้ จากนั้นเข้าสู่ระบบเปลือกได้รับการปรับแต่งทั้งหมดของคุณและไฟล์ไม่ได้มีการทำซ้ำสิ่งที่มีอยู่แล้วใน.bash_profile.bashrc

[[ -f ~/.bashrc ]] && . ~/.bashrc

3
เชลล์การเข้าสู่ระบบเป็นเชลล์แรกที่เริ่มต้นเมื่อคุณสดบนเครื่อง เชลล์อื่น ๆ ทั้งหมดที่คุณเปิดหลังจากนั้นอาจเป็นแบบโต้ตอบหรือไม่ก็ได้ เชลล์ที่ทำงานจาก cron? ดูเหมือนจะไม่สามารถใช้งานได้ แต่มันเข้าสู่ระบบหรือไม่ ถ้าคุณไม่ได้ใช้เครื่องล่ะ นี่คือคำถามที่ยังไม่ได้รับคำตอบ
François Beausoleil

4
ตอนนี้นั่นคือคำตอบที่ฉันสามารถเข้าใจได้: linuxquestions.org/questions/linux-general-1/ …
François Beausoleil
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.