Короткий ответ:
- терминал = среда ввода/вывода текста
- приставка = физический терминал
- ракушка = интерпретатор командной строки
Длинный ответ:
Консоль и терминал тесно связаны между собой. Первоначально они означали часть оборудования, с помощью которого вы могли взаимодействовать с компьютером: в первые дни 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[D
→backward-char
). - Версия строки, история ввода и завершение предоставляются оболочкой.
- Вместо этого терминал может предоставить свою собственную версию строки, историю и завершение и отправить строку в оболочку только тогда, когда она будет готова к выполнению. Единственным распространенным терминалом, который работает таким образом, является
M-x shell
в Emacs.
- Вместо этого терминал может предоставить свою собственную версию строки, историю и завершение и отправить строку в оболочку только тогда, когда она будет готова к выполнению. Единственным распространенным терминалом, который работает таким образом, является
- Вывод: оболочка выдает такие инструкции, как “display
foo
”, “переключите цвет переднего плана на зеленый”, “переместите курсор на следующую строку” и т.д. Терминал действует в соответствии с этими инструкциями. - Подсказка - это чисто концепция оболочки.
- Оболочка никогда не видит выходные данные команд, которые она выполняет (если только они не перенаправлены). История вывода (прокрутка назад) - это чисто терминальная концепция.
- Копирование и вставка между приложениями обеспечивается терминалом (обычно с помощью мыши или последовательностей клавиш, таких как Ctrl+Shift+V или Shift+Insert). Оболочка также может иметь свой собственный внутренний механизм копирования-вставки (например Meta+W и Ctrl+Y).
- Контроль работы (запуск программ в фоновом режиме и управление ими) в основном выполняется оболочкой. Однако именно терминал обрабатывает такие комбинации клавиш, как Ctrl+C чтобы завершить работу на переднем плане и Ctrl+Z чтобы приостановить его.
Переработанный из Unix и Linux