อะไรคือความแตกต่างระหว่าง Terminal, Console, Shell และ Command Line
อะไรคือความแตกต่างระหว่าง Terminal, Console, Shell และ Command Line
คำตอบ:
คำตอบสั้น ๆ :
คำตอบยาว:
คอนโซลและเทอร์มินัลมีความสัมพันธ์กันอย่างใกล้ชิด แต่เดิมพวกเขาหมายถึงชิ้นส่วนของอุปกรณ์ซึ่งคุณสามารถโต้ตอบกับคอมพิวเตอร์ในยุคแรก ๆ ของยูนิกซ์ที่หมายถึงโทรพิมพ์อุปกรณ์สไตล์คล้ายเครื่องพิมพ์ดีดบางครั้งเรียกว่า teletypewriter หรือ“TTY” ชวเลข ชื่อ "เทอร์มินัล" มาจากมุมมองอิเล็กทรอนิกส์และชื่อ "คอนโซล" จากมุมมองเฟอร์นิเจอร์ เร็วมากในประวัติศาสตร์ยูนิกซ์คีย์บอร์ดและจอแสดงผลอิเล็กทรอนิกส์กลายเป็นบรรทัดฐานสำหรับเทอร์มินัล
ในคำศัพท์ unix เทอร์มินัลเป็นไฟล์อุปกรณ์ชนิดหนึ่งซึ่งใช้จำนวนคำสั่งเพิ่มเติม ( ioctls ) เกินกว่าการอ่านและเขียน เทอร์มินัลบางตัวจัดทำโดยเคอร์เนลในนามของอุปกรณ์ฮาร์ดแวร์เช่นอินพุตที่มาจากแป้นพิมพ์และเอาต์พุตไปที่หน้าจอโหมดข้อความหรือด้วยอินพุตและเอาต์พุตที่ส่งผ่านสายอนุกรม เทอร์มินัลอื่น ๆ บางครั้งเรียกว่า pseudo-terminal หรือ pseudo-ttys ถูกจัดเตรียมไว้ (ผ่านเคอร์เนลเลเยอร์บาง) โดยโปรแกรมที่เรียกว่าเทอร์มินัลอีมูเลเตอร์ เทอร์มินัลอีมูเลเตอร์บางประเภทรวมถึง:
คำว่าเทอร์มินัลยังมีความหมายดั้งเดิมของอุปกรณ์ที่มีการโต้ตอบกับคอมพิวเตอร์โดยทั่วไปจะมีแป้นพิมพ์และจอแสดงผล ตัวอย่างเช่นเทอร์มินัล 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 เชลล์ของผู้ใช้คือโปรแกรมที่ถูกเรียกเมื่อพวกเขาเข้าสู่ระบบบัญชีผู้ใช้ปกติมีเชลล์บรรทัดคำสั่ง แต่ผู้ใช้ที่มีการเข้าถึงที่ จำกัด อาจมีเชลล์ที่ถูก จำกัดหรือคำสั่งเฉพาะอื่น ๆ - บัญชีเท่านั้น)
การแบ่งงานระหว่างเทอร์มินัลและเชลล์ไม่ชัดเจนอย่างสมบูรณ์ นี่คือภารกิจหลักของพวกเขา
\e[D
) เชลล์แปลงลำดับการควบคุมไปเป็นคำสั่ง (เช่น\e[D
→ backward-char
)M-x shell
ใน Emacsfoo
", "สลับสีพื้นหน้าเป็นสีเขียว", "เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป" ฯลฯ เทอร์มินัลทำหน้าที่ตามคำแนะนำเหล่านี้รีไซเคิลจากUnix & Linux
CONFIG_TTY
มันควบคุมโดย การสนับสนุนเทอร์มินัลอีมูเลเตอร์ (เรียกอีกอย่างว่าเทอร์มินัลหลอก - "เทอร์มินัลอีมูเลเตอร์" ไม่รวม telnetd, หน้าจอ, คาดหวัง, ... ) ควบคุมอยู่CONFIG_UNIX98_PTYS
เสมอ รองรับการแสดงผลโหมดข้อความ PC CONFIG_VT
และแป้นพิมพ์หรือเหมือนถูกควบคุมโดย ดูdrivers/tty/Kconfig
ในแหล่งเคอร์เนล
การแสดงภาพ
สิ่งที่คุณสามารถนั่งลงและทำงานเหมือนเจ้านาย
ฮาร์ดแวร์บางตัวที่ทำสิ่งต่างๆมากมาย
อีกตัวอย่างของคอนโซลคือวิดีโอเกมคอนโซลเช่น Super Nintendo [ที่คุณสามารถเล่น Actraiser]
โดยทั่วไปแอปพลิเคชันสำหรับเรียกใช้คำสั่ง
โดยทั่วไปสิ่งใดก็ตามที่คุณป้อนคำสั่งลงใน
จากโครงการข้อมูล Linux :
เทอร์มินัล : โดยทั่วไปแล้วหน้าต่างเทอร์มินัลหรือที่เรียกว่าเทอร์มินัลอีมูเลเตอร์เป็นหน้าต่างแบบข้อความอย่างเดียวในอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ที่เลียนแบบคอนโซล
ในคำพูดของเราแอปพลิเคชัน GUI ซึ่งเราสามารถเข้าถึงคอนโซลของผู้ใช้ได้
คอนโซล : แผงหน้าปัดที่มีตัวควบคุมสำหรับคอมพิวเตอร์
เชลล์ : เชลล์เป็นโปรแกรมที่ให้ส่วนติดต่อผู้ใช้แบบข้อความอย่างเดียวสำหรับ Linux และระบบปฏิบัติการที่คล้าย Unix
Command-Line : บรรทัดคำสั่งเป็นพื้นที่ด้านขวาของพรอมต์คำสั่งในโหมดการแสดงข้อความทั้งหมดบนหน้าจอคอมพิวเตอร์ (โดยปกติคือแผง CRT หรือ LCD) ซึ่งผู้ใช้ป้อนคำสั่งและข้อมูล
คำตอบที่นี่ดูดีมาก อย่างไรก็ตามมันแห้งเกินไปและเทคนิคสำหรับรสนิยมของฉันดังนั้นฉันจะยอม
เทอร์มินัลคือจุดสิ้นสุดของบางสิ่ง - ที่ซึ่งสิ้นสุด ตัวอย่างเช่นถ้าคุณนั่งรถไฟใต้ดินในบางเมืองสถานีที่คุณลงคือสถานีของคุณ หรือในสนามบินซึ่งเป็นสถานที่ที่ผู้คนออกมาเมื่อพวกเขามาถึงประเทศปลายทางถือเป็นอาคารผู้โดยสาร เหตุผลที่เทอร์มินัลในสนามบินคือทุกวันนี้ทั้งที่ที่คุณรับคนขึ้นเครื่องและที่ที่คุณพาพวกเขาขึ้นเครื่องบินเพราะเหตุผลทางเศรษฐกิจที่ชัดเจน
จุดประสงค์ของคอมพิวเตอร์คือการรับข้อมูลทำอะไรกับมันแล้วคายผลลัพธ์ออกมา ดังนั้นเทอร์มินัลคืออุปกรณ์ใด ๆ ที่คุณสามารถรับผลลัพธ์ของการคำนวณได้ (ตัวอย่างเช่นหน้าจอ) มันเกิดขึ้นว่าในคอมพิวเตอร์เครื่องแรกคุณมักจะมีอินพุต (คีย์บอร์ด) และเอาต์พุต (หน้าจอ) เป็นอุปกรณ์เดียว ด้วยเหตุนี้เทอร์มินัลทุกวันนี้จึงถือเป็นอุปกรณ์อินพุต / เอาต์พุตใด ๆ เมาส์แป้นพิมพ์หน้าจอกล้องพวกเขาทั้งหมด
Shellเป็นระบบปฏิบัติการ บนคอมพิวเตอร์คุณมีเคอร์เนลซึ่งใน Ubuntu เป็นส่วนของ Linux ตอนนี้เนื่องจากเคอร์เนลอยู่ในระดับต่ำมากเชลล์จึงจัดเตรียมไว้ให้ - โปรแกรมที่ให้ผู้ใช้โต้ตอบกับเคอร์เนลได้อย่างง่ายดาย นั่นคือสิ่งที่ทุบตีเป็นตัวอย่าง
คอนโซลคือ (จากพจนานุกรม)
พื้นผิวเรียบที่มีส่วนควบคุมสำหรับเครื่องจักรสำหรับอุปกรณ์ไฟฟ้า ฯลฯ
นั่นเป็นเหตุผลว่าทำไมในวงการเพลงถึงมีปุ่มทั้งหมดหรือในกระสวยอวกาศตารางคำสั่งพวกเขาทั้งหมดถือว่าเป็นคอนโซล Super Nintendo และ PS2 เรียกอีกชื่อหนึ่งว่าเครื่องเล่นคอนโซลในอดีตตั้งแต่อุปกรณ์ความบันเทิงแบบแรกนั้นดูเหมือนกับกล่องที่มีปุ่มมากมาย
บรรทัดคำสั่งเป็นเพียงส่วนต่อประสาน - ซึ่งตรงกันข้ามกับ GUI กล่าวคือมีอินเทอร์เฟซสองชนิดบนคอมพิวเตอร์ CLI (อินเตอร์เฟสบรรทัดคำสั่ง) และ GUI (ส่วนติดต่อผู้ใช้แบบกราฟิก) ข้อแตกต่างที่สำคัญคืออันแรกได้รับการป้อนข้อมูลจากแป้นพิมพ์ในขณะที่สองได้รับการป้อนข้อมูลจากเมาส์
เพื่อสรุปคำตอบของฉัน:
Shellเป็นโปรแกรมที่processes
คำสั่งและreturns
เอาต์พุตเช่นbashใน Linux
เทอร์มิเป็นโปรแกรมที่เปลือกในอดีตที่ผ่านมามันเป็นอุปกรณ์ทางกายภาพ (ก่อนขั้วเป็นจอภาพกับแป้นพิมพ์พวกเขาteletypes ) แล้วแนวคิดของตนถูกย้ายเข้าไปในซอฟต์แวร์เช่นGnome-ร์มินัลrun
ดังนั้นฉันจึงเปิดGnome-Terminalหน้าต่างสีดำปรากฏขึ้นที่เรียกใช้Shellเพื่อให้ฉันสามารถเรียกใช้คำสั่งของฉัน
คอนโซลเป็นเทอร์มินัลชนิดพิเศษมันยังเป็นอุปกรณ์ทางกายภาพ เช่นในลินุกซ์เรามีvirtual console
ที่ฉันสามารถเข้าถึงได้ด้วยการผสมผสานCtrl+ +AltF1 to F7
คอนโซลบางครั้งหมายถึงแป้นพิมพ์และตรวจสอบร่างกายที่แนบมากับคอมพิวเตอร์เครื่องนี้
คำเหล่านี้มักจะไปด้วยกันดังนั้นผู้คนจึงใช้คำใดคำหนึ่งในการอ้างอิงถึงชุดสะสม (กล่าวคือมักจะชัดเจนจากบริบทที่พวกเขาหมายถึงหน้าต่างเทอร์มินัลที่มีส่วนต่อประสานกับเชลล์บรรทัดคำสั่ง)
เพื่อป้องกันไม่ให้ถูกยืดยาวฉันแค่บอกว่า 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 คุณสามารถพูดได้ว่าเทอร์มินัลนั้นมีความหมายหลายอย่างเช่นกัน)
/dev/console
ใน คอนโซลไม่ชัดเจนเป็นพิเศษ - แม้ว่าบางครั้งจะใช้ในความหมายทั่วไปของเทอร์มินัลที่ค่อนข้างหายาก (หายากกว่าเทอร์มินัลที่ใช้ในการหมายถึงคอนโซลโดยเฉพาะ)
ฉันคิดว่าย้อนกลับไปในยุคแรก ๆ ของการแบ่งปันคอมพิวเตอร์ผู้ใช้ทุกคนมีเทอร์มินัล (เมื่อพวกเขาสามารถซื้อได้!) แต่มีเพียงผู้ให้บริการระบบเท่านั้นที่มีคอนโซล คอนโซลสามารถใช้สำหรับงานต่างๆเช่นการรีบู๊ตเครื่องหรือรับการวินิจฉัยระบบที่ไม่สามารถทำได้จากเทอร์มินัลผู้ใช้ คอนโซลอยู่ในห้องเครื่องซึ่งเป็นส่วนที่อยู่ภายในของคอมพิวเตอร์ในขณะที่เทอร์มินัลอาจเป็นรีโมท คอนโซลยังรวมถึงไฟฮาร์ดแวร์และสวิทช์ไม่ใช่แค่อินพุตและเอาต์พุต
ฉันจะบอกว่าบรรทัดคำสั่งเป็นพื้นที่ที่ผู้ใช้สามารถพิมพ์คำสั่งในขณะที่เชลล์เป็นโปรแกรมที่ตีความ / เชื่อฟังคำสั่งนั้น คำว่า "shell" นั้นมีความพิเศษมากสำหรับอนุพันธ์ของ Unix "command-line" นั้นมีมากขึ้นในประเพณี Windows / DOS เทียบเท่าบนเมนเฟรมมักจะเรียกว่า "ภาษาควบคุมงาน"
เห็นได้ชัดว่าความแตกต่างดั้งเดิมเหล่านี้กลายเป็นพร่ามัวเมื่อเวลาผ่านไปเมื่อมีการเปลี่ยนแปลงเทคโนโลยี
ลองใช้คำตอบสั้น ๆ ที่ให้ผู้ใช้เป็นศูนย์กลาง:
command line - บรรทัดที่คุณป้อนคำสั่ง โดยปกติจะใช้เพื่อบอกว่าคุณต้องใช้งานบางอย่างในหน้าต่างโหมดข้อความ (อินเตอร์เฟสบรรทัดคำสั่ง) ที่ระบบปฏิบัติการของคุณจัดทำ
เปลือก - command line
โปรแกรมจริงทำงานโดยระบบปฏิบัติการที่จะดำเนินการสิ่งที่คุณใส่ลงไปใน ดังนั้นชื่อ - เชลล์ที่ใช้งานง่ายสำหรับ OS หลักที่ไม่เป็นมิตร มันมีพรอมต์คำสั่งเช่น$
หรือ>
เรียกใช้คำสั่งและแอพของตัวเอง คุณทำงานผ่านshell
โปรแกรมและไม่เคยทำงานกับคอนโซลหรือเทอร์มินัลโดยตรง
console - เป็นหน้าต่างที่โปรแกรมโหมดข้อความของคุณกำลังทำงาน หน้าต่างนี้ประมวลผลการกดแป้นรู้ว่าเป็นความกว้างและความสูง สามารถเป็นแบบเต็มหน้าจอ
เทอร์มินัล - เป็นอุปกรณ์ที่มีจอแสดงผลสำหรับมนุษย์ที่ยอมรับอินพุตสตรีมของตัวละครและแสดงให้พวกเขาเห็น ไม่มีคำติชมถึงผู้ใช้เกี่ยวกับความสูงหรือความกว้าง (แฮ็กเท่านั้น) หรือการกดแป้นคีย์บอร์ด - เฉพาะตัวอักษรที่เดินทางไปเท่านั้น เทอร์มินัลจะประมวลผลลำดับพิเศษในสตรีมนี้เพื่อทำให้สิ่งต่าง ๆ สีทำความสะอาดหน้าจอและทำสิ่งที่น่ารังเกียจอื่น ๆ เทอร์มินัลนั้นมีข้อผิดพลาดเนื่องจากมันง่ายต่อการเลอะสิ่งต่าง ๆ หากไฟล์ที่คุณกำลังไพพ์ไปยังเอาท์พุตมีลำดับพิเศษนั้น พวกเขาได้รับความนิยมในการเชื่อมต่อเครือข่ายและอุปกรณ์ดีบั๊กเนื่องจากคุณเพียงแค่กระแสเดียวสำหรับการส่งออกและควบคุมอุปกรณ์ส่งออกและคุณสามารถtap
เข้าสู่การสนทนาโดยไม่จำเป็นต้องเริ่มต้นหรือสร้างหน้าต่าง
serial console - เป็นคอนโซลที่ประมวลผลสตรีมอินพุตเหมือนเทอร์มินัล
นี่เป็นหัวข้อที่คลุมเครือเนื่องจากคำศัพท์นั้นคลุมเครือมาก ฉันขอแนะนำอย่างยิ่งให้อ่านลิงก์ที่ฉันให้ไว้ในคำตอบนี้ซึ่งเป็นแหล่งที่มาของคำตอบนี้
เปลือกเป็นชั้นเหนือเคอร์เนล:
ขั้วมีความหมายที่มากมาย:
คอนโซลที่มีความหมายหลาย
บ่อยครั้งที่ระบบปฏิบัติการอนุญาตให้คุณเรียกใช้คอนโซลหลายตัวบนฟิสิคัลคอนโซล (นิยามคอนโซล 2) เหล่านี้เรียกว่าคอนโซลเสมือน aka อาคารเสมือนและสามารถเข้าถึงได้ผ่านctrl+ alt+ Fxรวมกัน ตัวอย่างเช่นถ้าคุณต้องการที่จะเปิด 3 คอนโซลเสมือนคุณใช้การรวมกันctrl+ +altF3
คอนโซล (คำจำกัดความ 3) อาจดูเหมือนคุณในยุคสมัยสมัยก่อน แต่ผู้เชี่ยวชาญควรใช้งานได้อย่างสบายใจเนื่องจากมีระบบปฏิบัติการหลายระบบที่ไม่สนับสนุน GUI นอกจากนี้หาก GUI หยุดตอบสนองคอนโซลอาจยังใช้งานได้
เทอร์มินัลส่วนใหญ่ในปัจจุบันเป็นเทอร์มินัลอีมูเลเตอร์ที่พูดอย่างเคร่งครัด มันเป็นประเภทของบทบาทในการทำงานของระบบเหมือน UNIX และในเวลาเดียวกันอินเตอร์เฟซพื้นฐานที่นำเสนอโดยระบบ ในความเป็นจริงทุกอย่างรวมถึง GUI ที่สร้างอยู่ด้านบน
"เทอร์มินัล" เรียกขานยังอาจหมายถึงจุดสิ้นสุดในเครือข่ายคอมพิวเตอร์ที่มีลักษณะภูมิประเทศ
คอนโซลหมายถึงอินเตอร์เฟส (ฮาร์ดแวร์) สำหรับเทอร์มินัล คือมีอนุกรมคอนโซลและในปัจจุบันส่วนใหญ่เป็นเสมือนคน
หน้าต่างเรียกขานเรียกว่า "คอนโซล" - หน้าต่างเป็นเปลือกที่เชื่อมต่อกับขั้วของระบบผ่านคอนโซลเสมือน
ย้อนกลับไปในวันที่คอมพิวเตอร์มีราคาแพงสิ่งอำนวยความสะดวกอาจมีคอมพิวเตอร์จริงหนึ่งเครื่องและเทอร์มินัลหลายเครื่องเชื่อมต่อผ่านสายเคเบิลอนุกรม ("ซีเรียลคอนโซล") ระบบปฏิบัติการการดำเนินงานและอื่น ๆ ถูกนำไปใช้กับคอมพิวเตอร์ที่มีอยู่จริงอินพุตและเอาต์พุตที่เกิดขึ้นบนคอนโซล
คุณสามารถสลับระหว่างเทอร์มินัลเสมือนได้โดยกดCTRL+ ALT+ F1(ถึงF6): ส่วนที่เหลือของเวลาเหล่านั้น
ในวันนี้แนวคิดของ "thin client" กลับไปในทิศทางของการรวมศูนย์ทรัพยากรจำนวนมหาศาลและจัดหาฮาร์ดแวร์เพียงพอที่จะให้อินเทอร์เฟซที่ทันสมัยในที่ทำงานจริง
shellคือ "เอ็นจิ้น" ที่คุณเห็นในเทอร์มินัล มันให้การทำงานร่วมกันกับระบบของตัวเองและเพิ่มคุณสมบัติที่ดีเช่นอัตโนมัติสมบูรณ์ตัวแปร ฯลฯ
มันแปลไปมาระหว่าง OS / เคอร์เนลที่เกิดขึ้นจริงซึ่งใช้ระบบการโทรและคุณ ระบบเรียก w / o เปลือกเป็นบิตเช่นการเข้ารหัสและเปลือกอย่างน้อยจะช่วยให้คุณassembler
C
บรรทัดคำสั่งหมายถึงวิธีการแลกเปลี่ยนอินพุตและเอาต์พุตผ่านทางหน้าต่างข้อความ พูดอย่างเคร่งครัดบรรทัดที่คุณพิมพ์เป็น(ปัจจุบัน) บรรทัดคำสั่ง วิธีการโดยทั่วไปนั้นเรียกว่าcommand line interfaceหรือ CLI ที่ ถูกต้องมากขึ้น