เชลล์เชิงโต้ตอบหมายถึงอะไร?


25

UNIX: การอ้างอิงที่สมบูรณ์, ฉบับที่สองโดย Kenneth H. Rosen และคณะ

คุณสามารถเริ่มเชลล์อื่นหลังจากที่คุณล็อกอินโดยใช้ชื่อของเชลล์เป็นคำสั่ง ตัวอย่างเช่นในการเริ่มต้น Korn เชลล์คุณสามารถพิมพ์ ksh ที่พรอมต์คำสั่ง เชลล์ชนิดนี้ไม่ใช่เชลล์ล็อกอินและคุณไม่จำเป็นต้องล็อกอินอีกครั้งเพื่อใช้ แต่มันยังเป็นเชลล์แบบโต้ตอบซึ่งหมายความว่าคุณโต้ตอบกับเชลล์โดยการพิมพ์คำสั่ง (ต่างจากการใช้เชลล์เพื่อ เรียกใช้สคริปต์ตามที่กล่าวไว้ในบทที่ 20) อินสแตนซ์ของเชลล์ที่ทำงานในหน้าต่างเทอร์มินัลเมื่อคุณใช้ส่วนต่อประสานกราฟิกเป็นเชลล์ที่ไม่ได้ล็อกอินแบบโต้ตอบ เมื่อคุณเริ่มเชลล์ที่ไม่ได้ล็อกอินจะไม่อ่านไฟล์. profile, .bash_profile หรือ .login (หรือไฟล์. logout ของคุณ) แต่จะยังอ่านไฟล์คอนฟิกูเรชันเชลล์ตัวที่สอง (เช่น. bashrc) ซึ่งหมายความว่าคุณสามารถทดสอบการเปลี่ยนแปลงของคุณ

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

ยิ่งไปกว่านั้นมันหมายความว่าอย่างไรเมื่อคุณพูดว่า bourne ไม่ใช่เชลล์เชิงโต้ตอบในขณะที่ bash / csh เป็นเชลล์เชิงโต้ตอบ?

คำตอบ:


27

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

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

The Bourne เปลือกสามารถนำมาใช้เป็นเปลือกโต้ตอบเช่นเดียวหรือbash tcshในความเป็นจริงระบบจำนวนมากเช่น FreeBSD ใช้shเป็นเชลล์ผู้ใช้เริ่มต้น เปลือกหอยที่ทันสมัยเช่นbash, zsh, tcshฯลฯ มีคุณสมบัติหลายอย่างที่บอร์นเชลล์ไม่ได้ที่ทำให้พวกเขาสะดวกสบายมากขึ้นและสะดวกสำหรับการใช้งานเชิงโต้ตอบ (ประวัติคำสั่งเสร็จสิ้น ฯลฯ )

เชลล์ที่ไม่ใช่การล็อกอินแบบโต้ตอบ (นั่นคือเชลล์ที่คุณเริ่มต้นด้วยตนเองจากเชลล์อื่นหรือโดยการเปิดหน้าต่างเทอร์มินัล) ไม่ได้อ่าน.loginหรือ.profileไฟล์ของคุณ สิ่งเหล่านี้ถูกอ่านและดำเนินการโดยล็อกอินเชลล์เท่านั้น (เชลล์เริ่มต้นด้วยloginกระบวนการของระบบหรือโดย X display manager ของคุณ) ดังนั้นคำสั่งและการตั้งค่าที่พวกเขามีจะถูกนำไปใช้เพียงครั้งเดียวที่จุดเริ่มต้นของเซสชั่นการเข้าสู่ระบบ ดังนั้นเมื่อคุณเริ่มต้นขั้วเปลือกที่ spawns ให้คุณไม่ได้อ่านไฟล์เข้าสู่ระบบ ( .loginสำหรับเปลือกหอยคสไตล์.profileสำหรับเปลือกหอยสไตล์บอร์น) แต่มันไม่อ่าน.cshrc, .bashrcไฟล์ ฯลฯ


เป็นไปได้ที่จะรันเชลล์เป็นเชลล์ล็อกอินที่ไม่โต้ตอบ
jw013

จริง แต่อาจสับสน!
D_Bye

ksh ยังเป็นเชลล์ที่ทันสมัย ​​:-) ดูwww2.research.att.com/sw/downloadและใช้เมนูบนขอบซ้ายเพื่อนำทางไปยัง AST-> ksh-> ภาพรวม รุ่นใหม่ออกมาปีละหลายครั้งจาก David Korn และ Glen Fowler โชคดีทุกคน.
shellter

1
@shellter - ใช่แน่นอน แต่มันไม่ใช่อย่างที่ฉันเคยใช้และฉันต้องหยุดการแจกแจงเปลือกหอยที่ไหนสักแห่ง! ;-)
D_Bye

คุณเคยพูดว่าThe Bourne shell can be used as an interactive shell, just like bash or tcsh. บอร์นไม่ได้เปลือกเหมือนกันbashหรือไม่
Mr.Web
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.