เทอร์มินัลและเชลล์เหมือนกันหรือไม่


29

ฉันรู้ว่านี่อาจฟังดูโง่ แต่ฉันแค่อยากรู้ว่ามีความแตกต่างระหว่างสองคำที่ใช้ในโลก Linux หรือไม่ ฉันรู้ว่า Shell เป็นอินเตอร์เฟสบรรทัดคำสั่งและมีหลายรุ่นเช่น Bash, Korn เป็นต้นและฉันก็รู้ว่า Ctrl + Alt + T เปิดตัวเทอร์มินัลบน Ubuntu ฉันแค่ต้องการเชื่อมต่อสองจุดนี้

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

อะไรที่ทำให้คำสองคำแตกต่างกันแน่ ๆ ?

คำตอบ:


30

เทอร์มินัลอีมูเลเตอร์ (มักเรียกว่าเทอร์มินัล) คือ "แค่หน้าต่าง" ใช่ มันรันโปรแกรมที่ทำงานด้วยข้อความซึ่งโดยปกติแล้วคือเชลล์การเข้าสู่ระบบของคุณ (ซึ่งเป็นทุบตีใน Ubuntu) เมื่อคุณพิมพ์อักขระในหน้าต่างเทอร์มินัลจะดึงอักขระเหล่านี้ในหน้าต่างเพิ่มเติมจากการส่งไปยัง stdin ของเชลล์ (หรือโปรแกรมอื่น) อักขระที่เชลล์ส่งออกไปยัง stdout และ stderr รับส่งไปยังเทอร์มินัลซึ่งจะดึงอักขระเหล่านี้ในหน้าต่าง

ใช่แล้วเชลล์และเทอร์มินัลอีมูเลเตอร์เป็นโปรแกรมที่แยกจากกันอย่างสมบูรณ์และสามารถใช้งานได้โดยไม่มีโปรแกรมอื่น


2
คุณจะใช้เชลล์ที่ไม่มีขั้วได้อย่างไร?
Koray Tugay

5
@KorayTugay เมื่อคุณเรียกใช้เชลล์สคริปต์จาก cron หรือผ่านตัวเรียกใช้งานเดสก์ท็อป (ซึ่งคุณยังไม่ได้ตรวจสอบ "run in terminal") คุณกำลังใช้เชลล์โดยไม่มีเทอร์มินัล
geirha

8

ฉันคิดว่าคำถามนี้ได้รับการสำรวจอย่างละเอียดในเว็บไซต์ Unix และ Linux stackexchange: ความแตกต่างระหว่าง shell, console และ terminal


3
คุณอาจจะเพิ่มส่วนสำคัญของลิงค์ลงในคำตอบของคุณ?
jokerdino

นี่ไม่ใช่คำตอบนี่คือความคิดเห็น
Koray Tugay

6

ใช่เทอร์มินัลอีมูเลเตอร์และเชลล์เป็นสองโปรแกรมที่แตกต่างกัน ดังที่คุณทราบตัวอย่างหนึ่งของความแตกต่างคือการเปิดหน้าต่างเทอร์มินัลสามารถเรียกใช้เชลล์ที่แตกต่างกันขึ้นอยู่กับสิ่งที่คุณกำหนดค่าไว้ (bash, tcsh, ksh, ash, python!)

ข้อแตกต่างก็คือมีเทอร์มินัลอีมูเลเตอร์มากกว่าค่าเริ่มต้น: gnome-terminal, xterm, konsole (สำหรับ KDE), และอื่น ๆ อีกมากมาย (ดู: http://www.howtogeek.com/howto/ubuntu/set- the default-terminal-emulator-on-ubuntu-linux / ) เชลล์ใด ๆ สามารถรันได้ในเทอร์มินัลอีมูเลเตอร์เหล่านี้โดยไม่มีปัญหาใด ๆ

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

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

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