Câu hỏi Sự khác biệt giữa Terminal, Console, Shell và Command Line là gì?


Sự khác biệt giữa Terminal, Console, Shell và Command Line là gì?


173
2017-08-04 04:35


gốc


(1/2) Agent Cool chủ yếu là chính xác, nhưng định nghĩa về Console mà anh cung cấp là một lỗi thời, với chủ đề này. Liên kết của anh ta có thông tin chính xác, nếu bạn làm theo nó. Đọc toàn thể định nghĩa tại liên kết của mình. Bàn điều khiển được sử dụng một cách lỏng lẻo để có nghĩa là rất nhiều thứ tương tự, nhưng quan trọng nhất nó thường đề cập đến các thiết bị đầu vào và đầu ra của con người LOCAL ATTACHED, ví dụ: bàn phím, màn hình và có thể là chuột. - 0xSheepdog
(2/2) Điều này có vẻ giống như một điểm trung gian, nhưng là một hệ thống dày dạn kinh nghiệm, tôi sẽ nói với bạn không phải vậy. Khi một hệ thống có sự cố và dường như hoàn toàn bị rơi / xuống / ngoại tuyến, bạn nên kiểm tra bảng điều khiển vật lý của hệ thống để xem nó có còn hoạt động hay không, nhưng đơn giản là mất kết nối mạng. Chi tiết nhỏ này có thể tiết kiệm hoặc chi phí cho bạn một dữ liệu, xử lý thông tin, v.v. Pedantic, vâng. Nhưng quan trọng. - 0xSheepdog
@ 0xSheepdog Bạn có thể muốn mở rộng các nhận xét này thành câu trả lời đầy đủ (bao gồm các định nghĩa hoặc giải thích cho các điều khoản khác), được đăng như vậy. Nó không phải là xấu cho một câu hỏi để có nhiều câu trả lời (ngoại trừ có lẽ khi họ truyền tải chính xác cùng một thông tin và trong cùng một cách). Tôi không chắc tại sao thực hành quan trọng của việc kiểm tra máy tại địa phương thực sự dựa vào việc biết / gọi giao diện con người của nó một giao diện điều khiển, nhưng có lẽ có một lý lẽ cho rằng giao tiếp hiệu quả với đồng nghiệp hoặc sử dụng tài liệu. (Bạn có thể làm rõ rằng trong câu trả lời của bạn.) - Eliah Kagan
Do mối quan hệ gần gũi của họ (xem tất cả các câu trả lời hay) các điều khoản này vào những thời điểm được sử dụng đồng nghĩa, đó có lẽ là điều khiến bạn phải hỏi điều này. - Mark
Xem: Sự khác biệt chính xác giữa 'terminal', 'shell', 'tty' và 'console' là gì? tại Unix & LinuxSE. - Piotr Dobrogost


Các câu trả lời:


Câu trả lời ngắn gọn là

  • terminal = text input / môi trường đầu ra
  • console = terminal vật lý
  • shell = thông dịch dòng lệnh

Giao diện điều khiển và thiết bị đầu cuối có liên quan chặt chẽ. Ban đầu, chúng có nghĩa là một phần của thiết bị mà qua đó bạn có thể tương tác với một máy tính: trong những ngày đầu của unix, điều đó có nghĩa là teleprinterthiết bị kiểu giống như một máy đánh chữ, đôi khi được gọi là máy đánh chữ, hoặc “tty” trong viết tắt. Tên “terminal” xuất phát từ quan điểm điện tử, và tên “console” từ quan điểm đồ nội thất. Rất sớm trong lịch sử Unix, bàn phím điện tử và màn hình trở thành tiêu chuẩn cho các thiết bị đầu cuối.

Trong thuật ngữ unix, a thiết bị đầu cuối là một loại cụ thể tập tin thiết bị thực hiện một số lệnh bổ sung (ioctls) vượt ra ngoài đọc và viết. Một số thiết bị đầu cuối được cung cấp bởi hạt nhân thay mặt cho thiết bị phần cứng, ví dụ với đầu vào đến từ bàn phím và đầu ra sẽ chuyển sang màn hình chế độ văn bản hoặc với đầu vào và đầu ra được truyền qua một dòng nối tiếp. Các thiết bị đầu cuối khác, đôi khi được gọi là pseudo-terminal hoặc pseudo-ttys, được cung cấp (thông qua một lớp nhân mỏng) bởi các chương trình gọi là thiết bị đầu cuối giả lập. Một số loại trình giả lập thiết bị đầu cuối bao gồm:

  • Các ứng dụng GUI chạy trong Hệ thống cửa sổ X: Xterm, Gnome Terminal, Konsole, Terminator, v.v.
  • Màn và tmux, cung cấp một lớp cách ly giữa một chương trình và một thiết bị đầu cuối khác
  • Ssh, kết nối thiết bị đầu cuối trên một máy với các chương trình trên máy khác
  • Chờ đợi, cho tương tác đầu cuối tập lệnh

Từ thiết bị đầu cuối cũng có thể có ý nghĩa truyền thống hơn của một thiết bị thông qua đó một thiết bị tương tác với một máy tính, thường là với bàn phím và màn hình. Ví dụ một thiết bị đầu cuối X là một loại thin client, một máy tính có mục đích đặc biệt chỉ có mục đích là lái một bàn phím, màn hình, chuột và các thiết bị ngoại vi tương tác khác của con người, với các ứng dụng thực tế đang chạy trên một máy tính mạnh mẽ hơn.

A bảng điều khiển nói chung là một thiết bị đầu cuối theo nghĩa vật lý là do một số định nghĩa, thiết bị đầu cuối chính được kết nối trực tiếp với máy. Giao diện điều khiển xuất hiện với hệ điều hành như một thiết bị đầu cuối (kernel-implement). Trên một số hệ thống, chẳng hạn như Linux và FreeBSD, giao diện điều khiển xuất hiện dưới dạng một số thiết bị đầu cuối (ttys) (các tổ hợp phím đặc biệt chuyển đổi giữa các thiết bị đầu cuối này); chỉ để gây nhầm lẫn các vấn đề, tên được đặt cho mỗi thiết bị đầu cuối cụ thể có thể là "giao diện điều khiển", "bảng điều khiển ảo", "thiết bị đầu cuối ảo" và các biến thể khác.

Xem thêm Tại sao Virtual Terminal là “ảo”, và cái gì / tại sao / đâu là thiết bị đầu cuối “thực”?.


A dòng lệnh là một giao diện mà người dùng gõ một lệnh (được biểu diễn dưới dạng một chuỗi các ký tự - thường là một tên lệnh theo sau bởi một số tham số) và nhấn Trở về để thực hiện lệnh đó.

A vỏ là giao diện chính mà người dùng nhìn thấy khi họ đăng nhập, mục đích chính của họ là bắt đầu các chương trình khác. (Tôi không biết liệu ẩn dụ ban đầu là vỏ là môi trường nhà cho người dùng hay vỏ đó là những gì các chương trình khác đang chạy.)

Trong vòng kết nối unix, vỏ có ý nghĩa chuyên môn vỏ dòng lệnh, tập trung vào việc nhập tên của ứng dụng mà bạn muốn bắt đầu, theo sau là tên của các tệp hoặc các đối tượng khác mà ứng dụng sẽ thực hiện và nhấn phím Enter. Các loại môi trường khác (với ngoại lệ đáng chú ý gần đây của Gnome Shell) thường không sử dụng từ “shell”; ví dụ, hệ thống cửa sổ liên quan đến “quản lý cửa sổ”Và“môi trường máy tính để bàn", Không phải là" vỏ ".

Có rất nhiều vỏ unix khác nhau. Vỏ mặc định của Ubuntu là Bash (giống như hầu hết các bản phân phối Linux khác). Các lựa chọn thay thế phổ biến bao gồm zsh (nhấn mạnh sức mạnh và khả năng tùy chỉnh) và  (nhấn mạnh sự đơn giản).

Các shell dòng lệnh bao gồm các cấu trúc điều khiển luồng để kết hợp các lệnh. Ngoài việc gõ lệnh tại dấu nhắc tương tác, người dùng có thể viết các tập lệnh. Các shell phổ biến nhất có một cú pháp chung dựa trên Bourne_shell. Khi thảo luận “vỏ lập trình”, Shell gần như luôn được ngụ ý là một shell kiểu Bourne. Một số shell thường được sử dụng để viết kịch bản nhưng thiếu các tính năng tương tác nâng cao bao gồm vỏ Korn (ksh) và nhiều tro các biến thể. Khá nhiều hệ thống giống Unix có vỏ Bourne-style được cài đặt /bin/sh, thường là tro, ksh hoặc bash. Trên Ubuntu, /bin/sh Là Dấu gạch ngang, một biến thể tro (được chọn vì nó nhanh hơn và sử dụng ít bộ nhớ hơn là bash).

Trong quản trị hệ thống Unix, người dùng vỏ là chương trình được gọi khi họ đăng nhập. Các tài khoản người dùng thông thường có một trình bao dòng lệnh, nhưng người dùng có quyền truy cập bị hạn chế có thể có vỏ bị giới hạn hoặc một số lệnh cụ thể khác (ví dụ: đối với tài khoản chỉ chuyển tệp).


Việc phân chia lao động giữa các thiết bị đầu cuối và vỏ không phải là hoàn toàn rõ ràng. Đây là nhiệm vụ chính của họ.

  • Đầu vào: thiết bị đầu cuối chuyển đổi khóa thành chuỗi điều khiển (ví dụ: Trái → \e[D). Trình bao chuyển đổi các chuỗi điều khiển thành các lệnh (ví dụ: \e[D → backward-char).
  • Phiên bản dòng, lịch sử nhập và hoàn thành được cung cấp bởi trình bao.
    • Các thiết bị đầu cuối có thể cung cấp phiên bản dòng, lịch sử và hoàn thành riêng của mình thay vào đó, và chỉ gửi một dòng để vỏ khi nó đã sẵn sàng để được thực hiện. Thiết bị đầu cuối chung duy nhất hoạt động theo cách này là M-x shelltrong Emacs.
  • Đầu ra: shell phát ra các lệnh như “display foo”,“ Chuyển đổi màu nền trước sang màu xanh ”,“ di chuyển con trỏ đến dòng tiếp theo ”, v.v. Thiết bị đầu cuối hoạt động theo các hướng dẫn này.
  • Dấu nhắc hoàn toàn là một khái niệm vỏ.
  • Shell không bao giờ thấy đầu ra của các lệnh mà nó chạy (trừ khi được chuyển hướng). Lịch sử đầu ra (scrollback) hoàn toàn là một khái niệm thiết bị đầu cuối.
  • Inter-application copy-paste được thiết bị đầu cuối cung cấp (thường là bằng chuột hoặc các chuỗi khóa chẳng hạn như Ctrl+Shift+V hoặc là Shift+Chèn). Trình bao có thể có cơ chế sao chép nội bộ riêng của nó (ví dụ: Meta+W và Ctrl+Y).
  • Kiểm soát công việc (khởi chạy các chương trình trong nền và quản lý chúng) chủ yếu được thực hiện bởi trình bao. Tuy nhiên, đó là thiết bị đầu cuối xử lý các tổ hợp phím như Ctrl+C để giết công việc tiền cảnh và Ctrl+Z để đình chỉ nó.

 Tái chế từ Unix và Linux 


120
2017-08-04 10:30



Tôi sẽ không đồng ý với bạn về thiết bị đầu cuối là một thuật ngữ thích hợp cho một tập tin thiết bị đầu cuối, và / hoặc mã xử lý đầu cuối trong hạt nhân (tty ioctls, thô / nấu chín, dòng cơ bản editting). terminal = công cụ xử lý các mã thoát, chuyển thành các ký tự và vẽ trên màn hình (hoặc in trên giấy / băng). Xem câu trả lời của tôi để biết thêm chi tiết. - Peter Cordes
@PeterCordes Ở cấp chi tiết này, không có sự phân biệt. POSIX định nghĩa thiết bị đầu cuối như đồng nghĩa với thiết bị đầu cuốitheo nghĩa của tệp thiết bị. Đó là ý nghĩa của Unix. Nó xảy ra là những thứ hơn là xử lý các mã thoát, biến thành các ký tự và vẽ trên màn hình (hoặc truyền qua mạng, hoặc ghi vào một tệp, v.v.). - Gilles
hrm, yeah terminal cũng được sử dụng theo nghĩa đó. Với giả định rằng có một trình giả lập thiết bị đầu cuối hoặc một cổng nối tiếp với một thiết bị đầu cuối được kết nối với nó, trên một đầu của thiết bị đầu cuối mà hạt nhân đang xử lý. Việc xử lý tty hạt nhân (trong chế độ nấu chín) chỉ xử lý một vài mã điều khiển (tín hiệu trên ^ c, dòng chỉnh sửa trên ^ u / ^? (Xóa) .Tôi đang cố gắng vẽ một dòng giữa mã tty và một phần của Linux mà thực hiện một thiết bị đầu cuối giống như VT100 trên một card đồ họa và một bàn phím USB / ps2 / AT.Bạn có thể biên dịch Linux mà không có điều đó, nhưng không phải không có tty. - Peter Cordes
@PeterCordes Trong cấu hình hạt nhân, hỗ trợ cho các thiết bị đầu cuối có thể được bỏ qua (nó hữu ích cho một số hệ thống nhúng hiếm nơi bộ nhớ cực kỳ chặt chẽ); nó được kiểm soát bởi CONFIG_TTY. Hỗ trợ các trình giả lập thiết bị đầu cuối (được gọi chính xác hơn là các thiết bị đầu cuối giả - “trình mô phỏng đầu cuối” không phải lúc nào cũng bao gồm telnetd, màn hình, mong đợi,…) được điều khiển bởi CONFIG_UNIX98_PTYS. Hỗ trợ hiển thị chế độ văn bản PC và bàn phím hoặc các loại tương tự được điều khiển bởi CONFIG_VT. Xem drivers/tty/Kconfig trong nguồn kernel. - Gilles
Rất tiếc, tôi không có nguồn nhân gần đây nằm xung quanh. CONFIG_TTY chỉ được thêm vào năm 2012. Dù sao, yeah hy vọng rằng sẽ giúp bất cứ ai cố gắng để quấn đầu của họ xung quanh những gì các phần khác nhau của câu đố được, và làm thế nào chúng phù hợp với nhau. - Peter Cordes


Một đại diện trực quan.

Thiết bị đầu cuối

enter image description here

Một cái gì đó bạn có thể ngồi xuống, và làm việc như một ông chủ.

Bảng điều khiển

enter image description here

Một số phần cứng thực hiện một loạt các công cụ.

Một ví dụ khác của một giao diện điều khiển, sẽ là một bảng điều khiển trò chơi video như Super Nintendo [nơi bạn có thể chơi Actraiser]

vỏ

enter image description hereenter image description here

Về cơ bản một ứng dụng để chạy các lệnh.

Dòng lệnh [Giao diện]

enter image description hereenter image description here

Về cơ bản bất cứ điều gì bạn nhập lệnh vào.


52
2017-08-04 20:09



Bạn đã đánh cắp ý tưởng của tôi - tôi sẽ cung cấp cho cơ bản câu trả lời tương tự. Vì vậy, bạn có thể có một upvote. Điểm tất nhiên là trong khi các điều khoản này chủ yếu là đồng nghĩa những ngày này, các thuật ngữ như "thiết bị đầu cuối" và "giao diện điều khiển" có nguồn gốc của chúng trong các khái niệm máy tính cũ hơn. - thomasrutter
Nỗ lực tốt. Đơn giản và dễ dàng - A Umar Mukthar


Từ Dự án thông tin Linux:

Thiết bị đầu cuối Về mặt kỹ thuật, một cửa sổ đầu cuối, cũng được gọi là trình giả lập thiết bị đầu cuối, là cửa sổ chỉ văn bản trong giao diện người dùng đồ họa (GUI) mô phỏng giao diện điều khiển.

Trong Từ ngữ của chúng tôi Ứng dụng GUI, từ đó chúng tôi có thể truy cập vào giao diện điều khiển của người dùng.

Bảng điều khiển: bảng điều khiển chứa các điều khiển cho máy tính

Vỏ : Một trình bao là một chương trình cung cấp giao diện người dùng chỉ có văn bản, truyền thống cho Linux và các hệ điều hành giống Unix khác

Dòng lệnh : Một dòng lệnh là không gian bên phải của dấu nhắc lệnh trên một chế độ hiển thị tất cả văn bản trên màn hình máy tính (thường là một màn hình CRT hoặc LCD) trong đó người dùng nhập lệnh và dữ liệu


19
2017-08-04 04:39



"Thiết bị đầu cuối" là viết tắt của màn hình chỉ văn bản. Những gì bạn nói thực sự là "trình giả lập thiết bị đầu cuối". - Registered User
@RegisteredUser Một trình giả lập thiết bị đầu cuối là một loại thiết bị đầu cuối. Từ thiết bị đầu cuối không giới hạn ở các thiết bị đầu cuối vật lý (từ thông thường cho điều đó là bảng điều khiển). - Gilles
Định nghĩa này của dòng lệnh là sai. Một dòng lệnh không bị giới hạn ở chế độ hiển thị toàn văn bản. - Gilles
@Gilles Tôi đã nắm lấy nó từ một trang web-Link. Bạn đã đề cập đến câu trả lời đúng. - Ten-Coin
@AgentCool Tôi không đặt câu hỏi về khả năng sao chép-dán của bạn. Tôi đặt câu hỏi về lựa chọn nguồn của bạn. Những gì bạn đăng là trách nhiệm của bạn, cho dù bạn đã viết hay chưa. - Gilles


Câu trả lời ở đây có vẻ rất tốt. Tuy nhiên, chúng quá khô và kỹ thuật cho khẩu vị của tôi vì vậy tôi sẽ cho đi ..

Terminal là kết thúc của cái gì đó - nơi nó chấm dứt. Ví dụ, nếu bạn đi tàu điện ngầm ở một số thành phố, nhà ga nơi bạn xuống là bến cuối của bạn. Hoặc trong một sân bay nơi mọi người đi ra khi họ đến quốc gia đích của họ được coi là nhà ga. Lý do các thiết bị đầu cuối trong sân bay là ngày nay cả nơi bạn nhận được người trên tàu và nơi bạn nhận được chúng ra khỏi máy bay là vì lý do kinh tế rõ ràng.

Mục đích của máy tính là lấy dữ liệu, làm điều gì đó với nó, và nhổ ra kết quả. Do đó thiết bị đầu cuối là bất kỳ thiết bị nào từ đó bạn có thể nhận được kết quả của việc tính toán .. ví dụ như màn hình. Nó chỉ xảy ra rằng trong các máy tính đầu tiên bạn thường có đầu vào (bàn phím) và đầu ra (màn hình) như một thiết bị duy nhất. Do đó các thiết bị đầu cuối ngày nay được coi là bất kỳ thiết bị đầu vào / đầu ra nào. Một con chuột, bàn phím, màn hình, camera, chúng là tất cả các thiết bị đầu cuối.

Shelllà một điều hệ điều hành. Trên máy tính, bạn có hạt nhân trên Ubuntu chẳng hạn là phần Linux. Bây giờ kể từ khi hạt nhân thực sự là một trình bao thấp cấp được cung cấp - một chương trình cho phép người dùng tương tác với hạt nhân một cách dễ dàng. Đó là những gì BASH là ví dụ.

Console là (từ một từ điển)

một bề mặt phẳng có chứa các điều khiển cho một máy, cho một mảnh   thiết bị điện, v.v.

Đó là lý do tại sao trong ngành công nghiệp âm nhạc hội đồng quản trị với tất cả các nút bấm, hoặc trong một tàu con thoi không gian bảng lệnh, họ đều được coi là bàn giao tiếp. Super Nintendo và PS2 cũng được gọi là bàn giao tiếp lịch sử kể từ khi các thiết bị giải trí như vậy đầu tiên trông giống như hộp với một loạt các nút trên chúng.

Command line chỉ là một giao diện - đối diện với GUI. Cụ thể là có hai loại giao diện trên máy tính; CLI (giao diện dòng lệnh) và GUI (giao diện người dùng đồ họa). Sự khác biệt chính là người đầu tiên nhận được đầu vào từ bàn phím trong khi thứ hai được nhập từ chuột.


14
2017-08-06 10:40



Bạn có ý nghĩa gì đối diện với GUI? - Koray Tugay
Ngược lại, tôi có nghĩa là bạn có CLI hoặc GUI. Tôi đã làm rõ thêm một chút trong câu trả lời. - Pithikos


Để tóm tắt câu trả lời của tôi:

Vỏ là một chương trình processes lệnh và returns đầu ra, như bash trong Linux.

Thiết bị đầu cuối là một chương trình run một vỏ , trong quá khứ nó là một thiết bị vật lý (Trước khi thiết bị đầu cuối là màn hình với bàn phím, chúng kiểu chữ) và sau đó khái niệm của nó được chuyển thành phần mềm , như Gnome-Terminal .

Tôi mở Gnome-Terminal , một cửa sổ màu đen xuất hiện chạy Vỏ vì vậy tôi có thể chạy các lệnh của mình.

Console là một loại thiết bị đầu cuối đặc biệt , nó cũng là một thiết bị vật lý. ví dụ trong Linux, chúng tôi có virtual console tôi có thể truy cập chúng bằng cách kết hợp Ctrl + Alt + F1 đến F7 .

Bảng điều khiển đôi khi có nghĩa là bàn phím và màn hình thể chất gắn liền với máy tính này.


7
2017-08-05 11:59





Các thuật ngữ này thường đi cùng nhau, vì vậy mọi người sử dụng một trong các thuật ngữ để tham khảo bộ sưu tập. (nghĩa là nó thường hiển nhiên từ ngữ cảnh mà chúng có nghĩa là một cửa sổ đầu cuối cung cấp một giao diện cho một trình bao dòng lệnh).

Để giữ cho điều này từ nhận được để dài gió, tôi chỉ sẽ nói xterm như là một stand-in cho XTerm / Gnome Terminal / Konsole / mrxvt / etc / etc. Tương tự cho bash.

Bảng điều khiển có nhiều ý nghĩa cụ thể khác, vì vậy hãy bỏ qua điều đó ngay bây giờ.

Thiết bị đầu cuối: Cái gì đó cung cấp tương tác của con người với các chương trình thông qua một dòng hai chiều của ASCII / UTF8 / ký tự khác, thường với VT100 hoặc xử lý mã thoát tương tự. (Ví dụ: phím xóa lùi, xóa, phím mũi tên, vv tạo mã thoát. Chương trình có thể in mã thoát để di chuyển con trỏ xung quanh màn hình thiết bị đầu cuối, chuyển sang văn bản in đậm và / hoặc màu sắc, xóa hoặc cuộn màn hình, v.v.) ngày xưa, đây thường là một thiết bị chuyên dụng với màn hình và bàn phím và một cổng nối tiếp. Bây giờ, nó thường là một chương trình như xterm.

Có các tệp thiết bị cho các chương trình đọc / ghi từ / đến các đầu cuối và các đầu cuối ảo cũng có mặt khác có thể truy cập dưới dạng tệp thiết bị. Đây là nơi xterm viết đầu vào của bạn để bash có thể đọc nó.

Mỗi thiết bị đầu cuối, bao gồm cả thiết bị đầu cuối ảo, cung cấp chỉnh sửa dòng cơ bản khi chế độ này được nấu chín (trái ngược với chế độ thô). Điều này được xử lý bằng mã hạt nhân. Đó là bash cung cấp chỉnh sửa dòng mà bạn có thể thực hiện với các phím mũi tên. (Thử chạy cat và gõ nếu bạn muốn xem những gì biên tập dòng hạt nhân cung cấp cơ bản là như thế nào. Backspace hoạt động và một số thứ khác theo cài đặt stty của bạn.)

Mặc dù có rất nhiều mã nhân đằng sau các thiết bị đầu cuối, nó sẽ được gọi là mã xử lý đầu cuối, không phải là một thiết bị đầu cuối.

Chỉnh sửa: Gilles đã thuyết phục tôi rằng đề cập đến một tty như một thiết bị đầu cuối là sử dụng thích hợp. Bộ mô phỏng đầu cuối và các chương trình tương tác chạy kết nối với một thiết bị đầu cuối, tất cả đều phụ thuộc vào ngữ nghĩa đầu cuối được thực hiện bởi hạt nhân. (Hầu hết hành vi này được chuẩn hóa bởi POSIX, và giống nhau trên Linux / * BSD / Unix khác.) Trình soạn thảo văn bản toàn màn hình phụ thuộc vào hành vi của các công cụ Unix tty cũng như xử lý mã thoát-di chuyển con trỏ, và nhiều tính năng khác, của trình giả lập thiết bị đầu cuối.

Tuy nhiên, VT100 vật lý với màn hình, bàn phím và cổng nối tiếp là một phiên bản của thiết bị đầu cuối. Nó không yêu cầu một hạt nhân Unix ở đầu kia của cổng nối tiếp của nó để hoàn thành. Một cái gì đó hoàn toàn khác có thể gửi mã thoát và văn bản ASCII, và nhận được cùng một từ nó. Nó sẽ chỉ là một VT100, tuy nhiên, không phải là một thiết bị đầu cuối Unix. Một bộ mô phỏng thiết bị đầu cuối cộng với ngữ nghĩa Unix tty tạo nên gói đầy đủ của một thiết bị đầu cuối Unix mà một chương trình như bash thường chạy trên đó.

Dòng lệnh là một kiểu giao diện người dùng, nơi bạn nhập một cái gì đó, sau đó nhấn quay lại để làm điều gì đó xảy ra. Nó cũng được sử dụng như một cách viết tắt cho một shell dòng lệnh, như bash hoặc MS-DOS, nhưng bạn cũng có thể nói “đó là một công cụ dòng lệnh” về một cái gì đó giống như fdisk. Chỉ xem xét các chương trình sử dụng thiết bị đầu cuối cho giao diện người dùng của họ, hai gia đình chính là dòng lệnh và văn bản toàn màn hình (ví dụ: trình chỉnh sửa như vi hoặc emacs -nw).

Các chương trình dòng lệnh thường chạy trên các thiết bị đầu cuối hầu như luôn hoạt động với đầu vào và đầu ra của chúng được chuyển hướng đến tệp, nhưng các chương trình toàn màn hình dựa trên thiết bị đầu cuối như trình chỉnh sửa hoặc ứng dụng email chỉ tương tác và sẽ không hoạt động.

A vỏ là một chương trình để bắt đầu các chương trình khác. Trong một bối cảnh Unix, nó thường có nghĩa là shell dòng lệnh (tức là Bourne shell hoặc C shell tương đương). Vỏ Unix cũng có thể đọc đầu vào của chúng từ các tệp, tức là các tập lệnh shell. Chúng là các ngôn ngữ lập trình đầy đủ, với các biến, các vòng lặp và các điều kiện, và nhiều chương trình được viết bằng bash (hoặc chỉ với /bin/sh Tính năng vỏ POSIX, để có thêm tính di động). Nó cũng dễ dàng có thể viết một cách nhanh chóng for i in *.something; do some_program "$i";done  trong một trình bao tương tác.

Đặt tất cả lại với nhau, một vỏ như bash (hoặc bất kỳ chương trình nào bạn bắt đầu bằng cách chạy lệnh shell) sẽ nhận các ký tự từ /dev/pts/N thiết bị đầu cuối sau khi xterm ghi đầu vào của bạn vào bên của thiết bị đầu cuối giả. Nếu bạn chạy cat, sau đó nhấn ^c, mã tty của hạt nhân sẽ hoạt động trên ^c và gửi một SIGINT cho quá trình nền trước trên thiết bị đầu cuối đó. (Lưu ý việc sử dụng thiết bị đầu cuối trong bối cảnh này có nghĩa là Unix tty, không phải là trình giả lập thiết bị đầu cuối hoặc thứ gì đó nối với cổng nối tiếp.) Điều này xảy ra vì trình bao đặt đầu cuối vào chế độ "đã nấu" trước khi bắt đầu bất kỳ chương trình nào, nghĩa là hạt nhân hoạt động trên một số điều khiển- trình tự. (Mã tty vẫn không liên quan gì đến việc xử lý các mã thoát VT100, chỉ một vài mã kiểm soát ASCII thấp.) Nếu thay vì xterm, bạn đang sử dụng terminal văn bản console của Linux, thì hạt nhân IS thực hiện mô phỏng VT100 và xử lý tất cả những thứ đó. Linux có thể được biên dịch mà không cần hỗ trợ thiết bị đầu cuối văn bản giao diện điều khiển ảo, nhưng không hỗ trợ tty.

Bảng điều khiển đôi khi được sử dụng như một từ đồng nghĩa cho thiết bị đầu cuối (KDE thậm chí có một trình giả lập thiết bị đầu cuối được gọi là Konsole).

Như 0xSheepdog chỉ ra, nó cũng có một ý nghĩa khác: địa phương gắn liền với phần cứng tương tác của con người.

Trong ngữ cảnh hạt nhân, giao diện điều khiển có ý nghĩa cụ thể khác: đó là thiết bị đầu cuối nơi các thông điệp khởi động được ghi. Đây có thể là cổng nối tiếp. Thông thường, tất nhiên, đó là bảng điều khiển văn bản được thực hiện bởi hạt nhân trên đầu trang của các trình điều khiển cho phần cứng đồ họa và bàn phím USB / ps2 / AT. Nếu bạn khởi động Linux với console=tty0 console=ttyS0,115200n8 trên dòng lệnh, bạn sẽ nhận được thông báo hạt nhân trên màn hình của bạn VÀ trên cổng nối tiếp.

Linux triển khai các bảng điều khiển ảo (/dev/tty1 đến N). Bạn có thể trao đổi màn hình / bàn phím vật lý của bạn đang kiểm soát Ctrl+Alt+FN. Các bản phân phối Linux điển hình tạo 6 và bắt đầu getty trên tất cả chúng, vì vậy ngay cả khi bạn không thể hoặc không muốn bắt đầu X11, bạn có thể đăng nhập 6 lần và lật giữa lệnh, trang người đàn ông và bất kỳ thứ gì khác mà không cần chạy chương trình như màn hình. Linux (hạt nhân) bao gồm trình mô phỏng thiết bị đầu cuối kiểu VT100 để cung cấp giao diện đầu cuối thông qua màn hình và bàn phím của bạn trên bàn điều khiển ảo.

Tiêu chuẩn 6 thiết bị đầu cuối ảo với nhắc nhở đăng nhập là lý do tại sao Ctrl+Alt+F7 đưa bạn trở lại phiên X11 của bạn: máy chủ X lấy bảng điều khiển ảo có sẵn tiếp theo. (Máy chủ X mở ra /dev/input/... trực tiếp, thay vì nhận được các bấm phím của bạn từ /dev/tty7, Tuy nhiên.)

Vì vậy, "trao đổi với bảng điều khiển văn bản" có nghĩa là nhấn Ctrl+Alt+F1 và sử dụng thiết bị đầu cuối đó. Quay lại khi máy tính chậm và không có nhiều RAM, một số người dành phần lớn thời gian trên bảng điều khiển văn bản, vì chúng nhanh, bạn có thể đặt phông chữ đẹp và thậm chí thay đổi kích thước thiết bị đầu cuối để có ký tự nhỏ hơn, nhưng nhiều hơn trên màn hình cùng một lúc. Alt+Trái và Alt+Đúng hoán đổi sang bảng điều khiển trước / tiếp theo. (X11 vô hiệu hóa điều này cho giao diện điều khiển của nó, tất nhiên, chỉ để lại Ctrl+Alt+FN combo.)

Vì thế bảng điều khiển là thuật ngữ duy nhất trong số các thuật ngữ này không có nghĩa duy nhất về kỹ thuật. Nó có một vài cái khác nhau. (Tùy thuộc vào cách bạn cảm thấy về thiết bị đầu cuối thích hợp so với thiết bị đầu cuối cộng với xử lý tty, bạn có thể nói rằng thiết bị đầu cuối cũng có nhiều ý nghĩa.)


7
2017-08-05 09:16



Bảng điều khiển nghĩa là thiết bị đầu cuối vật lý "chính" không chỉ ở trong ngữ cảnh hạt nhân. Nó giống nhau Ý nghĩa trong /dev/console. Bảng điều khiển không đặc biệt mơ hồ - mặc dù đôi khi nó được sử dụng theo nghĩa chung hơn thiết bị đầu cuối, điều đó khá hiếm (hiếm hơn thiết bị đầu cuối được sử dụng để đặc biệt có nghĩa là một giao diện điều khiển). - Gilles
đúng, vâng, echo foo | sudo tee / dev / console> / dev / null sẽ in trên màn hình, nếu VT hiện tại của bạn đang ở chế độ văn bản (bao gồm bảng điều khiển kiểu khung công cụ, không chỉ là mã văn bản VGA). Nếu bạn khởi động với bàn điều khiển trên một cổng nối tiếp, tôi nghĩ nó sẽ đến đó. Bạn có thể nói rằng / dev / console nó tập tin thiết bị cho bất cứ điều gì hạt nhân được coi là bàn điều khiển hệ thống. Không có gì khác trong hệ thống cần phải có một khái niệm về việc có một giao diện điều khiển tty ở tất cả (ngoại trừ công cụ phục hồi khởi động mà bắt đầu một vỏ trên bàn điều khiển TTY nếu hệ thống không khởi động được chế độ đa người dùng. Thông thường từ initrd) - Peter Cordes
Máy chủ xorg X (chuỗi / usr / bin / Xorg) không sử dụng / dev / console để truy cập phần cứng. Nó sử dụng / dev / tty0, và / dev / tty% d, và / dev / vc /% d, để tự thiết lập trên VT riêng của nó. Tôi khá chắc chắn Xorg sẽ vẫn chạy tốt trên một máy tính khởi động với giao diện điều khiển hạt nhân trên một cổng nối tiếp. Và các thiết bị đầu cuối ảo chế độ văn bản vẫn hoạt động. Càng xem xét điều này, tôi càng nghiêng về phía xem bảng điều khiển trong ngữ cảnh hạt nhân như một thiết bị đầu cuối đặc biệt, được chọn lúc khởi động. (Linux thực sự có thể xuất các thông điệp trên bàn điều khiển của nó trên nhiều thiết bị đầu cuối cùng một lúc, nếu bạn yêu cầu nó.) - Peter Cordes


Tôi nghĩ rằng ngược lại trong những ngày đầu của máy tính chia sẻ thời gian, mỗi người dùng có một thiết bị đầu cuối (khi họ có thể nhận được một!), Nhưng chỉ có các nhà khai thác hệ thống có một giao diện điều khiển. Giao diện điều khiển có thể được sử dụng cho các tác vụ như khởi động lại máy hoặc nhận chẩn đoán hệ thống mà không thể thực hiện được từ các thiết bị đầu cuối của người dùng. Bàn điều khiển nằm trong phòng máy, một phần bên trong của máy tính, trong khi các thiết bị đầu cuối có thể ở xa. Bàn điều khiển cũng sẽ bao gồm đèn phần cứng và công tắc, không chỉ là đầu vào và đầu ra văn bản.

Tôi sẽ nói rằng dòng lệnh là một khu vực mà người dùng có thể gõ một lệnh, trong khi trình bao là chương trình diễn giải / tuân theo lệnh đó. Thuật ngữ "shell" rất đặc biệt đối với các dẫn xuất của Unix; "dòng lệnh" là nhiều hơn trong truyền thống Windows / DOS. Tương đương trên các khung hình chính thường được gọi là "ngôn ngữ điều khiển công việc".

Rõ ràng, những khác biệt ban đầu này đã trở nên mờ nhạt theo thời gian khi những thay đổi công nghệ.


5
2017-08-04 22:35





Đang thử câu trả lời ngắn gọn cho người dùng:

dòng lệnh - dòng nơi bạn nhập lệnh. Thông thường nó được sử dụng để nói rằng bạn cần phải chạy một cái gì đó trong cửa sổ chế độ văn bản (giao diện dòng lệnh) được cung cấp bởi hệ điều hành của bạn.

vỏ - chương trình thực tế được chạy bởi hệ điều hành để xử lý nội dung bạn nhập vào command line. Do đó tên shell - thân thiện với người sử dụng cho lõi hệ điều hành không thân thiện. Nó cung cấp dấu nhắc lệnh, chẳng hạn như $ hoặc là >, chạy các lệnh và ứng dụng của riêng nó. Bạn luôn luôn làm việc thông qua shell chương trình và không bao giờ hoạt động với bảng điều khiển hoặc thiết bị đầu cuối trực tiếp.

bảng điều khiển - là một cửa sổ nơi các chương trình chế độ văn bản của bạn đang chạy. Cửa sổ này xử lý các lần nhấn phím, biết nó là chiều rộng và chiều cao. Có thể toàn màn hình.

thiết bị đầu cuối - là một số thiết bị có hiển thị cho con người chấp nhận luồng đầu vào của các ký tự và hiển thị chúng. Không có thông tin phản hồi cho người dùng về chiều cao hoặc chiều rộng (chỉ hack) hoặc nhấn phím bàn phím - chỉ các ký tự đang di chuyển đến đó. Terminal xử lý các chuỗi đặc biệt trong luồng này để làm cho mọi thứ được tô màu, làm sạch màn hình và làm những điều khó chịu khác. Thiết bị đầu cuối là flaky, bởi vì nó rất dễ dàng để mess điều nếu tập tin bạn đang đường ống để sản lượng có chứa các trình tự đặc biệt. Chúng phổ biến trong các giao diện gỡ rối mạng và thiết bị, bởi vì bạn chỉ cần một luồng đơn để gửi đầu ra và điều khiển thiết bị đầu ra và bạn có thể tap vào cuộc trò chuyện mà không cần khởi tạo hoặc tạo cửa sổ.

-bộ điều khiển nối tiếp - là một giao diện điều khiển xử lý luồng đầu vào như một thiết bị đầu cuối.


3
2017-10-24 10:42