Я запутался с терминологией. В чем разница между оболочкой, консолью и терминалом?
Я запутался с терминологией. В чем разница между оболочкой, консолью и терминалом?
Ответы:
В мире Linux все они могут выглядеть одинаково с точки зрения пользователя на клавиатуре. Различия в том, как они взаимодействуют друг с другом.
ракушка это программа, которая на самом деле обрабатывает команды и возвращает вывод. Большинство оболочек также управляют передним и фоновым процессами, историей команд и редактированием командной строки. Эти функции (и многие другие) являются стандартными в bash
, самая распространенная оболочка в современных системах Linux.
Терминал относится к программе-оболочке, которая запускает оболочку. Несколько десятилетий назад это было физическое устройство, состоящее из чуть больше, чем монитор и клавиатура. Поскольку системы Unix / Linux добавили более совершенные многопроцессорные и оконные системы, эта концепция терминала была абстрагирована в программное обеспечение. Теперь у вас есть такие программы, как Гном Терминал который запускает окно в оконной среде Gnome, которая будет запускать ракушка в которые вы можете вводить команды.
приставка это особый вид Терминал , Исторически консоль представляла собой единственную клавиатуру и монитор, подключенные к выделенному последовательному консольному порту на компьютере, который используется для прямой связи на низком уровне с операционной системой. Современные Linux-системы обеспечивают виртуальные консоли , Доступ к ним осуществляется с помощью сочетаний клавиш (например, Alt + F1 или же Ctrl + Alt + F1 ; функциональная клавиша номера различных консолей), которые обрабатываются на низких уровнях операционной системы Linux - это означает, что не существует специального сервиса, который необходимо установить и настроить для работы. Взаимодействие с консолью также осуществляется с помощью ракушка программа.
Оболочка - это программа, которая выдает приглашение и ждет, пока вы наберете команды. Он выполняет их, а затем печатает другое приглашение. Так, как CMD в Windows или Bash в Unix. Он может работать в терминале или на консоли.
Консоль изначально была физической вещью, панелью управления. В вычислительном отношении это обычно означает отображение, которое вы видите перед запуском GUI или после его завершения; иногда вы можете переключиться на отображение вместо GUI. Это место, где операционная система печатает сообщения об ошибках. На многопользовательском компьютере это дисплей, который фактически подключен к компьютеру. Просто чтобы сбить вас с толку, в Windows это также может означать окно с командной оболочкой, то есть терминал.
Терминал также изначально был аппаратным, использовался для связи с компьютером. В настоящее время это обычно относится к окну с командной строкой (оболочкой), которое может появиться в окне GUI или вместо GUI.
Подумайте о другом контексте, это развитие.
Даже если у вас нет очень глубоких знаний о разработке, вы, вероятно, знаете основы, а именно: вы редактируете программу, отправляете ее компилятору или интерпретатору, который создает скомпилированное приложение.
Консоль похожа на редактор вашей программы; это поможет вам в пишу но он на самом деле ничего не выполняет: когда вы закончите, вы отправите его компилятору для этого.
Вы можете использовать предпочитаемый вами редактор, vim, gedit, emacs, notepad ++, Netbeans, eclise и т. Д., Но в конце концов это просто разные инструменты: если вы напишите одну и ту же программу, результат будет одинаковым.
В этой метафоре оболочка является компилятором. Команды, которые вводятся в терминал, отправляются в оболочку, которая их интерпретирует и выполняет немедленно.
Таким образом, в то время как терминалы являются лишь интерфейсом для оболочки, оболочка содержит реальный язык, как это происходит для компилятора.
Очевидно, что терминал не является текстовым редактором, в основном потому, что он не создает файл, а отправляет текст в базовую оболочку и извлекает из него выходные данные.
И оболочка не является компилятором, фактически она интерпретирует вашу команду и выполняет ее немедленно, а не создает исполняемый файл.
Даже с такой большой разницей я нахожу эту метафору, которая очень помогает в понимании этой идеи.
Там действительно нет большой разницы. В далеком прошлом, когда «оболочкой» была программа, «терминалом» была оболочка внешнего интерфейса этой программы, а «консолью» было физическое соединение с компьютером (клавиатура / экран).
Существует разница в зависимости от того, какую ОС вы используете. «Стандартная» оболочка BASH , который обычно доступен во всех версиях Linux / Unix. Windows использует совершенно другую оболочку.
Разницу между консолью и оболочкой я не понимаю, но могу сказать, чем терминал отличается от оболочки.
Терминал является ( согласно википедии ) "последовательный компьютерный интерфейс для ввода и отображения текста. Информация представляется в виде массива предварительно выбранных сформированных символов".
Вы можете использовать терминал для взаимодействия с оболочкой, но вы также можете использовать его для взаимодействия с текстовый графический интерфейс иногда называют Пользовательский интерфейс терминала , Например:
В каждом случае элементы графического интерфейса «рисуются» текстом, а не пикселями.
Для более подробного описания: https://askubuntu.com/a/506628/130518
Я опишу наиболее нормальный вариант использования этого в следующем тексте.
Терминал использования как ад. Оболочка может работать без терминала.
Относиться к предметам быта:
Еще один способ взглянуть на это: ваши уши (вход) и рот (выход) являются терминалами для звука. Ваш мозг интерпретирует эти звуки, используя особую оболочку (обработку).
Терминал для нас, людей, поэтому мы можем читать и писать в / из оболочки. Оболочки могут работать в фоновых процессах, которые не требуют взаимодействия с человеком, например Работа cron, и, следовательно, не требует терминала.
Несколько примеров существующих терминалов:
Несколько примеров существующих оболочек:
Я только написал, как эти два обычно работают, есть другие способы, которыми они работают, но это для более опытного пользователя.
prompt
и дажеcommand line
?