อะไรคือความแตกต่างระหว่าง Terminal, Console, Shell และ Command Line


211

อะไรคือความแตกต่างระหว่าง Terminal, Console, Shell และ Command Line


1
(1/2) Agent Cool ส่วนใหญ่ถูกต้อง แต่นิยามของ Console ที่เขาระบุนั้นเป็นรุ่นที่ล้าสมัยตามหัวข้อนี้ ลิงค์ของเขามีข้อมูลที่ถูกต้องหากคุณติดตาม อ่านคำจำกัดความทั้งหมดได้ที่ลิงค์ของเขา คอนโซลใช้อย่างอิสระในการหมายถึงสิ่งที่คล้ายกันมากมาย แต่ที่สำคัญที่สุดมันมักจะอ้างถึงอุปกรณ์อินพุตและเอาท์พุตมนุษย์ที่ติดอยู่ในท้องถิ่นเช่นแป้นพิมพ์จอแสดงผลและเมาส์
0xSheepdog

1
(2/2) นี้อาจดูเหมือนเป็นจุดอวดความรู้ แต่เป็น SYSTEMADMIN เก๋าฉันจะบอกคุณมันไม่ได้เป็น เมื่อระบบมีปัญหาและดูเหมือนว่าจะขัดข้อง / ลง / ออฟไลน์โดยสมบูรณ์คุณควรตรวจสอบฟิสิคัลคอนโซลของระบบเพื่อดูว่ายังทำงานอยู่หรือไม่ แต่การเชื่อมต่อเครือข่ายขาดหายไป รายละเอียดเล็ก ๆ นี้อาจช่วยคุณประหยัดหรือลดค่าใช้จ่ายในการประมวลผลข้อมูลและอื่น ๆ แต่ที่สำคัญ
0xSheepdog

6
@ 0xSheepdog คุณอาจต้องการขยายความคิดเห็นเหล่านี้เป็นคำตอบแบบเต็ม (รวมทั้งคำจำกัดความหรือคำอธิบายสำหรับคำอื่น ๆ ด้วย) โพสต์เช่นนี้ มันไม่เลวเลยที่คำถามจะมีคำตอบหลายคำ (ยกเว้นบางทีเมื่อพวกเขานำเสนอข้อมูลที่เหมือนกันและในทางเดียวกัน) ฉันไม่แน่ใจว่าทำไมการฝึกฝนที่สำคัญในการตรวจสอบเครื่องจักรในท้องถิ่นนั้นขึ้นอยู่กับการรู้ / การเรียกส่วนต่อประสานทางกายภาพของมนุษย์ แต่อาจมีข้อโต้แย้งว่าการสื่อสารกับเพื่อนร่วมงานหรือการใช้เอกสารเป็นเรื่องสำคัญ (คุณอาจอธิบายให้ชัดเจนว่าในคำตอบของคุณ)
Eliah Kagan

4
เนื่องจากความสัมพันธ์ใกล้ชิดของพวกเขา (ดูคำตอบที่ดีทั้งหมด) ข้อกำหนดเหล่านี้บางครั้งมีการใช้คำเหมือนกันซึ่งอาจเป็นสิ่งที่ทำให้คุณถามคำถามนี้
ทำเครื่องหมาย

คำตอบ:


143

คำตอบสั้น ๆ :

  • เทอร์มินัล = สภาพแวดล้อมอินพุต / เอาต์พุตข้อความ
  • console = ฟิสิคัลเทอร์มินัล
  • shell = ตัวแปลบรรทัดคำสั่ง

คำตอบยาว:

คอนโซลและเทอร์มินัลมีความสัมพันธ์กันอย่างใกล้ชิด แต่เดิมพวกเขาหมายถึงชิ้นส่วนของอุปกรณ์ซึ่งคุณสามารถโต้ตอบกับคอมพิวเตอร์ในยุคแรก ๆ ของยูนิกซ์ที่หมายถึงโทรพิมพ์อุปกรณ์สไตล์คล้ายเครื่องพิมพ์ดีดบางครั้งเรียกว่า teletypewriter หรือ“TTY” ชวเลข ชื่อ "เทอร์มินัล" มาจากมุมมองอิเล็กทรอนิกส์และชื่อ "คอนโซล" จากมุมมองเฟอร์นิเจอร์ เร็วมากในประวัติศาสตร์ยูนิกซ์คีย์บอร์ดและจอแสดงผลอิเล็กทรอนิกส์กลายเป็นบรรทัดฐานสำหรับเทอร์มินัล

สถานีปลายทาง

ในคำศัพท์ unix เทอร์มินัลเป็นไฟล์อุปกรณ์ชนิดหนึ่งซึ่งใช้จำนวนคำสั่งเพิ่มเติม ( ioctls ) เกินกว่าการอ่านและเขียน เทอร์มินัลบางตัวจัดทำโดยเคอร์เนลในนามของอุปกรณ์ฮาร์ดแวร์เช่นอินพุตที่มาจากแป้นพิมพ์และเอาต์พุตไปที่หน้าจอโหมดข้อความหรือด้วยอินพุตและเอาต์พุตที่ส่งผ่านสายอนุกรม เทอร์มินัลอื่น ๆ บางครั้งเรียกว่า pseudo-terminal หรือ pseudo-ttys ถูกจัดเตรียมไว้ (ผ่านเคอร์เนลเลเยอร์บาง) โดยโปรแกรมที่เรียกว่าเทอร์มินัลอีมูเลเตอร์ เทอร์มินัลอีมูเลเตอร์บางประเภทรวมถึง:

  • แอปพลิเคชัน GUI ที่ทำงานในระบบX Window : Xterm , Gnome Terminal, Konsole, Terminator เป็นต้น
  • Screenและtmuxซึ่งจัดเตรียมชั้นของการแยกระหว่างโปรแกรมและเทอร์มินัลอื่น
  • Sshซึ่งเชื่อมต่อเทอร์มินัลในเครื่องหนึ่งกับโปรแกรมในเครื่องอื่น
  • คาดว่าสำหรับการโต้ตอบ terminaling สคริปต์

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

ปลอบใจ

คอนโซลทั่วไปเป็นขั้วในความรู้สึกทางกายภาพที่เป็นโดยความหมายบางสถานีหลักเชื่อมต่อโดยตรงกับเครื่อง คอนโซลปรากฏขึ้นกับระบบปฏิบัติการเป็นเทอร์มินัล (ใช้เคอร์เนล) ในบางระบบเช่น Linux และ FreeBSD คอนโซลจะปรากฏเป็นเทอร์มินัลหลายตัว (ttys) (คีย์ผสมพิเศษสลับระหว่างเทอร์มินัลเหล่านี้); เพียงเพื่อสร้างความสับสนให้กับเรื่องชื่อที่ให้แก่แต่ละเทอร์มินัลเฉพาะสามารถเป็น "คอนโซล", "เสมือนคอนโซล", "เสมือนขั้ว" และรูปแบบอื่น ๆ

ดูเพิ่มเติมเหตุใดเทอร์มินัลเสมือน“ เสมือนจริง” คืออะไรและทำไมเทอร์มินัล“ ของจริง” คืออะไร? .

บรรทัดคำสั่ง [อินเตอร์เฟส]

บรรทัดคำสั่งเป็นอินเตอร์เฟซที่ใช้ชนิดคำสั่ง (ซึ่งจะแสดงเป็นลำดับตัวอักษร - ชื่อคำสั่งมักจะตามด้วยพารามิเตอร์บางอย่าง) และกดReturnกุญแจสำคัญในการดำเนินการคำสั่งว่า

เปลือก

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

ในแวดวงยูนิกซ์เชลล์มีความหมายเฉพาะเชลล์บรรทัดคำสั่งโดยมีศูนย์กลางอยู่ที่การป้อนชื่อของแอปพลิเคชันที่ต้องการเริ่มต้นตามด้วยชื่อของไฟล์หรือวัตถุอื่น ๆ ที่แอปพลิเคชันควรทำงานและกดปุ่ม Enter สภาพแวดล้อมประเภทอื่น ๆ (โดยมีข้อยกเว้นล่าสุดที่น่าทึ่งของ Gnome Shell) มักจะไม่ใช้คำว่า "shell" ตัวอย่างเช่นระบบหน้าต่างเกี่ยวข้องกับ " ตัวจัดการหน้าต่าง " และ " สภาพแวดล้อมเดสก์ท็อป " ไม่ใช่ "เชลล์"

มียูนิกซ์เชลล์ที่แตกต่างกันมากมาย เชลล์เริ่มต้นของ Ubuntu คือBash (เหมือนกับลีนุกซ์รุ่นอื่น ๆ ) ทางเลือกที่นิยม ได้แก่zsh (ซึ่งเน้นพลังและความสามารถในการปรับแต่งได้) และปลา (ซึ่งเน้นความเรียบง่าย)

เชลล์บรรทัดคำสั่งรวมการสร้างโฟลว์คอนโทรลเพื่อรวมคำสั่ง นอกเหนือจากการพิมพ์คำสั่งที่พร้อมต์แบบโต้ตอบผู้ใช้สามารถเขียนสคริปต์ เปลือกหอยที่พบมากที่สุดมีไวยากรณ์ที่พบอยู่บนพื้นฐานของBourne_shell เมื่อพูดถึง“ การเขียนโปรแกรมเชลล์ ” เชลล์จะบอกเป็นนัย ๆ ว่าเป็นเชลล์สไตล์ Bourne เชลล์บางตัวที่มักใช้ในการเขียนสคริปต์ แต่ขาดคุณลักษณะการโต้ตอบขั้นสูง ได้แก่Korn เชลล์ (ksh)และเถ้าหลากหลายรูปแบบ ค่อนข้างเหมือนระบบ Unix ใด ๆ ที่มีการติดตั้งเปลือกสไตล์ Bourne เป็น/bin/shปกติเถ้า Ksh หรือทุบตี บน Ubuntu /bin/shคือDashซึ่งเป็นตัวแปรแอช (เลือกเนื่องจากเร็วกว่าและใช้หน่วยความจำน้อยกว่าทุบตี)

ในการจัดการระบบ unix เชลล์ของผู้ใช้คือโปรแกรมที่ถูกเรียกเมื่อพวกเขาเข้าสู่ระบบบัญชีผู้ใช้ปกติมีเชลล์บรรทัดคำสั่ง แต่ผู้ใช้ที่มีการเข้าถึงที่ จำกัด อาจมีเชลล์ที่ถูก จำกัดหรือคำสั่งเฉพาะอื่น ๆ - บัญชีเท่านั้น)


การแบ่งงานระหว่างเทอร์มินัลและเชลล์ไม่ชัดเจนอย่างสมบูรณ์ นี่คือภารกิจหลักของพวกเขา

  • อินพุต: เทอร์มินัลแปลงคีย์เป็นลำดับการควบคุม (เช่นLeft\e[D) เชลล์แปลงลำดับการควบคุมไปเป็นคำสั่ง (เช่น\e[Dbackward-char)
  • Line Edition, ประวัติอินพุตและความสมบูรณ์จัดทำโดยเชลล์
    • เทอร์มินัลอาจจัดเตรียมรุ่นบรรทัดของตนเองประวัติและความสมบูรณ์แทนและส่งบรรทัดไปยังเชลล์เมื่อพร้อมที่จะดำเนินการเท่านั้น เทอร์มินัลทั่วไปเท่านั้นที่ทำงานในลักษณะนี้อยู่M-x shellใน Emacs
  • เอาท์พุท: เชลล์ส่งเสียงคำแนะนำเช่น "จอแสดงผลfoo", "สลับสีพื้นหน้าเป็นสีเขียว", "เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป" ฯลฯ เทอร์มินัลทำหน้าที่ตามคำแนะนำเหล่านี้
  • พรอมต์เป็นแนวคิดของเชลล์อย่างหมดจด
  • เชลล์ไม่เห็นเอาต์พุตของคำสั่งที่รัน (ยกเว้นว่าถูกเปลี่ยนทิศทาง) ประวัติเอาต์พุต (scrollback) เป็นแนวคิดของเทอร์มินัลอย่างแท้จริง
  • การคัดลอกวางระหว่างแอพพลิเคชั่นนั้นจัดทำโดยเทอร์มินัล (โดยปกติจะใช้เมาส์หรือลำดับคีย์เช่นCtrl+ Shift+ VหรือShift+ Insert) เชลล์อาจมีกลไกการคัดลอกวางภายในของตัวเองเช่น ( Meta+ WและCtrl+ Y)
  • การควบคุมงาน (การเปิดตัวโปรแกรมในพื้นหลังและการจัดการพวกมัน) ส่วนใหญ่ทำโดยเชลล์ อย่างไรก็ตามเป็นเทอร์มินัลที่จัดการชุดคีย์เช่นCtrl+ Cเพื่อฆ่างานเบื้องหน้าและCtrl+ Zเพื่อระงับ

รีไซเคิลจากUnix & Linux


1
ฉันต้องไม่เห็นด้วยกับคุณในเทอร์มินัลเป็นคำศัพท์ที่เหมาะสมสำหรับไฟล์อุปกรณ์เทอร์มินัลและ / หรือรหัสการจัดการเทอร์มินัลในเคอร์เนล (tty ioctls, raw / สุก, การตัดบรรทัดพื้นฐาน) เทอร์มินัล = สิ่งที่จัดการรหัสหลบหนีเปลี่ยนการกดปุ่มเป็นตัวอักษรและวาดบนหน้าจอ (หรือพิมพ์บนกระดาษ / เทป) ดูคำตอบของฉันสำหรับรายละเอียดเพิ่มเติม
Peter Cordes

2
@PeterCordes รายละเอียดในระดับนี้ไม่มีความแตกต่าง POSIXกำหนดเทอร์มินัลให้ตรงกันกับอุปกรณ์เทอร์มินัลในแง่ของไฟล์อุปกรณ์ นั่นคือความหมายของ Unix มันจะเกิดขึ้นเป็นสิ่งที่เกินกว่าที่จะจัดการรหัสการหลบหนีเปลี่ยนการกดปุ่มเป็นตัวอักษรและดึงบนหน้าจอ (หรือส่งผ่านเครือข่ายหรือบันทึกไปยังไฟล์ ฯลฯ )
Gilles

2
hrm, ใช่แล้วเทอร์มินัลก็คุ้นเคยเช่นกัน ด้วยสมมติฐานที่ว่ามีเทอร์มินัลอีมูเลเตอร์หรือพอร์ตอนุกรมที่มีอุปกรณ์เทอร์มินัลเชื่อมต่ออยู่ที่ปลายด้านหนึ่งของอุปกรณ์เทอร์มินัลที่เคอร์เนลกำลังจัดการอยู่ การจัดการเคอร์เนล tty (ในโหมดการปรุงสุก) จัดการรหัสควบคุมเพียงไม่กี่ตัว (สัญญาณที่ ^ c, การตัดบรรทัดใน ^ u / ^? (ลบ) ฉันพยายามวาดเส้นระหว่างรหัส tty และส่วนหนึ่งของ Linux ที่ใช้เทอร์มินัลเหมือน VT100 บนกราฟิกการ์ดและแป้นพิมพ์ USB / ps2 / AT คุณสามารถคอมไพล์ Linux ได้โดยไม่ต้องมี แต่จะไม่มี tty
Peter Cordes

3
@PeterCordes ในการกำหนดค่าเคอร์เนลสามารถรองรับเทอร์มินัลได้ (มันมีประโยชน์สำหรับระบบฝังตัวที่หายากบางตัวที่หน่วยความจำแน่นมาก); CONFIG_TTYมันควบคุมโดย การสนับสนุนเทอร์มินัลอีมูเลเตอร์ (เรียกอีกอย่างว่าเทอร์มินัลหลอก - "เทอร์มินัลอีมูเลเตอร์" ไม่รวม telnetd, หน้าจอ, คาดหวัง, ... ) ควบคุมอยู่CONFIG_UNIX98_PTYSเสมอ รองรับการแสดงผลโหมดข้อความ PC CONFIG_VTและแป้นพิมพ์หรือเหมือนถูกควบคุมโดย ดูdrivers/tty/Kconfigในแหล่งเคอร์เนล
Gilles

2
อุ๊ปส์ฉันไม่ได้มีแหล่งเคอร์เนลล่าสุดวางอยู่รอบ ๆ CONFIG_TTY เพิ่งถูกเพิ่มเข้ามาในปี 2555 อย่างไรก็ตามหวังว่าจะช่วยให้ทุกคนพยายามที่จะก้มหน้าสมองของพวกเขาในสิ่งที่แตกต่างกันของปริศนาและวิธีที่พวกเขาเข้าด้วยกัน
ปีเตอร์คอร์เดส

60

การแสดงภาพ

สถานีปลายทาง

สิ่งที่คุณสามารถนั่งลงและทำงานเหมือนเจ้านาย

สถานีปลายทาง

ปลอบใจ

ฮาร์ดแวร์บางตัวที่ทำสิ่งต่างๆมากมาย

ปลอบใจ

อีกตัวอย่างของคอนโซลคือวิดีโอเกมคอนโซลเช่น Super Nintendo [ที่คุณสามารถเล่น Actraiser]

เปลือก

โดยทั่วไปแอปพลิเคชันสำหรับเรียกใช้คำสั่ง

เปลือกเปลือก

Command Line [Interface]

โดยทั่วไปสิ่งใดก็ตามที่คุณป้อนคำสั่งลงใน

CLICLI


8
คุณขโมยความคิดของฉัน - ฉันจะให้คำตอบเดียวกันโดยพื้นฐาน ดังนั้นคุณสามารถมี upvote จุดที่แน่นอนว่าในขณะที่คำเหล่านี้ส่วนใหญ่ตรงกันวันนี้คำเช่น "terminal" และ "console" มีต้นกำเนิดในแนวคิดการคำนวณเก่า
thomasrutter

2
ความพยายามดี ง่ายและสะดวก
A Umar Mukthar

19

จากโครงการข้อมูล Linux :

เทอร์มินัล : โดยทั่วไปแล้วหน้าต่างเทอร์มินัลหรือที่เรียกว่าเทอร์มินัลอีมูเลเตอร์เป็นหน้าต่างแบบข้อความอย่างเดียวในอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ที่เลียนแบบคอนโซล

ในคำพูดของเราแอปพลิเคชัน GUI ซึ่งเราสามารถเข้าถึงคอนโซลของผู้ใช้ได้

คอนโซล : แผงหน้าปัดที่มีตัวควบคุมสำหรับคอมพิวเตอร์

เชลล์ : เชลล์เป็นโปรแกรมที่ให้ส่วนติดต่อผู้ใช้แบบข้อความอย่างเดียวสำหรับ Linux และระบบปฏิบัติการที่คล้าย Unix

Command-Line : บรรทัดคำสั่งเป็นพื้นที่ด้านขวาของพรอมต์คำสั่งในโหมดการแสดงข้อความทั้งหมดบนหน้าจอคอมพิวเตอร์ (โดยปกติคือแผง CRT หรือ LCD) ซึ่งผู้ใช้ป้อนคำสั่งและข้อมูล


5
"Terminal" ย่อมาจากหน้าจอข้อความเท่านั้นทางกายภาพ สิ่งที่คุณพูดคือ "terminal emulator"
สมาชิกที่ลงทะเบียน

2
@RegisteredUser เทอร์มินัลอีมูเลเตอร์เป็นชนิดของเทอร์มินัล เทอร์มินัลคำไม่ จำกัด เฉพาะเทอร์มินัลทางกายภาพ (คำปกติสำหรับคอนโซลนั้น)
Gilles

2
คำจำกัดความของบรรทัดคำสั่งนี้ผิด บรรทัดคำสั่งไม่ จำกัด โหมดการแสดงข้อความทั้งหมด
Gilles

1
@Gilles ฉันได้คว้ามาจาก One web-Link คุณได้กล่าวคำตอบที่เหมาะสม
rʒɑdʒɑ

5
@AgentCool ฉันไม่สงสัยความสามารถของคุณในการคัดลอกวาง ฉันถามตัวเลือกแหล่งที่มาของคุณ สิ่งที่คุณโพสต์เป็นความรับผิดชอบของคุณไม่ว่าคุณจะเขียนหรือไม่ก็ตาม
Gilles

15

คำตอบที่นี่ดูดีมาก อย่างไรก็ตามมันแห้งเกินไปและเทคนิคสำหรับรสนิยมของฉันดังนั้นฉันจะยอม

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

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

Shellเป็นระบบปฏิบัติการ บนคอมพิวเตอร์คุณมีเคอร์เนลซึ่งใน Ubuntu เป็นส่วนของ Linux ตอนนี้เนื่องจากเคอร์เนลอยู่ในระดับต่ำมากเชลล์จึงจัดเตรียมไว้ให้ - โปรแกรมที่ให้ผู้ใช้โต้ตอบกับเคอร์เนลได้อย่างง่ายดาย นั่นคือสิ่งที่ทุบตีเป็นตัวอย่าง

คอนโซลคือ (จากพจนานุกรม)

พื้นผิวเรียบที่มีส่วนควบคุมสำหรับเครื่องจักรสำหรับอุปกรณ์ไฟฟ้า ฯลฯ

นั่นเป็นเหตุผลว่าทำไมในวงการเพลงถึงมีปุ่มทั้งหมดหรือในกระสวยอวกาศตารางคำสั่งพวกเขาทั้งหมดถือว่าเป็นคอนโซล Super Nintendo และ PS2 เรียกอีกชื่อหนึ่งว่าเครื่องเล่นคอนโซลในอดีตตั้งแต่อุปกรณ์ความบันเทิงแบบแรกนั้นดูเหมือนกับกล่องที่มีปุ่มมากมาย

บรรทัดคำสั่งเป็นเพียงส่วนต่อประสาน - ซึ่งตรงกันข้ามกับ GUI กล่าวคือมีอินเทอร์เฟซสองชนิดบนคอมพิวเตอร์ CLI (อินเตอร์เฟสบรรทัดคำสั่ง) และ GUI (ส่วนติดต่อผู้ใช้แบบกราฟิก) ข้อแตกต่างที่สำคัญคืออันแรกได้รับการป้อนข้อมูลจากแป้นพิมพ์ในขณะที่สองได้รับการป้อนข้อมูลจากเมาส์


1
คุณหมายถึงอะไร "ตรงกันข้ามกับ GUI"?
Koray Tugay

2
ตรงกันข้ามฉันหมายความว่าคุณมี CLI หรือ GUI ฉันได้ชี้แจงเพิ่มเติมในคำตอบอีกเล็กน้อย
Pithikos

12

เพื่อสรุปคำตอบของฉัน:

Shellเป็นโปรแกรมที่processesคำสั่งและreturnsเอาต์พุตเช่นbashใน Linux

เทอร์มิเป็นโปรแกรมที่เปลือกในอดีตที่ผ่านมามันเป็นอุปกรณ์ทางกายภาพ (ก่อนขั้วเป็นจอภาพกับแป้นพิมพ์พวกเขาteletypes ) แล้วแนวคิดของตนถูกย้ายเข้าไปในซอฟต์แวร์เช่นGnome-ร์มินัลrun

ดังนั้นฉันจึงเปิดGnome-Terminalหน้าต่างสีดำปรากฏขึ้นที่เรียกใช้Shellเพื่อให้ฉันสามารถเรียกใช้คำสั่งของฉัน

คอนโซลเป็นเทอร์มินัลชนิดพิเศษมันยังเป็นอุปกรณ์ทางกายภาพ เช่นในลินุกซ์เรามีvirtual consoleที่ฉันสามารถเข้าถึงได้ด้วยการผสมผสานCtrl+ +AltF1 to F7

คอนโซลบางครั้งหมายถึงแป้นพิมพ์และตรวจสอบร่างกายที่แนบมากับคอมพิวเตอร์เครื่องนี้


11

คำเหล่านี้มักจะไปด้วยกันดังนั้นผู้คนจึงใช้คำใดคำหนึ่งในการอ้างอิงถึงชุดสะสม (กล่าวคือมักจะชัดเจนจากบริบทที่พวกเขาหมายถึงหน้าต่างเทอร์มินัลที่มีส่วนต่อประสานกับเชลล์บรรทัดคำสั่ง)

เพื่อป้องกันไม่ให้ถูกยืดยาวฉันแค่บอกว่า xterm เป็น stand-in สำหรับ XTerm / Gnome Terminal / Konsole / mrxvt / etc / ฯลฯ เหมือนกันกับ bash

คอนโซลมีความหมายเฉพาะอื่น ๆ อีกมากมายดังนั้นโปรดละไว้ก่อน

เทอร์มินัล : สิ่งที่ให้การโต้ตอบกับมนุษย์กับโปรแกรมผ่านสตรีมแบบสองทิศทางของ ASCII / UTF8 / ตัวละครอื่น ๆ โดยทั่วไปจะใช้ VT100 หรือการประมวลผลรหัสหลีกเลี่ยงที่คล้ายกัน (เช่น backspace, ลบ, ปุ่มลูกศร ฯลฯ สร้างรหัสการหลบหนีโปรแกรมสามารถพิมพ์รหัสการหลบหลีกเพื่อเลื่อนเคอร์เซอร์ไปรอบ ๆ หน้าจอเทอร์มินัลสลับเป็นข้อความตัวหนาและ / หรือสีล้างหรือเลื่อนหน้าจอ ฯลฯ ) สมัยก่อนนี้มักจะเป็นอุปกรณ์เฉพาะที่มีหน้าจอและคีย์บอร์ดและพอร์ตอนุกรม ตอนนี้มันมักจะเป็นโปรแกรมเช่น xterm

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

เทอร์มินัลทุกเครื่องรวมถึงเวอร์ช่วลให้การแก้ไขบรรทัดพื้นฐานเมื่ออยู่ในโหมดสุก (ตรงข้ามกับดิบ) สิ่งนี้ถูกจัดการโดยรหัสเคอร์เนล มันทุบตีที่ให้การแก้ไขบรรทัดที่คุณสามารถทำได้ด้วยปุ่มลูกศร (ลองเรียกใช้catและพิมพ์หากคุณต้องการดูว่าการแก้ไขบรรทัดที่ให้เคอร์เนลพื้นฐานคืออะไร Backspace ใช้งานได้และอีกสองอย่างอื่น ๆ ตามการตั้งค่า stty ของคุณ)

แม้ว่าจะมีรหัสเคอร์เนลจำนวนมากอยู่ด้านหลังอุปกรณ์เทอร์มินัลมันจะถูกอ้างถึงว่าเป็นรหัสการจัดการอาคารไม่ใช่เทอร์มินัลเอง

แก้ไข: Gilles ทำให้ฉันเชื่อว่าการอ้างถึง tty เนื่องจากเทอร์มินัลเป็นการใช้งานที่เหมาะสม เทอร์มินัลอีมูเลเตอร์และโปรแกรมแบบอินเทอร์แอคทีฟที่เชื่อมต่อกับเทอร์มินัลล้วนแล้วแต่อาศัยซีแมนเทอร์มินัลที่นำมาใช้โดยเคอร์เนล (พฤติกรรมนี้ส่วนใหญ่เป็นมาตรฐานโดย POSIX และเหมือนกันใน Linux / * BSD / Unix อื่น ๆ ) โปรแกรมแก้ไขข้อความแบบเต็มหน้าจอขึ้นอยู่กับพฤติกรรมของ Unix tty stuff และการจัดการโค้ดเลื่อนเคอร์เซอร์ - การเคลื่อนไหว และคุณสมบัติอื่น ๆ ของเทอร์มินัลอีมูเลเตอร์

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

บรรทัดคำสั่งเป็นลักษณะส่วนติดต่อผู้ใช้ที่คุณพิมพ์บางอย่างจากนั้นกดปุ่มย้อนกลับเพื่อทำให้บางสิ่งเกิดขึ้น มันยังใช้เป็นชวเลขสำหรับเชลล์บรรทัดคำสั่งเช่น bash หรือ MS-DOS แต่คุณยังสามารถพูดว่า“ มันเป็นเครื่องมือบรรทัดคำสั่ง” เกี่ยวกับ fdisk เมื่อพิจารณาเฉพาะโปรแกรมที่ใช้เทอร์มินัลสำหรับ UI ของพวกเขาตระกูลหลักสองตระกูลคือบรรทัดคำสั่งและข้อความแบบเต็มหน้าจอ (เช่นตัวแก้ไขเช่น vi หรือemacs -nw)

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

เปลือกเป็นโปรแกรมสำหรับการเริ่มต้นโปรแกรมอื่น ๆ ในบริบท Unix เป็นเรื่องปกติที่จะหมายถึงเชลล์บรรทัดคำสั่ง (เช่น Bourne shell หรือ C เชลล์เทียบเท่า) Unix shells สามารถอ่านอินพุตจากไฟล์ได้เช่นเชลล์สคริปต์ เป็นภาษาโปรแกรมเต็มรูปแบบที่มีตัวแปรลูปและเงื่อนไขและหลายโปรแกรมเขียนเป็น bash (หรือมีเพียง/bin/shคุณสมบัติเชลล์ POSIX เท่านั้นเพื่อความสะดวกในการพกพา) นอกจากนี้ยังเป็นไปได้ที่จะเขียนfor i in *.something; do some_program "$i";done เชลล์แบบโต้ตอบได้อย่างง่ายดาย

การรวมมันเข้าด้วยกันเชลล์เช่น bash (หรือโปรแกรมใด ๆ ที่คุณเริ่มต้นด้วยการรันคำสั่งเชลล์) จะได้รับอักขระจาก/dev/pts/Nอุปกรณ์ปลายทางหลังจาก xterm เขียนอินพุตของคุณลงในด้านของเทอร์มินัลหลอก หากคุณเรียกใช้catแล้วกด^cรหัสเคอร์เนล tty จะทำหน้าที่^cและส่งSIGINTไปยังกระบวนการเบื้องหน้าของเทอร์มินัลนั้น (หมายเหตุการใช้งานของเครื่องในบริบทนี้หมายถึง Unix tty ไม่ใช่เทอร์มินัลอีมูเลเตอร์หรือบางสิ่งที่เชื่อมต่อกับพอร์ตอนุกรม) สิ่งนี้เกิดขึ้นเนื่องจากเชลล์ทำให้เทอร์มินัลเข้าสู่โหมด "สุก" ก่อนที่จะเริ่มโปรแกรมใด ๆ ลำดับ (รหัส tty ยังคงไม่มีอะไรเกี่ยวข้องกับการจัดการรหัสหลบหนี VT100 เพียงแค่รหัสควบคุม ASCII ต่ำสองสามตัว) หากแทนที่จะเป็น xterm คุณกำลังใช้เทอร์มินัลข้อความคอนโซลของ Linux แล้วเคอร์เนล IS ทำการจำลอง VT100 และ จัดการทุกสิ่งนั้น Linux สามารถรวบรวมได้โดยไม่ต้องสนับสนุนเทอร์มินัลเทอร์มินัลข้อความเสมือน แต่ไม่สนับสนุน tty

บางครั้งConsoleใช้เป็นคำเหมือนสำหรับเทอร์มินัล (KDE ยังมีเทอร์มินัลอีมูเลเตอร์ชื่อ Konsole)

ในขณะที่ 0xSheepdog ชี้ให้เห็นมันก็มีความหมายอื่น: ฮาร์ดแวร์ที่เชื่อมต่อกับมนุษย์ในพื้นที่

ในบริบทเคอร์เนลคอนโซลมีความหมายเฉพาะอื่น: เป็นเทอร์มินัลที่เขียนข้อความสำหรับเริ่มระบบ นี่อาจเป็นพอร์ตอนุกรม โดยปกติแน่นอนว่ามันคือคอนโซลข้อความที่ใช้งานโดยเคอร์เนลที่ด้านบนของไดรเวอร์สำหรับฮาร์ดแวร์กราฟิกและคีย์บอร์ด USB / ps2 / AT หากคุณบูต Linux ด้วยconsole=tty0 console=ttyS0,115200n8บรรทัดคำสั่งคุณจะได้รับข้อความเคอร์เนลบนหน้าจอและบนพอร์ตอนุกรม

Linux ใช้คอนโซลเสมือน ( /dev/tty1ถึงN ) คุณสามารถสลับที่หนึ่งทางกายภาพ / จอแป้นพิมพ์ของคุณจะถูกควบคุมด้วยCtrl+ +Alt ลินุกซ์ distros ทั่วไปสร้าง 6 และเริ่มต้นในพวกเขาทั้งหมดดังนั้นแม้ว่าคุณจะไม่สามารถหรือไม่ต้องการที่จะเริ่มต้น X11 คุณสามารถเข้าสู่ระบบ 6 ครั้งและพลิกระหว่างคำสั่งหน้าคนและสิ่งอื่นโดยไม่ต้อง ใช้โปรแกรมเช่นหน้าจอ Linux (เคอร์เนล) มีเทอร์มินัลอีมูเลเตอร์จำลอง VT100 เพื่อจัดเตรียมเทอร์มินัลอินเตอร์เฟสผ่านหน้าจอและคีย์บอร์ดของคุณบนคอนโซลเสมือนFNgetty

เทอร์มินัลเสมือนมาตรฐาน 6 พร้อมพรอมต์การเข้าสู่ระบบคือสาเหตุที่Ctrl+ Alt+ นำF7คุณกลับไปที่เซสชัน X11 ของคุณ: เซิร์ฟเวอร์ X คว้าคอนโซลเสมือนที่มีอยู่ถัดไป (เซิร์ฟเวอร์ X เปิดขึ้น/dev/input/...โดยตรงแทนที่จะกดปุ่มจาก/dev/tty7)

ดังนั้น "การแลกเปลี่ยนคอนโซลข้อความ" หมายถึงการกดCtrl+ Alt+ F1และใช้ขั้วว่า ย้อนกลับไปเมื่อคอมพิวเตอร์ช้าและไม่มี RAM มากบางคนใช้เวลาส่วนใหญ่บนคอนโซลข้อความเนื่องจากมันเร็วคุณสามารถตั้งค่าฟอนต์ที่ดีและเปลี่ยนขนาดเทอร์มินัลให้มีตัวอักษรเล็กลง แต่มี เพิ่มเติมบนหน้าจอในครั้งเดียว Alt+ LeftและAlt+ Rightswap เพื่อ prev / next console (X11 ปิดใช้งานสิ่งนี้สำหรับคอนโซลแน่นอนเหลือเพียงเครื่องหมายCtrl+ Alt+ เท่านั้น)FN

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


2
คอนโซลหมายถึงเทอร์มินัลทางกายภาพ“ หลัก” ไม่เพียง แต่ในบริบทเคอร์เนล ก็เหมือนกันความหมาย/dev/consoleใน คอนโซลไม่ชัดเจนเป็นพิเศษ - แม้ว่าบางครั้งจะใช้ในความหมายทั่วไปของเทอร์มินัลที่ค่อนข้างหายาก (หายากกว่าเทอร์มินัลที่ใช้ในการหมายถึงคอนโซลโดยเฉพาะ)
Gilles

1
ใช่แล้ว echo foo | sudo tee / dev / console> / dev / null จะพิมพ์บนหน้าจอหาก VT ปัจจุบันของคุณอยู่ในโหมดข้อความ (รวมถึงคอนโซล framebuffer ไม่ใช่แค่ตัวอักษร VGA แบบอักษร) หากคุณบู๊ตด้วยคอนโซลบนพอร์ตอนุกรมฉันคิดว่ามันจะไปที่นั่น คุณสามารถพูดได้ว่า / dev / console เป็นไฟล์อุปกรณ์สำหรับสิ่งที่เคอร์เนลกำลังปฏิบัติเหมือนเป็นระบบคอนโซล ไม่มีอะไรในระบบต้องมีความคิดว่ามีคอนโซล tty เลย (ยกเว้นสิ่งที่กู้คืนระบบที่เริ่มต้นเชลล์บนคอนโซล TTY ถ้าระบบล้มเหลวในการบูตไปที่โหมดผู้ใช้หลายคนโดยปกติจาก initrd)
Peter Cordes

1
เซิร์ฟเวอร์ xorg X (strings / usr / bin / Xorg) ไม่ได้ใช้ / dev / console เพื่อรับการเข้าถึงฮาร์ดแวร์ มันใช้ / dev / tty0 และ / dev / tty% d และ / dev / vc /% d เพื่อตั้งค่าตัวเองใน VT ของตัวเอง ฉันค่อนข้างแน่ใจว่า Xorg ยังคงทำงานได้ดีบนพีซีที่บู๊ตด้วยเคอร์เนลคอนโซลบนพอร์ตอนุกรม และเทอร์มินัลเสมือนโหมดข้อความจะยังคงใช้งานได้ ยิ่งฉันพิจารณาสิ่งนี้มากเท่าไหร่ฉันก็ยิ่งเอนกายดูคอนโซลในบริบทของเคอร์เนลมากขึ้นเหมือนกับเทอร์มินัลพิเศษที่เลือกไว้ตอนบูทเครื่อง (ลีนุกซ์สามารถส่งออกข้อความคอนโซลบนเทอร์มินัลหลายตัวพร้อมกันได้ถ้าคุณขอให้มัน)
Peter Cordes

6

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

ฉันจะบอกว่าบรรทัดคำสั่งเป็นพื้นที่ที่ผู้ใช้สามารถพิมพ์คำสั่งในขณะที่เชลล์เป็นโปรแกรมที่ตีความ / เชื่อฟังคำสั่งนั้น คำว่า "shell" นั้นมีความพิเศษมากสำหรับอนุพันธ์ของ Unix "command-line" นั้นมีมากขึ้นในประเพณี Windows / DOS เทียบเท่าบนเมนเฟรมมักจะเรียกว่า "ภาษาควบคุมงาน"

เห็นได้ชัดว่าความแตกต่างดั้งเดิมเหล่านี้กลายเป็นพร่ามัวเมื่อเวลาผ่านไปเมื่อมีการเปลี่ยนแปลงเทคโนโลยี


3

ลองใช้คำตอบสั้น ๆ ที่ให้ผู้ใช้เป็นศูนย์กลาง:

command line - บรรทัดที่คุณป้อนคำสั่ง โดยปกติจะใช้เพื่อบอกว่าคุณต้องใช้งานบางอย่างในหน้าต่างโหมดข้อความ (อินเตอร์เฟสบรรทัดคำสั่ง) ที่ระบบปฏิบัติการของคุณจัดทำ

เปลือก - command lineโปรแกรมจริงทำงานโดยระบบปฏิบัติการที่จะดำเนินการสิ่งที่คุณใส่ลงไปใน ดังนั้นชื่อ - เชลล์ที่ใช้งานง่ายสำหรับ OS หลักที่ไม่เป็นมิตร มันมีพรอมต์คำสั่งเช่น$หรือ>เรียกใช้คำสั่งและแอพของตัวเอง คุณทำงานผ่านshellโปรแกรมและไม่เคยทำงานกับคอนโซลหรือเทอร์มินัลโดยตรง

console - เป็นหน้าต่างที่โปรแกรมโหมดข้อความของคุณกำลังทำงาน หน้าต่างนี้ประมวลผลการกดแป้นรู้ว่าเป็นความกว้างและความสูง สามารถเป็นแบบเต็มหน้าจอ

เทอร์มินัล - เป็นอุปกรณ์ที่มีจอแสดงผลสำหรับมนุษย์ที่ยอมรับอินพุตสตรีมของตัวละครและแสดงให้พวกเขาเห็น ไม่มีคำติชมถึงผู้ใช้เกี่ยวกับความสูงหรือความกว้าง (แฮ็กเท่านั้น) หรือการกดแป้นคีย์บอร์ด - เฉพาะตัวอักษรที่เดินทางไปเท่านั้น เทอร์มินัลจะประมวลผลลำดับพิเศษในสตรีมนี้เพื่อทำให้สิ่งต่าง ๆ สีทำความสะอาดหน้าจอและทำสิ่งที่น่ารังเกียจอื่น ๆ เทอร์มินัลนั้นมีข้อผิดพลาดเนื่องจากมันง่ายต่อการเลอะสิ่งต่าง ๆ หากไฟล์ที่คุณกำลังไพพ์ไปยังเอาท์พุตมีลำดับพิเศษนั้น พวกเขาได้รับความนิยมในการเชื่อมต่อเครือข่ายและอุปกรณ์ดีบั๊กเนื่องจากคุณเพียงแค่กระแสเดียวสำหรับการส่งออกและควบคุมอุปกรณ์ส่งออกและคุณสามารถtapเข้าสู่การสนทนาโดยไม่จำเป็นต้องเริ่มต้นหรือสร้างหน้าต่าง

serial console - เป็นคอนโซลที่ประมวลผลสตรีมอินพุตเหมือนเทอร์มินัล


3

นี่เป็นหัวข้อที่คลุมเครือเนื่องจากคำศัพท์นั้นคลุมเครือมาก ฉันขอแนะนำอย่างยิ่งให้อ่านลิงก์ที่ฉันให้ไว้ในคำตอบนี้ซึ่งเป็นแหล่งที่มาของคำตอบนี้

เปลือกเป็นชั้นเหนือเคอร์เนล:

  • มันตีความคำสั่งที่ป้อนโดยผู้ใช้และประมวลผลพวกเขา เชลล์มีการเข้าถึงเคอร์เนลซึ่งแตกต่างจากผู้ใช้ ผู้ใช้สามารถเข้าถึงเคอร์เนลผ่านการป้อนคำสั่งโดยใช้เชลล์และโดยใช้กระบวนการ (เช่นการเรียกใช้โปรแกรม) โปรแกรมใช้การเรียกของระบบเพื่อเข้าถึงฟังก์ชันเคอร์เนล ระบบทั้งหมดเรียกเข้าด้วยกันในรูปแบบระบบ API
  • ตัวอย่างของเชลล์ถูกกำหนดไว้ในนิยามเทอร์มินัลที่สอง

ขั้วมีความหมายที่มากมาย:

  • (1) terminal ข้อความ นี่คือการรวมกันของจอภาพแสดงผลและแป้นพิมพ์ สายเคเบิลเชื่อมต่อขั้วเข้ากับคอมพิวเตอร์ (มักทางอ้อม) มันถูกเรียกว่าเทอร์มินัลเนื่องจากตั้งอยู่ที่ปลายเทอร์มินัลของสายเคเบิลนี้ เทอร์มินัลเหล่านี้มักถูกแยกทางกายภาพจากคอมพิวเตอร์เพราะในสมัยก่อนเทอร์มินัลจำนวนมากเชื่อมต่อกับเมนเฟรม / คอมพิวเตอร์เครื่องเดียวดังนั้นผู้ใช้หลายคนจึงสามารถเข้าถึงคอมพิวเตอร์ได้ในเวลาเดียวกัน
  • (2) หน้าต่าง terminal aka จำลอง terminal ใน Linux หน้าต่างเทอร์มินัลคือการจำลองคอนโซลซึ่งมีอยู่ในหน้าต่าง GUI มันคือ CLI ที่คุณพิมพ์ข้อความของคุณและเชลล์ที่คุณใช้อ่านอินพุตนี้ มีเปลือกหอยหลายประเภท (เช่นทุบตี, ประ, ksh88) และขั้ว (เช่น konsole, gnome)
  • (3) สำหรับคำอธิบายเกี่ยวกับขั้วหลอกให้ดูนี้ มันเป็น 'ไฟล์อุปกรณ์' สองไฟล์ที่ใช้สำหรับการสื่อสารระหว่างกระบวนการและเทอร์มินัลอีมูเลเตอร์

คอนโซลที่มีความหมายหลาย

  • (1) แผงหน้าปัดที่มีส่วนควบคุมสำหรับคอมพิวเตอร์
  • (2) คอนโซลระบบ aka คอนโซลคอมพิวเตอร์ นี่คือการรวมกันของจอภาพและคีย์บอร์ดที่เชื่อมต่อกับคอมพิวเตอร์ สิ่งนี้มีความหมายเหมือนกับสิ่งที่เราเรียกว่า 'เทอร์มินัลข้อความ' บางครั้งอุปกรณ์ต่อพ่วงอื่น ๆ ที่ผู้ใช้ป้อนเช่นเมาส์เป็นส่วนหนึ่งของคอนโซล
  • (3) ส่วนต่อประสานบรรทัดคำสั่งที่ครอบคลุมเต็มหน้าจอ นี่คือตรงกันข้ามกับหน้าต่างเทอร์มินัลซึ่งเป็น GUI ที่มี X ที่มุมบนขวาเพื่อปิด นี่คือโหมดการแสดงผลสองโหมดสำหรับ CLI (อินเตอร์เฟสบรรทัดคำสั่ง) ในระบบที่คล้าย Unix เช่นเดียวกับหน้าต่างเทอร์มินัลคอนโซลสามารถเรียกใช้เชลล์จำนวนมากได้เช่นกัน

บ่อยครั้งที่ระบบปฏิบัติการอนุญาตให้คุณเรียกใช้คอนโซลหลายตัวบนฟิสิคัลคอนโซล (นิยามคอนโซล 2) เหล่านี้เรียกว่าคอนโซลเสมือน aka อาคารเสมือนและสามารถเข้าถึงได้ผ่านctrl+ alt+ Fxรวมกัน ตัวอย่างเช่นถ้าคุณต้องการที่จะเปิด 3 คอนโซลเสมือนคุณใช้การรวมกันctrl+ +altF3

คอนโซล (คำจำกัดความ 3) อาจดูเหมือนคุณในยุคสมัยสมัยก่อน แต่ผู้เชี่ยวชาญควรใช้งานได้อย่างสบายใจเนื่องจากมีระบบปฏิบัติการหลายระบบที่ไม่สนับสนุน GUI นอกจากนี้หาก GUI หยุดตอบสนองคอนโซลอาจยังใช้งานได้


2

เทอร์มินัลส่วนใหญ่ในปัจจุบันเป็นเทอร์มินัลอีมูเลเตอร์ที่พูดอย่างเคร่งครัด มันเป็นประเภทของบทบาทในการทำงานของระบบเหมือน UNIX และในเวลาเดียวกันอินเตอร์เฟซพื้นฐานที่นำเสนอโดยระบบ ในความเป็นจริงทุกอย่างรวมถึง GUI ที่สร้างอยู่ด้านบน
"เทอร์มินัล" เรียกขานยังอาจหมายถึงจุดสิ้นสุดในเครือข่ายคอมพิวเตอร์ที่มีลักษณะภูมิประเทศ

คอนโซลหมายถึงอินเตอร์เฟส (ฮาร์ดแวร์) สำหรับเทอร์มินัล คือมีอนุกรมคอนโซลและในปัจจุบันส่วนใหญ่เป็นเสมือนคน
หน้าต่างเรียกขานเรียกว่า "คอนโซล" - หน้าต่างเป็นเปลือกที่เชื่อมต่อกับขั้วของระบบผ่านคอนโซลเสมือน

ย้อนกลับไปในวันที่คอมพิวเตอร์มีราคาแพงสิ่งอำนวยความสะดวกอาจมีคอมพิวเตอร์จริงหนึ่งเครื่องและเทอร์มินัลหลายเครื่องเชื่อมต่อผ่านสายเคเบิลอนุกรม ("ซีเรียลคอนโซล") ระบบปฏิบัติการการดำเนินงานและอื่น ๆ ถูกนำไปใช้กับคอมพิวเตอร์ที่มีอยู่จริงอินพุตและเอาต์พุตที่เกิดขึ้นบนคอนโซล
คุณสามารถสลับระหว่างเทอร์มินัลเสมือนได้โดยกดCTRL+ ALT+ F1(ถึงF6): ส่วนที่เหลือของเวลาเหล่านั้น
ในวันนี้แนวคิดของ "thin client" กลับไปในทิศทางของการรวมศูนย์ทรัพยากรจำนวนมหาศาลและจัดหาฮาร์ดแวร์เพียงพอที่จะให้อินเทอร์เฟซที่ทันสมัยในที่ทำงานจริง

shellคือ "เอ็นจิ้น" ที่คุณเห็นในเทอร์มินัล มันให้การทำงานร่วมกันกับระบบของตัวเองและเพิ่มคุณสมบัติที่ดีเช่นอัตโนมัติสมบูรณ์ตัวแปร ฯลฯ
มันแปลไปมาระหว่าง OS / เคอร์เนลที่เกิดขึ้นจริงซึ่งใช้ระบบการโทรและคุณ ระบบเรียก w / o เปลือกเป็นบิตเช่นการเข้ารหัสและเปลือกอย่างน้อยจะช่วยให้คุณassemblerC

บรรทัดคำสั่งหมายถึงวิธีการแลกเปลี่ยนอินพุตและเอาต์พุตผ่านทางหน้าต่างข้อความ พูดอย่างเคร่งครัดบรรทัดที่คุณพิมพ์เป็น(ปัจจุบัน) บรรทัดคำสั่ง วิธีการโดยทั่วไปนั้นเรียกว่าcommand line interfaceหรือ CLI ที่ ถูกต้องมากขึ้น

  1. เมล็ด
  2. มีขั้ว
  3. เทอร์มินัลเชื่อมต่อผ่านคอนโซล
  4. คอนโซลรันเชลล์
  5. คำสั่งและเอาท์พุทมีการแลกเปลี่ยนผ่านทางบรรทัดคำสั่ง (อินเตอร์เฟส)

1
เคอร์เนลไม่เข้าใจคำสั่งของบรรทัดคำสั่ง แต่โดยเชลล์ “ เฟรมเวิร์กหลักของคำสั่งที่เคอร์เนลเข้าใจ” จะเป็นการเรียกของระบบ “ อินเตอร์เฟสบรรทัดคำสั่งพื้นฐาน UNIX” เป็นเชลล์ไม่มีการแยกระหว่างนั้นกับ“ คุณสมบัติที่ดี” “ terminal-emulator-window” ไม่ใช่คอนโซล
Gilles

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