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

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

Короткий ответ:

  • терминал = среда ввода/вывода текста
  • приставка = физический терминал
  • ракушка = интерпретатор командной строки

Длинный ответ:

Консоль и терминал тесно связаны между собой. Первоначально они означали часть оборудования, с помощью которого вы могли взаимодействовать с компьютером: в первые дни unix это означало телепринтерустройство в стиле, напоминающем пишущую машинку, иногда называемое телетайпной машинкой, или сокращенно “tty”. Название “терминал” появилось с электронной точки зрения, а название “консоль” - с точки зрения мебели. Очень рано в истории unix электронные клавиатуры и дисплеи стали нормой для терминалов.

Терминал

В терминологии unix, a терминал является особым видом файл устройства который реализует ряд дополнительных команд (ioctls) за пределами чтения и записи. Некоторые терминалы предоставляются ядром от имени аппаратного устройства, например, с вводом, поступающим с клавиатуры, и выводом на экран в текстовом режиме, или с вводом и выводом, передаваемыми по последовательной линии. Другие терминалы, иногда называемые псевдотерминалами или псевдо-ttys, предоставляются (через тонкий слой ядра) программами, называемыми эмуляторы терминалов. Некоторые типы эмуляторов терминалов включают в себя:

  • Приложения с графическим интерфейсом, работающие в Система X Window: Xterm, Gnome Terminal, Konsole, Terminator и т.д.
  • Экран и tmux, который обеспечивает уровень изоляции между программой и другим терминалом
  • Тсс, который соединяет терминал на одной машине с программами на другой машине
  • Ожидать, для написания сценариев взаимодействия с терминалом

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

Приставка

A приставка обычно это терминал в физическом смысле, который по некоторому определению является основным терминалом, непосредственно подключенным к машине. Консоль отображается в операционной системе как (реализованный ядром) терминал. В некоторых системах, таких как Linux и FreeBSD, консоль отображается в виде нескольких терминалов (ttys) (специальные комбинации клавиш переключаются между этими терминалами); просто чтобы запутать ситуацию, имя, данное каждому конкретному терминалу, может быть “консоль”, ”виртуальная консоль”, ”виртуальный терминал” и другие варианты.

Смотрите также Почему виртуальный терминал “виртуальный”, и что / почему / где находится “реальный” терминал?.

Командная строка [интерфейс]

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

Ракушка

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

В кругах unix, ракушка специализировался на том, чтобы означать оболочка командной строки, сосредоточенный вокруг ввода имени приложения, которое вы хотите запустить, за которым следуют имена файлов или других объектов, с которыми приложение должно работать, и нажатие клавиши Enter. Другие типы сред (за заметным недавним исключением Gnome Shell) обычно не используют слово “оболочка”; например, оконные системы включают в себя “оконные менеджеры” и “среды рабочего стола”, а не “оболочка”.

Существует много различных оболочек unix. Оболочка Ubuntu по умолчанию - это Удар (как и большинство других дистрибутивов Linux). Популярные альтернативы включают в себя зш (что подчеркивает мощь и настраиваемость) и рыба (что подчеркивает простоту).

Оболочки командной строки включают в себя конструкции управления потоком для объединения команд. В дополнение к вводу команд в интерактивном приглашении пользователи могут писать сценарии. Наиболее распространенные оболочки имеют общий синтаксис, основанный на Борн_шелл. При обсуждении “программирование оболочки”, оболочка почти всегда подразумевается как оболочка в стиле Борна. Некоторые оболочки, которые часто используются для написания сценариев, но не имеют расширенных интерактивных функций, включают оболочка Korn (ksh) и многие пепел варианты. Практически в любой Unix-подобной системе установлена оболочка в стиле Bourne как /bin/sh, обычно ash, ksh или bash. На Ubuntu, /bin/sh является Тире, вариант ash (выбран потому, что он быстрее и использует меньше памяти, чем bash).

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


Разделение труда между терминалом и оболочкой не совсем очевидно. Вот их основные задачи.

  • Ввод: терминал преобразует клавиши в управляющие последовательности (например Left\e[D). Оболочка преобразует управляющие последовательности в команды (например \e[Dbackward-char).
  • Версия строки, история ввода и завершение предоставляются оболочкой.
    • Вместо этого терминал может предоставить свою собственную версию строки, историю и завершение и отправить строку в оболочку только тогда, когда она будет готова к выполнению. Единственным распространенным терминалом, который работает таким образом, является M-x shell в Emacs.
  • Вывод: оболочка выдает такие инструкции, как “display foo”, “переключите цвет переднего плана на зеленый”, “переместите курсор на следующую строку” и т.д. Терминал действует в соответствии с этими инструкциями.
  • Подсказка - это чисто концепция оболочки.
  • Оболочка никогда не видит выходные данные команд, которые она выполняет (если только они не перенаправлены). История вывода (прокрутка назад) - это чисто терминальная концепция.
  • Копирование и вставка между приложениями обеспечивается терминалом (обычно с помощью мыши или последовательностей клавиш, таких как Ctrl+Shift+V или Shift+Insert). Оболочка также может иметь свой собственный внутренний механизм копирования-вставки (например Meta+W и Ctrl+Y).
  • Контроль работы (запуск программ в фоновом режиме и управление ими) в основном выполняется оболочкой. Однако именно терминал обрабатывает такие комбинации клавиш, как Ctrl+C чтобы завершить работу на переднем плане и Ctrl+Z чтобы приостановить его.

Переработанный из Unix и Linux

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

Терминал

Что-то, за что ты можешь сесть и работать как босс.

Terminal

Приставка

Какое-то оборудование, которое делает кучу вещей.

Console

Другим примером консоли может быть игровая приставка, такая как Super Nintendo [где вы можете играть в Actraiser]

Ракушка

По сути, это приложение для выполнения команд.

ShellShell

Командная строка [Интерфейс]

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

CLICLI

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

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

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

Приставка: приборная панель, содержащая элементы управления для компьютера

Ракушка : Оболочка - это программа, которая предоставляет традиционный текстовый пользовательский интерфейс для Linux и других Unix-подобных операционных систем

Командная строка : Командная строка - это пространство справа от командной строки в режиме отображения всего текста на мониторе компьютера (обычно на ЭЛТ или ЖК-панели), в которое пользователь вводит команды и данные

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

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

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

Ракушка это дело операционной системы. На компьютере у вас есть ядро, которое, например, в Ubuntu является частью Linux. Теперь, поскольку ядро действительно низкоуровневое, предоставляется оболочка - программа, которая позволяет пользователю легко взаимодействовать с ядром. Вот что такое BASH, например.

Приставка есть (из словаря)

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

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

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

То Ракушка это программа, которая процессы команды и возвращается вывод, как Bash в Linux.

A Терминал это программа, которая запускает Ракушка. В прошлом это был физическое устройство (до того, как терминалы были мониторами с клавиатурами, они были телетайпы), а затем его концепция была перенесена в программное обеспечение, такое как GNOME Terminal.

Поэтому, когда я открываю GNOME Terminal, появляется черное окно, в котором запускается Ракушка появляется, чтобы я мог выполнять свои команды.

A Приставка это специальный вид терминала. Это также было физическое устройство. Например, в Linux у нас есть виртуальные консоли, к которому мы можем получить доступ с помощью комбинации Ctrl+Alt+F1 к F7.

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

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

Чтобы это не стало слишком многословным, я просто скажу xterm в качестве замены для XTerm / Gnome Terminal / Konsole / mrxvt / etc / etc. То же самое и с башом.

Приставка имеет множество других специфических значений, так что пока оставим это в стороне.

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

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

Каждый терминал, включая виртуальные, обеспечивает базовое редактирование строк, когда он находится в режиме cooked (в отличие от raw). Это обрабатывается кодом ядра. Именно bash обеспечивает редактирование строк, которое вы можете выполнять с помощью клавиш со стрелками. (Попробуйте запустить cat и ввод текста, если вы хотите увидеть, на что похоже базовое редактирование строк, предоставляемое ядром. Backspace работает, и еще пара вещей в соответствии с вашими настройками stty.)

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

Редактировать: Жиль убедил меня, что обращение к tty как к терминалу является правильным использованием. Эмуляторы терминалов и интерактивные программы, которые выполняются подключенными к терминалу, зависят от семантики терминала, реализованной ядром. (Большая часть этого поведения стандартизирована POSIX и одинакова для Linux / * BSD / других Unix.) Полноэкранный текстовый редактор зависит от поведения Unix tty, а также от обработки escape-кода перемещения курсора и многих других функций эмулятора терминала.

Однако физический VT100 с экраном, клавиатурой и последовательным портом является экземпляром терминала. Для завершения работы не требуется наличие ядра Unix на другом конце его последовательного порта. Что-то совершенно другое может заключаться в отправке ему escape-кодов и ASCII-текста и получении от него того же самого. Однако это был бы просто VT100, а не терминал Unix. Эмулятор терминала плюс семантика Unix tty составляют полный пакет терминала Unix, на котором обычно выполняется такая программа, как bash.

Командная строка это стиль пользовательского интерфейса, в котором вы что-то вводите, а затем нажимаете return, чтобы что-то произошло. Он также используется в качестве сокращения для оболочки командной строки, такой как bash или MS-DOS, но вы также можете сказать “это инструмент командной строки” о чем-то вроде fdisk. Рассматривая только программы, использующие терминал для своего пользовательского интерфейса, двумя основными семействами являются командная строка и полноэкранный текст (например, редактор типа vi или emacs -nw).

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

A ракушка это программа для запуска других программ. В контексте Unix обычно подразумевается оболочка командной строки (например, Bourne shell или эквивалент C shell). Оболочки Unix также могут считывать свои входные данные из файлов, то есть сценариев оболочки. Это полноценные языки программирования с переменными, циклами и условными выражениями, и многие программы написаны на 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 по-прежнему не имеет ничего общего с обработкой escape-кодов VT100, всего лишь несколько управляющих кодов с низким ASCII.) Если вместо xterm вы используете текстовый терминал консоли Linux, то ядро выполняет эмуляцию VT100 и обрабатывает все эти вещи. Linux может быть скомпилирован без поддержки текстового терминала виртуальной консоли, но не без поддержки tty.

Приставка иногда используется как синоним термина terminal (в KDE даже есть эмулятор терминала под названием Konsole).

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

В контексте ядра консоль имеет другое специфическое значение: это терминал, на котором записываются загрузочные сообщения. Это может быть последовательный порт. Обычно, конечно, это текстовая консоль, реализованная ядром поверх драйверов для графического оборудования и клавиатур USB / ps2 / AT. Если вы загружаете Linux с console=tty0 console=ttyS0,115200n8 в командной строке вы получите сообщения ядра на экране И на последовательном порту.

Linux реализует виртуальные консоли (/dev/tty1 к N). Вы можете поменять местами, какой из них управляет вашим физическим экраном / клавиатурой с помощью Ctrl+Alt+FN. Типичные дистрибутивы Linux создают 6 и запускают getty на всех из них, так что даже если вы не можете или не хотите запускать X11, вы можете войти в систему 6 раз и переключаться между командой, справочной страницей и чем угодно еще, не запуская такую программу, как screen. Linux (ядро) включает в себя эмулятор терминала в стиле VT100 для обеспечения интерфейса терминала через ваш экран и клавиатуру на виртуальных консолях.

Стандартные 6 виртуальных терминалов с подсказками для входа в систему - вот почему Ctrl+Alt+F7 возвращает вас к сеансу X11: X-сервер захватывает следующую доступную виртуальную консоль. (Откроется X-сервер /dev/input/... напрямую, вместо того, чтобы получать ваши нажатия клавиш от /dev/tty7, хотя.)

Итак, "переключиться на текстовую консоль" означает нажать Ctrl+Alt+F1 и воспользуйся этим терминалом. Раньше, когда компьютеры были медленными и не имели большого объема оперативной памяти, некоторые люди проводили большую часть своего времени за текстовыми консолями, поскольку они были быстрыми, вы могли установить красивый шрифт и даже изменить размер терминала, чтобы иметь меньшие символы, но иметь больше на экране сразу. Alt+Left и Alt+Right переключитесь на предыдущую/следующую консоль. (X11, конечно, отключает это для своей консоли, оставляя только Ctrl+Alt+FN комбо.)

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

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

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

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

Попытка короткого ответа, ориентированного на пользователя:

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

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

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

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

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

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

A ракушка это слой над ядром:

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

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

  • (1) А текстовый терминал. Это комбинация монитора с дисплеем и клавиатуры. Кабель соединял терминал с компьютером (часто косвенно). Его назвали терминалом, так как он был расположен на клеммном конце этого кабеля. Эти терминалы обычно были физически отделены от компьютера, потому что в те времена многие терминалы были подключены к одному мэйнфрейму / компьютеру, поэтому несколько пользователей могли иметь доступ к компьютеру одновременно.
  • (2) А окно терминала он же. эмулятор терминала. В Linux окно терминала - это эмуляция консоли, содержащаяся в окне графического интерфейса пользователя. Это интерфейс командной строки, в который вы вводите свой текст, и этот ввод считывается используемой вами оболочкой. Существует много типов оболочек (например, bash, dash, ksh88) и терминалов (например, konsole, gnome).
  • (3) Для разъяснения по псевдотерминалы, вид этот. Это пара из двух "файлов устройств", используемых для связи между процессом и эмулятором терминала.

A приставка имеет много значений:

  • (1) приборная панель, содержащая элементы управления компьютером.
  • (2) А Системная консоль он же. компьютерная консоль. Это комбинация монитора дисплея и клавиатуры, подключенной к компьютеру. Это синоним того, что мы называем "текстовым терминалом". Иногда также другие периферийные устройства пользовательского ввода, такие как мышь, являются частью консоли.
  • (3) Интерфейс командной строки, который занимает весь экран. Это контрастирует с окном терминала, которое представляет собой графический интерфейс с крестиком в правом верхнем углу, чтобы закрыть его. Это два режима отображения для CLI (интерфейсов командной строки) в Unix-подобных системах. Подобно окну терминала, консоль также может запускать множество оболочек.

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

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

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

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

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

ракушка это "движок", который вы видите в терминале. Он обеспечивает взаимодействие с самой системой и добавляет приятные функции, такие как автозаполнение, переменные и т.д..
Он переводит туда и обратно между фактической ОС / ядром, которое использует системные вызовы, и вами. Системные вызовы без оболочки немного похожи на кодирование assembler и оболочка, по крайней мере, дает вам C.

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

  1. ядро
  2. терминал предложений
  3. терминал подключается через консоль
  4. консоль запускает оболочку
  5. команды и выходные данные обмениваются через командную строку (интерфейс)

@0xSheepdog Возможно, вы захотите расширить эти комментарии до полного ответа (включая определения или пояснения к другим терминам), опубликованного как таковой. Неплохо, чтобы на вопрос было несколько ответов (за исключением, возможно, случаев, когда они передают одну и ту же информацию и одним и тем же способом). Я не уверен, почему важная практика локальной проверки машины на самом деле основана на знании / вызове ее физического человеческого интерфейса консолью, но, возможно, есть аргумент, что это важно для эффективного общения с коллегами или использования документации. (Вы могли бы уточнить это в своем ответе.)

См.: В чем точная разница между “терминалом”, “оболочкой”, “tty” и “консолью”? в Unix и LinuxSE.

Из-за их тесной связи (см. Все хорошие ответы) эти термины иногда используются как синонимы, что, вероятно, и заставило вас задать этот вопрос.

(1/2) Агент Кул в основном прав, но определение консоли, которое он дает, является устаревшим, учитывая эту тему. Однако его ссылка содержит правильную информацию, если вы перейдете по ней.

Прочтите * полное* определение по его ссылке. Консоль используется в широком смысле для обозначения множества подобных вещей, но, что наиболее важно, она обычно относится к ЛОКАЛЬНЫМ ПОДКЛЮЧЕННЫМ устройствам ввода и вывода, например клавиатуре, дисплею и, возможно, мыши.

(2/2) Это может показаться педантичным, но, как опытный системный администратор, я скажу вам, что * это не так*. Когда в системе возникает проблема и кажется, что она полностью отключена / отключена / отключена, вам следует проверить ** физическую консоль ** системы, чтобы убедиться, что она все еще функционирует, но просто потеряно сетевое подключение. Эта небольшая деталь может сэкономить или стоить вам данных, обработки информации и т.д.

Педантичный, да. Но важный.

Первые три в наши дни более или менее синонимичны в контексте современной компьютерной ОС. Разница заключается в их историческом происхождении. Командная строка обычно относится к методу построения одной команды оболочки, а не к самому интерфейсу оболочки.

Незначительный побочный комментарий: Эти термины не являются уникальными для UNIX / Linux / Ubuntu, поэтому на их значения влияет история автоматизированных вычислений в целом. Таким образом, вы можете столкнуться с различными вариантами использования из разных источников, даже если контекст просто “Ubuntu”. Предыстория источника может иметь значение.

@neon, они часто идут вместе, поэтому люди используют один из терминов для обозначения коллекции. (т.е. из контекста обычно очевидно, что они означают окно терминала, предоставляющее интерфейс к оболочке командной строки). Консоль иногда используется как синоним термина terminal (в KDE даже есть эмулятор терминала под названием Konsole), но, как указывает 0xSheepdog, у него также есть другое значение: локально подключенное оборудование для взаимодействия с человеком.

Перекрестная публикация в суперпользователе: What is the difference between shell, console, and terminal? - Super User и What's the difference between a console, terminal and command-line? - Super User