Яка різниця між оболонкою, консоллю та терміналом?


188

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


8
а про що promptі навіть command line?
n611x007

1
Погляньте на це питання з Unix & Linux: unix.stackexchange.com/questions/4126/…
Flimm

4
Моя дружина сказала "чорний екран"
Кенджі Ногучі

Відповіді:


168

У світі Linux вони можуть виглядати однаково з точки зору користувача на клавіатурі. Відмінності полягають у тому, як вони взаємодіють між собою.

Оболонки є програма , яка фактично обробляє команди і повертає висновок. Більшість оболонок також керують процесами переднього плану та фонових зображень, історією команд та редагуванням командного рядка. Ці функції (та багато іншого) є стандартними bash, найпоширенішими оболонками в сучасних системах Linux.

Термінал відноситься до програми обгортки , яка проходить оболонку. Десятиліття тому це був фізичний пристрій, що складався з трохи більше, ніж монітор і клавіатура. Оскільки системи unix / linux додали кращих багатопроцесорних та віконних систем, ця концепція терміналу була абстрагована у програмному забезпеченні. Тепер у вас є такі програми, як Gnome Terminal, який запускає вікно в середовищі вікон Gnome, в якому буде запущена оболонка, в яку ви можете вводити команди.

Консоль являє собою особливий вид терміналу . Історично консоль являла собою єдину клавіатуру та монітор, підключений до спеціалізованого послідовного порту консолі на комп'ютері, який використовується для прямого зв’язку на низькому рівні з операційною системою. Сучасні системи Linux надають віртуальні консолі . До них можна отримати комбінації клавіш (наприклад, Alt+ F1або Ctrl+ Alt+ F1; функціональна клавіша містить номери різних консолей), які обробляються на низьких рівнях операційної системи Linux - це означає, що немає спеціальної служби, яка повинна бути встановлена ​​та налаштована для запуску . Взаємодія з консоллю також здійснюється за допомогою програми оболонки .


1
Перед терміналами були монітори з клавіатурами, вони були телетайпами - свого роду електричною машинкою. en.wikipedia.org/wiki/Teleprinter
Кевін Панько

13
Консоль іноді означає "клавіатуру та монітор, фізично підключений до цього комп'ютера". Наприклад, "Я ввійшов з консолі, оскільки сервер не відповідав мережі."
Кевін Панько

1
@Doug Harris: Чи можете ви додати деякі фотографії обладнання, про яке ви говорите?
кігті

1
Коли я був у коледжі наприкінці 1980-х, я багато працював над терміналами DEC VT220 - en.wikipedia.org/wiki/VT220 - Це хороший приклад фізичного пристрою, який я описав.
Дуг Харріс

5
Отже, якщо термінали та консолі в сучасний час кожен реалізується в програмному забезпеченні - яка різниця між ними (зараз)?
Гевін Надія

15

Оболонка - це програма, яка створює підказку і чекає, коли ви введете команди. Він виконує їх, а потім друкує ще одне підказку. Отже, як CMD в Windows, або Bash в Unix. Він може працювати в терміналі або на консолі.

Спочатку консоль була фізичною річчю, пульт управління. Під термінами обчислення зазвичай означає дисплей, який ви бачите до запуску GUI або після його закінчення; іноді ви можете переключитися на його відображення замість GUI. Це місце, де операційна система друкує повідомлення про помилки. На багатокористувацькому комп'ютері це фактично прикріплений до комп'ютера дисплей. Просто для того, щоб вас заплутати, в Windows це також може означати вікно з командною оболонкою, тобто термінал.

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


2

Термінал - це текстовий інтерфейс (можливо, до оболонки)

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

Термінал знаходиться ( згідно Вікіпедії ) «послідовний комп'ютерний інтерфейс для введення тексту і відображення. Інформація представлена в вигляді масиву попередньо обраних символів , утворених».

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

  • Vim має елементи графічного інтерфейсу, включаючи номери рядків та вкладені імена
  • У Nano є елементи GUI, включаючи довідкове меню команд
  • Tmux має елементи GUI, включаючи рядок стану та розділові лінії між панелями
  • Minicom має елементи GUI, включаючи меню та панель стану

У кожному випадку елементи графічного інтерфейсу "намальовані" текстом, а не пікселями.


Я не впевнений, що таке визначення воно базується лише на тексті. Певним чином деякі графічні інтерфейси можна вважати терміналами imo.
jiggunjer

2

Для початківців-початківців

Більш детальний опис: https://askubuntu.com/a/506628/130518

  • terminal = середовище введення / виводу тексту
  • консоль = фізичний термінал
  • shell = інтерпретатор командного рядка

Я опишу найбільш звичайний випадок використання для цього в наступному тексті.

Термінал використовує оболонку. Оболонка може працювати без терміналу.

Що стосується повсякденних предметів:

  • Термінал -> Екран телевізора у вашому будинку
  • Shell -> Програма, що працює на екрані телевізора

Ще один спосіб його погляду: вуха (вхід) і рот (вихід) - це клеми для звуку. Ваш мозок є перекладачем цих звуків, використовуючи певну оболонку (обробку).

Термінал призначений для нас, тому ми можемо читати і записувати в / з оболонки. Оболонки можуть працювати в фонових процесах, які не потребують взаємодії з людьми, наприклад, робота з крон, а тому не потребує терміналу.

Кілька прикладів існуючих терміналів:

  • Командний рядок
  • guake
  • гном-термінал
  • термінатор

Кілька прикладів снарядів, які існують:

  • Баш
  • sh (оболонка Борна)
  • PowerShell [windows]
  • zsh (Z оболонка)

Я писав лише про те, як нормально працюють ці двоє, є й інші способи роботи, але це для більш досвідченого користувача.


1

Подумайте над іншим контекстом, тобто розвитком.
Навіть якщо ви не маєте глибоких знань щодо розробки, ви, мабуть, знаєте основи, тобто: ви редагуєте програму, подаєте її до компілятора або інтерпретатору, який створює складений додаток.
Консоль - це як редактор вашої програми; це допомагає вам у письмовій формі, але насправді нічого не виконує: після закінчення ви надсилаєте його до компілятора.

Ви можете використовувати бажаний редактор, vim, gedit, emacs, блокнот ++, Netbeans, eclise etc.etc, але наприкінці вони є просто різними інструментами: якщо ви пишете ту саму програму, вихід буде однаковим.
У цій метафорі оболонка є компілятором. Команди, які вводяться в термінал, надсилаються до оболонки, яка їх інтерпретує та виконує негайно.
Отже, хоча термінали є лише передніми для оболонки, оболонка містить фактичну мову, як це відбувається для компілятора.

Очевидно, що термінал не є саме текстовим редактором, головним чином тому, що він не створює файл, але надсилає текст до базової оболонки та отримує вихід з неї.

І оболонка не є компілятором, насправді вона інтерпретує вашу команду і виконує її негайно, а не створює виконуваний файл.

Навіть незважаючи на цю велику різницю, я вважаю, що ця метафора допомагає багато в розумінні цієї ідеї.


0

Насправді немає великої різниці. Зрештою, коли "оболонка" була програмою, "термінал" був оберткою для цієї програми, а "консоль" - фізичним підключенням до комп'ютера (клавіатура / екран).

Існує різниця залежно від того, яку ОС ви працюєте. "Стандартна" оболонка - це BASH , яка, як правило, доступна для будь-яких ароматів Linux / Unix. У Windows використовується зовсім інша оболонка.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.