Консоль (информатика)
В большинстве современных компьютеров консолью является комплект устройств интерактивного ввода-вывода, присоединённых к компьютеру непосредственно (не через сеть): дисплей, клавиатура, мышь. Консольный сеанс в многопользовательских операционных системах — это сеанс, осуществляемый человеком, сидящим непосредственно перед компьютером (в противоположность сеансу удалённого доступа, например через ssh, X Window System, RDP и т. п.). Данная трактовка термина консоль безотносительна к типу пользовательского интерфейса: текстовому (CUI) или графическому (GUI).
Текстовые терминалы
В старых компьютерных системах консолью называлось устройство для вывода системных сообщений: АЦПУ или монитор. Впоследствии вместо АЦПУ стали применять мониторы, снабжённые знакогенератором, что позволило быстро и удобно организовывать диалог с пользователем. Отсюда происходит традиция называть программы с текстовым интерфейсом консольными.
В некоторых системах (в том числе в современных встраиваемых системах) в качестве консоли используется текстовый терминал, подключённый к последовательному порту.
Иные значения, имеющие отношение к информатике
- В различных программах и играх консолью стали называть окно для вывода системных сообщений и приёма команд (см.: интерфейс командной строки).
- Консолью называют программное обеспечение, реализующее текстовый интерфейс. В UNIX-подобных системах поддержка текстового интерфейса встроена в ядро. в Microsoft Windows — оболочка для управления системной конфигурацией Windows. Существует также специальный тип окна, используемый текстовыми программами (ошибочно называемый окном MS-DOS, из-за использования коммандного интерпретатора DOS, в ранних версиях Windows) — такие окна также могут быть названы консольными. — синоним приставки.
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое «Консоль (информатика)» в других словарях:
Консоль (значения) — Консоль: Консоль (архитектура) архитектурный элемент, горизонтально выступающий из стены. Консоль (авиация) часть крыла самолёта, стыкуемая к центроплану. Консоль комплект устройств интерактивного ввода вывода (дисплей,… … Википедия
Консоль — У этого термина существуют и другие значения, см. Консоль (значения). Содержание 1 Комплект устройств ввода вывода 1.1 Современные консоли … Википедия
Стандартные потоки — У этого термина существуют и другие значения, см. Поток. Стандартные потоки ввода вывода в системах типа UNIX (и некоторых других) потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций … Википедия
STDOUT — Стандартные потоки ввода вывода в системах типа потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска… … Википедия
Stdin — Стандартные потоки ввода вывода в системах типа потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска… … Википедия
Stderr — Стандартные потоки ввода вывода в системах типа потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска… … Википедия
Stdout — Стандартные потоки ввода вывода в системах типа потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска… … Википедия
Philips Healthcare — Содержание 1 Общие сведения 2 Области деятельности Philips Healthcare … Википедия
Деструктор — У этого термина существуют и другие значения, см. Деструкторы (экология). Деструктор специальный метод класса, служащий для деинициализации объекта (например освобождения памяти). Содержание 1 Деструктор в Delphi 2 Деструктор в С++ … Википедия
Делегат (программирование) — Делегат (англ. delegates) структура данных, указывающая на статические методы или методы экземпляра класса в .NET Framework[1][2][3][4]. Делегаты используются, в … Википедия
Краткое введение в терминалы и консоль
Очень сжатое боевое описание «что есть псевдо-терминал» и «консоль».
Итак, во-первых, определимся с тем, что такое консоль: консоль это программа, которая принимает от пользователя кнопки, а от соединения с компьютером — буквы на экран и спец. команды по рисованию картинки на экране.
Терминал — обобщённое название как программы, так и специальной железки (таких больше нет в природе). Особое исключение — когда вы запускаете путти или ещё кого-то для подключения к последовательному порту коммутатора/рутера/модема (или даже сервера), то вы выступаете (точнее компьютер с путти выступает) в роли терминала (название «терминал» — потому что терминирует кабель (то есть висит на самом конце) ).
Как легко понять по кабелю, есть два конца: терминал и то, что ему посылает байтики в кабель.
Когда запускается шелл, то он получает в своё распоряжение виртуальное устройство /dev/tty, которое у каждого процесса своё — это «обратная» часть терминала. Передняя часть в случае кабеля реализуется путти+компьютер, в случае консоли компьютера, специализированным ядерным драйвером (виртуальными консолями). Важно: драйвер эмулирует наличие терминала.
Существует интерфейс unix98 (/dev/ptmx), который позволяет создать парочку из «входа и выхода» для всех обратившихся программ. В этом случае одна половинка изображает из себя «обратную» половинку, а вторая — консоль. Используется, в частности, openssh’ем и x’овыми терминалками.
В этом месте много путаницы, но правило простое: с одной стороны тот, кто рисует, с другой — тот, кто говорит, что рисовать. С той стороны, с которой рисуют, с той же находится и пользователь с клавиатурой. Его данные поступают на противоположную сторону к программе.
В качестве самой частой программы со стороны «программы» выступает getty разных видов (mgetty, agetty и т.д.), задачей которой является выставление скорости работы канала и запуск команды login для ввода пароля.
В качестве передней части (рисующей байтики) выступает либо виртуальная консоль линукса, либо программа-терминалка (почти любая), либо находящийся за последовательным шнурком терминал (например, другой компьютер).
Каждое устройство по рисованию (терминал, виртуальная консоль и т.д.) имеют свой набор возможностей (поддерживаемых символов и команд). Тип терминала задаётся переменной TERM, но только в смысле, что он говорит программам, с каким терминалом они работают. Невозможно переменной TERM заставить терминал эмулировать другие терминалы — он про эту переменную ничего не знает.
Внезапное применение: KVM, XEN (и, я не уверен, но, кажется, OpenVZ) используют этот механизм для доступа к консоли виртуальных машин: в виртуальной машине создаётся специализированное устройство, взаимодействующее с демоном в dom0. С точки зрения domU — у него есть последовательное устройство для терминала. Чтобы на этом устройстве увидеть строчку login, нужно прописать в inittab строчку с вызовом getty и разрешить логин (/etc/securetty).
В dom0 демон видит последовательное устройство от domU, создаёт соответствующий псевдотерминал с помощью /dev/ptmx). Созданные устройства для подключения терминалов появляются в /dev/pts/*. Помимо этого consoled пишет в xenstore кому какой домен соответствует, специализированные терминалки (xenconsole) умеют это читать и выполнять. Когда даётся команда xl console (xm console), то она всего лишь вызывает xenconsole с заданным параметром.
Вместо xenconsoled можно использовать любую другую терминалку — хоть minicom, хоть cu, хоть socat, хоть putty. После подключения к консоли правильным является задать тип используемой консоли (set TERM=linux или set TERM=xterm, установка в vt100 даст чёрно-белый экран).
Ровно так же можно организовать подключение к машине по модему (если кто их ещё помнит) — модемы просто «удлиняют» последовательный порт на N километров. С одной стороны нужно настроить модем на автоответ и повесить mgetty (и не забыть про /etc/securetty), с другой стороны нужно набрать номер и получить обычное сообщение login.
Это было очень сжатое и которое описание псевдотерминалов. Полное почти невозможно, ибо для полного понимания как это работает нужно начинать с телетайпов и устройства механических печатных машинок.
Основным моментом, который нужно осознать, является то, что в tty всегда есть два участника, один из которых умеет рисовать (сам, или выбрасывая содержимое на экран так, чтобы терминалка пользователя это нарисовала), а другой — даёт команды что рисовать и принимает последовательности нажатия кнопок.
Консольный ввод-вывод информации с примерами на C# и Windows Terminal
Консоль (Console)- характерная особенность ранних операционных систем (например, MS DOS), использующих интерфейс командной строки для интерактивного обмена информацией с пользователем. Консольные приложения используются и сейчас. По сравнению с графическим интерфейсом, интерфейс командной строки требует меньше системных ресурсов и предоставляет инструменты автоматизации для повторяющихся задач.
Наиболее яркими примерами интерфейсов командной строки (англ. Command line interface, CLI) являются: Командная оболочка Windows, PowerShell, а также Bash, доступная на всех платформах (наибольшее распространение Bash получил в Unix-системах и Mac, присутствует также в компонентах Подсистема Windows для Linux (англ. Windows Subsystem for Linux, WSL)).
В операционной системе Windows консоль называется окном командной строки, для вызова которой Вы можете пройти в меню Пуск — Командная строка. В 2019 году компания Micrsoft также представила Windows Terminal — современное консольное приложение для пользователей инструментов и оболочек командной строки, таких как Command Prompt, PowerShell и WSL.
Форма интерфейсов командной строки используется в основном для обработки сценариев команд с использованием последовательности операций чтения (для принятия данных путем ввода текстовой информации пользователем) и операций записи (в вывод консоли, для отображения результатов обратной связи).
На платформе Microsoft .Net Core такие операции в виде методов описаны в классе System.Console, предоставляющем базовую поддержку для приложений, считывающих и записывающих символы в консоль стандартных входных и выходных потоков.
Программный способ записи в вывод консоли
Для вывода информации на консоль применяются 2 ключевых метода класса Console — Console.WriteLine и Console.Write, отличие которых заключается в том, что WriteLine самостоятельно добавляет терминатор строки (разделитель строки) ко всему, что вы записали. Использование метода Write предполагает ручное разбиение строки на несколько путем добавления в запись вывода терминатора строки, где это необходимо.
Записывает указанные данные с текущим признаком конца строки в стандартный выходной поток.
Console.WriteLine(“Hello, World!”);
Console.WriteLine(“=Second Line=”);
Результатом вывода будет две строки.
Записывает текстовое представление заданного значения или значений в стандартный выходной поток без признака конца строки.
Console.Write(“Hello,”);
Console.Write(“ “);
Console.Write(“World!”);
Console.Write(Environment.NewLine);
Console.Write(“=Second Line=”);
Результат вывода этого примера идентичен.
Во втором примере для разделения строки используется в качестве терминатора свойство Environment.NewLine — это обеспечивает эффективный способ выбора комбинации символов конца строки, которая зависит от используемой вами платформы. Так, большинство Unix-систем применяет специальную комбинацию “\n” в качестве терминатора строки, тогда как Windows-системы “\r\n”.
Формирование строк
При выводе информации вы можете использовать операторы + или += , интерполяцию строк и иные методы для объединения и формирования строковых переменных.
Программный способ ввода информации с консоли
Как и запись в вывод, класс Console предоставляет различные методы для чтения ввода от пользователя.
Метод Console.ReadLine
Считывает набор символов до тех пор, пока не найдет признак окончания или новой строки, и возвращает все, что он считает, как строковое значение.
Console.WriteLine(“What is your name?”);
string response = Console.ReadLine();
Console.WriteLine(“Hello, “ + response+“!“);
Метод Console.Read
Считывает следующий символ в строке и возвращает его как код целочисленного символа.
Console.WriteLine(“Please, type anything: “);
int value = Console.Read();
Console.Write(“You typed: “ + (char)value);
В отличие от ReadLine , метод Read возвращает по одному символу за раз, пока не достигнет конца ввода. Read фактически не возвращает строку, он возвращает целое число, представление ASCII введенного символа. В примере используется функция char() для преобразования полученного целого числа, чтобы получить действительно введенный символ.
Метод Console.ReadKey
Считывает следующий символ в строке и возвращает его как экземпляр ConsoleKeyInfo.
ConsoleKeyInfo описывает нажатую клавишу, включая символ, представленный этой клавишей, и состояние управляющих клавиш-модификаторов (например, Shift, Alt и др.). Нижеследующий пример ожидает нажатия клавиши Enter.