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

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

160 голосов | спросил claws 24 Maypm10 2010, 17:22:34

6 ответов


142

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

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

A терминал относится к программе-оболочке, которая запускает оболочку. Десятилетия назад это было физическое устройство, состоящее не более, чем монитор и клавиатура. Поскольку системы unix /linux добавили лучшие многопроцессорные и оконные системы, эта концепция терминала была абстрагирована в программное обеспечение. Теперь у вас есть такие программы, как Gnome Terminal , который запускает окно в среде окон Gnome, которая будет запускать shell , в который вы можете ввести команды.

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

ответил Doug Harris 24 Maypm10 2010, 17:37:04
10

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

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

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

ответил Peter Westlake 24 Maypm10 2010, 17:39:10
1

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

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

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

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

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

ответил AgostinoX 22 ndEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 22 Sep 2014 00:13:18 +0400 2014, 00:13:18
0

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

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

ответил Josh K 24 Maypm10 2010, 17:37:13
0

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

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

терминал : ( согласно Википедии ) «последовательный интерфейс компьютера для ввода и отображения текста. Информация представлена ​​как массив предварительно выбранных образованных символов».

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

  • Vim содержит элементы GUI, включая номера строк и названные вкладки
  • Nano содержит элементы GUI, включая меню помощи команд
  • Tmux содержит элементы GUI, включая строку состояния и разделительные линии между панелями
  • Minicom содержит элементы GUI, включая меню и строку состояния

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

ответил Nathan Long 28 Jam1000000amThu, 28 Jan 2016 00:26:40 +030016 2016, 00:26:40
0

Для начинающих новичков

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

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

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

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

Чтобы относиться к повседневным элементам:

  • Терминал -> ТВ-экран в вашем доме.
  • Shell -> Программа, работающая на экране телевизора

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

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

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

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

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

  • Bash
  • sh (оболочка Bourne)
  • PowerShell [windows]
  • zsh (Z shell)

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

ответил Karl Morrison 6 MarpmTue, 06 Mar 2018 13:29:39 +03002018-03-06T13:29:39+03:0001 2018, 13:29:39

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132