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

172

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

claws
источник
8
и что насчет prompt и даже command line?
n611x007
1
Посмотрите на этот вопрос из Unix & amp; Linux: unix.stackexchange.com/questions/4126/...
Flimm
4
Моя жена сказала "черный экран"
Kenji Noguchi

Ответы:

153

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

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

Терминал относится к программе-оболочке, которая запускает оболочку. Несколько десятилетий назад это было физическое устройство, состоящее из чуть больше, чем монитор и клавиатура. Поскольку системы Unix / Linux добавили более совершенные многопроцессорные и оконные системы, эта концепция терминала была абстрагирована в программное обеспечение. Теперь у вас есть такие программы, как Гном Терминал который запускает окно в оконной среде Gnome, которая будет запускать ракушка в которые вы можете вводить команды.

приставка это особый вид Терминал , Исторически консоль представляла собой единственную клавиатуру и монитор, подключенные к выделенному последовательному консольному порту на компьютере, который используется для прямой связи на низком уровне с операционной системой. Современные Linux-системы обеспечивают виртуальные консоли , Доступ к ним осуществляется с помощью сочетаний клавиш (например, Alt + F1 или же Ctrl + Alt + F1 ; функциональная клавиша номера различных консолей), которые обрабатываются на низких уровнях операционной системы Linux - это означает, что не существует специального сервиса, который необходимо установить и настроить для работы. Взаимодействие с консолью также осуществляется с помощью ракушка программа.

Doug Harris
источник
1
До того, как терминалы были мониторами с клавиатурой, они были телетайпами - своего рода электрическая машинка. en.wikipedia.org/wiki/Teleprinter
Kevin Panko
11
Приставка иногда означает «клавиатура и монитор, физически подключенные к этому компьютеру». Например, «Я вошел в систему с консоли, потому что сервер не отвечал на сеть».
Kevin Panko
1
@Doug Harris: Можете ли вы добавить несколько картинок оборудования, о котором вы говорите?
claws
1
Когда я учился в колледже в конце 1980-х, я много работал над терминалами DEC VT220 - en.wikipedia.org/wiki/VT220 - Это хороший пример физического устройства, которое я описал.
Doug Harris
5
Так что если терминалы а также консоли в наше время каждый реализован в программном обеспечении - в чем разница между ними (сейчас)?
Gavin Hope
12

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

Консоль изначально была физической вещью, панелью управления. В вычислительном отношении это обычно означает отображение, которое вы видите перед запуском GUI или после его завершения; иногда вы можете переключиться на отображение вместо GUI. Это место, где операционная система печатает сообщения об ошибках. На многопользовательском компьютере это дисплей, который фактически подключен к компьютеру. Просто чтобы сбить вас с толку, в Windows это также может означать окно с командной оболочкой, то есть терминал.

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

Peter Westlake
источник
1

Подумайте о другом контексте, это развитие.
Даже если у вас нет очень глубоких знаний о разработке, вы, вероятно, знаете основы, а именно: вы редактируете программу, отправляете ее компилятору или интерпретатору, который создает скомпилированное приложение.
Консоль похожа на редактор вашей программы; это поможет вам в пишу но он на самом деле ничего не выполняет: когда вы закончите, вы отправите его компилятору для этого.

Вы можете использовать предпочитаемый вами редактор, vim, gedit, emacs, notepad ++, Netbeans, eclise и т. Д., Но в конце концов это просто разные инструменты: если вы напишите одну и ту же программу, результат будет одинаковым.
В этой метафоре оболочка является компилятором. Команды, которые вводятся в терминал, отправляются в оболочку, которая их интерпретирует и выполняет немедленно.
Таким образом, в то время как терминалы являются лишь интерфейсом для оболочки, оболочка содержит реальный язык, как это происходит для компилятора.

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

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

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

AgostinoX
источник
0

Там действительно нет большой разницы. В далеком прошлом, когда «оболочкой» была программа, «терминалом» была оболочка внешнего интерфейса этой программы, а «консолью» было физическое соединение с компьютером (клавиатура / экран).

Существует разница в зависимости от того, какую ОС вы используете. «Стандартная» оболочка BASH , который обычно доступен во всех версиях Linux / Unix. Windows использует совершенно другую оболочку.

Josh K
источник
0

Терминал - это текстовый интерфейс (возможно, для оболочки)

Разницу между консолью и оболочкой я не понимаю, но могу сказать, чем терминал отличается от оболочки.

Терминал является ( согласно википедии ) "последовательный компьютерный интерфейс для ввода и отображения текста. Информация представляется в виде массива предварительно выбранных сформированных символов".

Вы можете использовать терминал для взаимодействия с оболочкой, но вы также можете использовать его для взаимодействия с текстовый графический интерфейс иногда называют Пользовательский интерфейс терминала , Например:

  • напор имеет элементы графического интерфейса, включая номера строк и именные вкладки
  • Nano имеет элементы графического интерфейса, включая меню справки команд
  • Tmux имеет элементы графического интерфейса, включая строку состояния и разделительные линии между панелями
  • Миником имеет элементы графического интерфейса, включая меню и строку состояния

В каждом случае элементы графического интерфейса «рисуются» текстом, а не пикселями.

Nathan Long
источник
Я не уверен, что это определение только текстовое. В некотором смысле некоторые графические интерфейсы можно считать терминалами IMO.
jiggunjer
0

Для начинающих начинающих

Для более подробного описания: https://askubuntu.com/a/506628/130518

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

Я опишу наиболее нормальный вариант использования этого в следующем тексте.

Терминал использования как ад. Оболочка может работать без терминала.

Относиться к предметам быта:

  • Терминал - & gt; ТВ экран в вашем доме
  • Shell - & gt; Программа, которая работает на экране телевизора

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

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

Несколько примеров существующих терминалов:

  • Командная строка
  • Guake
  • гном-терминал
  • терминатор

Несколько примеров существующих оболочек:

  • удар
  • Sh (Борн оболочки)
  • PowerShell [windows]
  • Zsh (Z оболочка)

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

Karl Morrison
источник