В чем разница между терминалом, консолью, оболочкой и командной строкой?

Набрав vim, вы открыли его в Vim not nano, так как ваш вопрос говорит о том, что nano немного удобнее, чем редакторы vi, я нашел.

Однако вы можете сохранять файлы в vim с помощью :x, если вы находитесь в режиме «Вставка», вам придется сначала нажать Esc.

1
задан 5 August 2014 в 15:21

9 ответов

Визуальное представление.

Terminal

Что-то вы можете сесть и работать как босс.

Клемма

enter image description here

Некоторое аппаратное обеспечение, которое делает кучу вещей.

Еще один пример консоли - это консоль видеоигр, такая как Super Nintendo [где вы можете играть в Actraiser]

shell

В принципе, приложение для запуска команд.

shell

enter image description here

В принципе все, что вы вводите в команду.

51
ответ дан 24 May 2018 в 05:00
  • 1
    Вы украли мою идею - я собирался дать в основном тот же ответ. Таким образом, вы можете иметь преимущество. Суть в том, что, хотя эти термины в основном являются синонимами в наши дни, такие термины, как «терминал», и "консоль" имеют свое происхождение в более старых вычислительных концепциях. – thomasrutter 5 August 2014 в 10:27
  • 2
    Хорошее усилие. Простой и легкий – A Umar Mukthar 24 August 2014 в 13:05

Из Информационного проекта Linux:

Терминал: Технически, окно терминала, также называемое эмулятором терминала, представляет собой текстовое окно в графическом пользовательском интерфейсе (GUI), который эмулирует консоль ,

В наших словах Приложение GUI, откуда мы можем получить доступ к консоли пользователя.

Терминал: Технически, терминальное окно, также называемое терминальным эмулятором, является текстовое окно в графическом пользовательском интерфейсе (GUI), который эмулирует консоль.

Terminal : оболочка - это программа, которая предоставляет традиционный текстовый пользовательский интерфейс для Linux и других Unix-подобных операционных систем. Command-Line: командная строка - это пространство справа командной строки в режиме полнотекстового отображения на мониторе компьютера (обычно это панель CRT или LCD), в которой пользователь вводит команды и данные
18
ответ дан 24 May 2018 в 05:00
  • 1
    & Quot; Терминал & Quot; обозначает физический текстовый экран. То, что вы говорите, на самом деле является терминальным эмулятором. – Registered User 4 August 2014 в 13:30
  • 2
    @RegisteredUser Терминальный эмулятор - это своего рода терминал. Слово terminal не ограничивается физическими терминалами (обычное слово для этого - console ). – Gilles 5 August 2014 в 02:55
  • 3
    Это определение командной строки неверно. Командная строка не ограничивается режимом полнотекстового отображения. – Gilles 5 August 2014 в 02:57
  • 4
    @ Gilles Я схватил его из One web-Link. Вы указали правильный ответ. – Ten-Coin 6 August 2014 в 09:05
  • 5
    @AgentCool Я не ставил под сомнение вашу способность копировать-вставить. Я сомневаюсь в вашем выборе источника. То, что вы публикуете, является вашей ответственностью, независимо от того, написали ли вы это или нет. – Gilles 6 August 2014 в 12:48

Ответы здесь кажутся очень хорошими. Однако они слишком сухие и технические для моего вкуса, поэтому я дам взятие.

Terminal - это конец чего-то, где он заканчивается. Например, если вы берете метро в каком-то городе, станция, где вы садитесь, является вашим терминалом. Или в аэропорту считается местом, где люди выходят, когда они достигают своей страны назначения. Причина, по которой терминал в аэропорту в настоящее время является как местом, где вы получаете людей на борту, так и местом, где вы их забираете с самолета, является очевидным экономическим соображением.

Цель компьютера - получить данные, что-то сделать с ним , и выплюнуть результат. Таким образом, терминал представляет собой любое устройство, откуда вы можете получить результат вычисления. Например, экран. Случилось так, что на первых компьютерах у вас обычно был вход (клавиатура) и вывод (экран) в виде одного устройства. Из-за этого в настоящее время терминалы считаются устройствами ввода / вывода. Мышь, клавиатура, экран, камера, все они являются терминалами.

Shell - это ОС. На компьютере у вас есть ядро, которое на Ubuntu, например, является частью Linux. Теперь, поскольку ядро ​​действительно низкоуровневое, предоставляется оболочка - программа, которая позволяет пользователю взаимодействовать с ядром в простой форме. Например, это BASH.

Console (из словаря)

- плоская поверхность, содержащая элементы управления для машины, для части электрооборудования и т. Д.

Вот почему в музыкальной индустрии доска со всеми ручками, или в шаттле на командном столе, все они считаются консолями. Super Nintendo и PS2 также называются консолями исторически, поскольку первые такие развлекательные устройства выглядели как коробки с кучей кнопок на них.

Command line - это просто интерфейс - противоположность GUI. А именно, на компьютере есть два типа интерфейсов; CLI (интерфейс командной строки) и GUI (графический интерфейс пользователя). Основное отличие состоит в том, что первый вводит клавиатуру, а второй - от мыши.

14
ответ дан 24 May 2018 в 05:00
  • 1
    Что вы имеете в виду «противоположность GUI»? ? – Koray Tugay 10 June 2015 в 21:39
  • 2
    С противоположным я имею в виду, что у вас есть CLI или GUI. Я уточнил, теперь немного больше в ответе. – Pithikos 10 June 2015 в 22:08

эти термины часто идут вместе, так что люди используют один из терминов для обозначения коллекции. (т. е. это обычно очевидно из контекста, что они имеют в виду окно терминала с интерфейсом командной строки оболочки).

, чтобы он не попал к многословным, я просто хотел сказать в xterm в качестве подставки-в для xterm / GNOME в консоль / mrxvt / и т. д. / и т. д. Же для bash.

консоль

имеет несколько другие специальные значения, так что оставим это сейчас.

терминал: что-то, что обеспечивает взаимодействие человека с программами через двунаправленный поток символов ASCII / UTF8 в / других персонажей, обычно с vt100 или аналогичная обработка Escape-код. (Напр. клавишу backspace, удалить, стрелки и т. д. генерировать коды побег. Программы могут печатать побег коды для перемещения курсора по экрану терминала, переключение на жирный шрифт и/или цвет, четкие или прокрутка экрана и т. д.) В старые времена, часто это специализированное устройство с экраном и клавиатурой и последовательным портом. Теперь, это, как правило, программа таких как xterm.

есть файлы устройства, программы для чтения/записи из/в терминалы и виртуальные терминалы также имеют другую сторону работает как файл устройства. Это когда в xterm пишет вашего входа, так что баш может прочитать его.

каждый терминал, в том числе и виртуальные, обеспечивает основную линию редактирования, когда это в вареном (в отличии от сырой). Это обрабатывается код ядра. Это баш, который обеспечивает линию редактирования, что вы можете сделать с помощью клавиш со стрелками. (Попробуйте запустить [Ф1] и введите, если вы хотите, чтобы увидеть, что основное ядро-линии редактирования, как. Забой работает, и несколько других вещей, как в настройках действовать до его закрытия.)

, хотя существует много кода ядра за терминальных устройств, оно будет обозначаться как терминал обработки кода, а не сам терминал.

изменить: Жиль убедил меня, что ссылаясь на терминал как терминал правильного использования. Эмуляторы терминала, и интерактивные программы, которые запускаются подключен к терминалу, все зависит от семантики терминала реализуется на уровне ядра. (Большая часть этого поведения стандартизирована в posix, и то же самое через Линукс/*БСД/другие Unix.) Полноэкранный редактор текста зависит от поведения ОС Unix телетайп материалов, а также курсор-движение бежать-код обработки, и многих других функций, эмулятор терминала.

однако физические ВТ100 с экрана, клавиатуры и последовательного порта является экземпляром терминал. Она не требует ядра Unix на другой конец своего последовательного порта для полноты. Что-то совершенно другое, может быть отправить его Escape-коды и в текстовом, и получать то же от него. Это будет просто ВТ100, хотя, не терминала Unix. Эмулятор терминала плюс семантика Unix телетайп составляют полный пакет терминала Unix, что программа, Как баш нормально работает.

терминал - стиль пользовательского интерфейса, где вы что-то тип, затем нажмите клавишу Return, чтобы сделать что-то случится. Он также используется в качестве сокращения для командной строки оболочки, такие как bash или MS-DOS, но вы также можете сказать: “это инструмент командной строки” о чем-то вроде программы fdisk. Рассматривая только те программы, которые используют терминал для их пользовательского интерфейса, два основных семей командной строки и на весь экран текст (например, редактором, например VI или [F2]).

командной строки программы, которые обычно запускаются на клеммах почти всегда по-прежнему работать со своими входными и выходными перенаправлены на файлы, но терминал полноэкранные программы, такие как редакторы и почтовые клиенты, являются интерактивными, а не работать.

командный интерпретатор-это программа для запуска других программ. В контексте Unix, это часто означает, оболочка командной строки (т. е. Bourne оболочки или с оболочкой эквивалент). Оболочки Unix также можете прочитать их ввод из файлов, т. е. скрипты. Они полны языков программирования, переменные, циклы и условные операторы, и многие программы написаны на bash (или только [Ф3] оболочка posix функции для удобства перемещения). Это также легко можно написать быстрый [Ф4] в интерактивную оболочку.

если сложить все вместе, оболочки, такие как bash (или любой другой программы, которую вы начали, запустив командную строку) будет получать символы из [ф5] терминального устройства после того, как в xterm пишет свой вклад в его сторону псевдо-терминал. Если вы запустите [ф6], затем нажмите [ф7], код ядра телетайп будет действовать на [F8] и отправить на [F9], чтобы процесс переднего плана на этот терминал. (Обратите внимание на использование консоли в данном контексте означает Unix и телетайп, а не эмулятор терминала или что-то подключил к последовательному порту.) Это происходит потому, что оболочка ставит терминал в "вареных" режим перед началом любой программы, что означает, что акты ядра на некоторых контрольно-последовательностей. (Код tty по-прежнему не имеет ничего общего с обработкой ВТ100 Escape-кодов, несколько низкий-коды ASCII управления). Если вместо окна xterm, вы используете текстовый терминал консоли Linux, то ядро делает ВТ100 эмуляции, и регулировать все это. Linux может быть скомпилирован без виртуальной консоли текст поддержки терминала, но не без поддержки телетайпа.

оболочки иногда используется как синоним для терминала (KDE еще есть эмулятор терминал называется терминал).

как 0xSheepdog очков, он также имеет и другое значение: локально оборудования взаимодействие человека.

в контексте ядра, консоль имеет еще одно специфическое значение: это терминал, где написано загрузки сообщения. Это может быть последовательный порт. Обычно, конечно, это текстовой консоли реализуется на уровне ядра поверх драйверы для графических устройств и USB/PS2 и на клавишных. Если вы загрузить Linux с [ф10] в командной строке, вы получите сообщения ядра на экране и на последовательный порт.

Linux реализует виртуальных консолей ([F11], чтобы Н). Вы можете поменять что одно ваше физическое экрана/клавиатуры управление с помощью клавиш Ctrl+Альт+ФН. Типичные дистрибутивы Linux создать 6, и начать [ф12] на все из них, так что даже если Вы не можете или не хотите запустить Х11, вы можете войти в 6 раз и переключаться между командой, Man-страницы, и все остальное, без запуска программы, как экрана. Linux (ядро) включает в себя ВТ100-стиль эмулятор терминала, чтобы обеспечить интерфейс терминала через экран и клавиатуру на виртуальных консолей.

стандартный 6 виртуальных терминалов с логином запрашивает почему сочетание клавиш Ctrl+АЛТ+значок получает вас обратно к вашей сессии Х11: x-сервер берет следующую доступную виртуальную консоль. (X-сервер открывает [от f13] напрямую, а не получать ваши нажатия клавиш от [ф14], хотя.)

так что "поменять в текстовой консоли" означает нажатие значок+АЛТ+ФН и использовать этот терминал. Когда компьютеры были медленными и не так много оперативной памяти, некоторые люди проводили большую часть своего времени на текстовых консолях, так как они были быстры, можно установить красивый шрифт, и даже изменить размер терминала, чтобы иметь меньше персонажей, но более на экране одновременно. Alt+влево и Alt+вправо поменять в консоли prev или Next. (Х11 снимает для своей консоли, конечно, оставив только сочетание клавиш Ctrl+Альт+ФН комбо.)

так Н это только один из этих терминов, которые не имеют один четко определенный технический смысл. Он имеет пару разных. (В зависимости от того как вы относитесь собственно терминал и терминал плюс обработка телетайп, можно сказать, что терминал также имеет несколько значений.)

7
ответ дан 24 May 2018 в 05:00
  • 1
    Консоль означает, что «основной» физический терминал не только в контексте ядра. Это то же самое , что и в /dev/console . Консоль не особенно неоднозначна - хотя она иногда используется в более общем смысле terminal , это довольно редко (реже, чем terminal используется для конкретно означает консоль). – Gilles 5 August 2014 в 16:27
  • 2
    правильно, да, echo foo | sudo tee / dev / console & gt; / dev / null будет печататься на экране, если ваш текущий VT находится в текстовом режиме (включая консоль фреймбуфера, а не только буквально текстовый текст VGA). Если вы загрузились с консолью на последовательном порту, я думаю, что он пойдет туда. Вы могли бы сказать, что / dev / console это файл устройства для любого ядра, рассматриваемого как системная консоль. Ничто другое в системе не должно иметь представления о том, что существует консоль tty (за исключением загрузочного материала, который запускает оболочку на консоли TTY, если система не может загрузиться в многопользовательский режим. Обычно из initrd) – Peter Cordes 5 August 2014 в 17:15
  • 3
    Сервер xorg X (строки / usr / bin / Xorg) не использует / dev / console для доступа к оборудованию. Он использует / dev / tty0 и / dev / tty% d, и / dev / vc /% d, чтобы настроить себя на своем VT. Я уверен, что Xorg все равно будет работать на ПК, который загружается с консоли ядра на последовательном порту. И что виртуальные терминалы текстового режима все равно будут работать. Чем больше я это считаю, тем больше я склоняюсь к консоли просмотра в контексте ядра как только специальный терминал, выбранный во время загрузки. (Linux может фактически выводить свои консольные сообщения на несколько терминалов сразу, если вы попросите его.) – Peter Cordes 5 August 2014 в 17:32

Обобщить мой ответ:

Shell - это программа, в которой команды processes и returns выводятся, например bash в Linux.

Shell это программа, в которой run была оболочка, в прошлом это была bash (до терминалов были мониторы с клавиатурами, они были телетайпами), а затем ее концепция была перенесена в программное обеспечение, такое как Gnome-Terminal.

Итак, я открываю shell , появляются черные окна, которые запускают Shell, поэтому я могу запускать свои команды.

Консоль - это Shell [!d13 ], это было также физическое устройство. Например, в Linux у нас есть virtual console, к которому я могу получить доступ с помощью комбинации Ctrl + Alt + F1 к F7.

Консоль иногда означает клавиатуру и монитор телетайпов , прикрепленных к этому компьютеру .

6
ответ дан 24 May 2018 в 05:00

Я думаю, что в первые дни компьютеров с разделением времени у каждого пользователя был терминал (когда он мог получить его!), но только у системных операторов была консоль. Консоль может использоваться для таких задач, как перезагрузка машины или получение системной диагностики, которая невозможна с пользовательских терминалов. Консоль находилась в машинной комнате, внутренней части компьютера, тогда как терминалы могли быть удалены.

Я бы сказал, что командная строка - это область, где пользователь может вводить команду, тогда как оболочка - это программа, которая интерпретирует / подчиняется этой команде. Термин «оболочка» очень специфичен для производных Unix; «command-line» больше в традиции Windows / DOS. Эквивалент на мэйнфреймах обычно называется «языком управления заданиями».

Ясно, что эти оригинальные отличия со временем стали размытыми по мере изменения технологии.

5
ответ дан 24 May 2018 в 05:00

Попытка пользовательского короткого ответа:

командная строка - строка, в которую вы вводите команды. Обычно это означало, что вам нужно что-то запустить в текстовом режиме (интерфейс командной строки), предоставляемом вашей операционной системой.

command line - фактическая программа, выполняемая операционной системой для обработки материалов, которые вы вводите в command line. Следовательно, имя - удобная оболочка для недружественного ядра ОС. Он предоставляет командную строку, например $ или >, выполняет свои собственные команды и приложения. Вы всегда работаете с программой shell и никогда не работаете с консолью или терминалом напрямую.

console - это окно, в котором работают ваши программы текстового режима. Это окно обрабатывает нажатия клавиш, знает, что это ширина и высота. Может быть полноэкранным.

console - это какое-то устройство с дисплеем для людей, которое принимает входной поток символов и показывает их. Нет обратной связи с пользователем о высоте или ширине (только хаки) или клавиатурных клавишах - на нее отправляются только символы. Терминал обрабатывает специальные последовательности в этом потоке, чтобы сделать вещи цветными, очистить экран и сделать другие неприятные вещи. Терминалы являются шероховатыми, потому что их легко перепутать, если файл, который вы передаете на вывод, содержит специальные последовательности. Они популярны в сетевых и отладочных интерфейсах устройств, потому что вам нужен только один поток для отправки вывода и управления устройством вывода, и вы можете просто tap вступить в разговор без необходимости инициализации или создания окна.

[d9 ] serial console - консоль, обрабатывающая входной поток как терминал.

3
ответ дан 24 May 2018 в 05:00

Это неопределенная тема, потому что термины очень неоднозначны. Я настоятельно рекомендую прочитать ссылки, которые я предоставил на протяжении всего этого ответа, которые также являются моими источниками для этого ответа.

Оболочка - это слой над ядром:

Он интерпретирует команды вводится пользователем и обрабатывает их. В отличие от пользователей, оболочка имеет доступ к ядру. Пользователи могут обращаться к ядру только через ввод команд с использованием оболочки и с помощью процессов (например, запущенных программ). Программы используют системные вызовы для доступа к функциям ядра. Все системные вызовы вместе образуют системный API. Примеры оболочек приведены во втором определении терминала.

A shell имеет много значений:

Он интерпретирует команды, введенные пользователем, и обрабатывает их. В отличие от пользователей, оболочка имеет доступ к ядру. Пользователи могут обращаться к ядру только через ввод команд с использованием оболочки и с помощью процессов (например, запущенных программ). Программы используют системные вызовы для доступа к функциям ядра. Все системные вызовы вместе образуют системный API. (2) Терминальное окно эмулятора терминала a.k.a. В Linux терминальное окно представляет собой эмуляцию консоли, содержащейся в окне графического интерфейса пользователя. Это CLI, в который вы вводите текст, и этот ввод считывается оболочкой, которую вы используете. Существует множество типов оболочек (например, bash, dash, ksh88) и терминалов (например, konsole, gnome). Примеры оболочек приведены во втором определении терминала.

A shell имеет много значений:

(2 ) Терминальное окно или эмулятор терминала. В Linux терминальное окно представляет собой эмуляцию консоли, содержащейся в окне графического интерфейса пользователя. Это CLI, в который вы вводите текст, и этот ввод считывается оболочкой, которую вы используете. Существует множество типов оболочек (например, bash, dash, ksh88) и терминалов (например, konsole, gnome). (2) Окно терминала a.k.a. компьютерная консоль. Это комбинация монитора дисплея и клавиатуры, подключенной к компьютеру. Это синоним того, что мы называем «текстовым терминалом». Иногда и другие периферийные устройства ввода-вывода, такие как мышь, являются частью консоли. (3) Интерфейс командной строки, который охватывает весь экран. Это контрастирует с терминальным окном, которое представляет собой графический интерфейс с X в правом верхнем углу, чтобы закрыть его. Это два режима отображения для CLI (интерфейсы командной строки) в Unix-подобных системах. Подобно терминальному окну, консоль также может запускать множество оболочек.

Часто операционные системы позволяют запускать несколько консолей на физической консоли (определение консоли 2). Они называются shell a.k.a. виртуальными терминалами и могут быть доступны через комбинации ctrl + alt + Fx. Например, если вы хотите открыть 3-ей виртуальную консоль, вы используете комбинацию ctrl + alt + F3.

Консоли (определение 3) могут показаться вам анахронизмом, но эксперты должны быть удобны в использовании , поскольку существует множество ОС, которые не поддерживают графический интерфейс пользователя. Кроме того, если GUI перестает отвечать на запросы, консоль может по-прежнему работать.

2
ответ дан 24 May 2018 в 05:00

Большинство терминалов в настоящее время строго говоря терминальные эмуляторы. Это тип роли в работе UNIX-подобной системы и в то же время базовый интерфейс, предлагаемый системами. На самом деле все, включая графический интерфейс, строится поверх него. Терминал «

» также относится к конечным точкам в компьютерной сети со звездообразной топографией.

относится к (аппаратным) интерфейсам для терминалов. То есть есть терминальные эмуляторы консолей и в настоящее время в основном виртуальные. Окно, которое в обычном виде называется «консоль», - это оболочка, подключенная к терминалу системы, через виртуальная консоль.

. В тот день, когда компьютеры были дороги, объект мог иметь один фактический компьютер и несколько подключенных к нему терминалов через последовательные кабели («последовательная консоль»). Операции ОС, операции и т. Д. Выполнялись на физическом компьютере, вход и выход выполнялись на консоли. Вы можете переключаться между виртуальными терминалами, нажав CTRL + ALT + F1 (до F6): оставшееся время. Сегодня концепция «тонких клиентов» восходит в этом направлении к централизации огромного количества ресурсов и предоставлению достаточно аппаратного обеспечения для обеспечения современного интерфейса на самом рабочем месте.

shell - это «движок», который вы видите в терминале. Он обеспечивает взаимодействие с самой системой и добавляет приятные функции, такие как автозаполнение, переменные и т. Д. Он переводит назад и вперед между фактическим OS / ядром, которое использует системные вызовы и вас. Системные вызовы без оболочки немного напоминают кодирование assembler, а оболочка по крайней мере дает вам C.

shell относится к методу обмена ввода и вывода через текстовое окно. Строго говоря, строкой, в которой вы набираете, является виртуальная (текущая) командная строка. Метод в целом более корректно называют ролью или CLI.

ядро ​​предлагает терминальный терминал подключается через консольную консоль запускает команды оболочки, а вывод обменивается через командную строку (интерфейс)
2
ответ дан 24 May 2018 в 05:00
  • 1
    Ядро не понимает инструкции командной строки, но оболочкой. «Основная структура команд, которые понимает ядро», - это системные вызовы. «Основной интерфейс командной строки UNIX» - это оболочка, между этим и «хорошими функциями» нет разделения. «Терминал-эмулятор-окно» не является консолью. – Gilles 5 August 2014 в 02:59
  • 2
    @ Gilles скорректирована. Очевидно, что некоторые вещи смущены. – Mark 5 August 2014 в 10:18

Другие вопросы по тегам:

Похожие вопросы: