Программа терминал что это такое

Содержание

Как использовать Терминал в Windows 7?

Чтобы запустить Cmd, просто щелкните поле поиска в меню «Пуск» или на панели задач и введите «cmd.» Когда появится значок командной строки, щелкните его.

Что такое Терминал в Windows 7?

Терминал Windows является новое, современное, быстрое, эффективное, мощное и производительное приложение-терминал для пользователей инструментов и оболочек командной строки например, командная строка, PowerShell и WSL.

Как открыть окно терминала?

Чтобы получить к нему доступ, щелкните правой кнопкой мыши (или нажмите и удерживайте) логотип Windows на панели задач или одновременно нажмите клавиши Windows + X на клавиатуре. В меню WinXобратите внимание на записи Windows Terminal и Windows Terminal (Admin). Второй запускает приложение с правами администратора.

Есть ли в Windows 7 терминал?

На компьютере с Windows 7 эквивалент Терминала программа командной строки. Нажмите кнопку «Пуск», чтобы открыть меню «Пуск». Откройте меню «Все программы», затем выберите «Стандартные».

Telnet, SSH, консоль и терминал — что это и зачем нужно?

Есть ли в Windows терминал?

Терминал Windows является современное терминальное приложение для пользователей инструментов командной строки и оболочек, таких как командная строка, PowerShell и подсистема Windows для Linux (WSL).

CMD — это терминал?

Итак, cmd.exe — это не эмулятор терминала потому что это приложение Windows, работающее на машине Windows. Не нужно ничего подражать. Это оболочка, в зависимости от вашего определения оболочки. Microsoft считает Windows Explorer оболочкой.

Как восстановить Windows 7 с помощью командной строки?

Если у вас нет установочного диска

  1. Перезагрузите компьютер.
  2. Нажмите F8, когда появится логотип Windows 7.
  3. Выберите «Восстановить компьютер». …
  4. Нажмите Enter.
  5. Выберите командную строку.
  6. Когда он откроется, введите необходимые команды: bootrec / rebuildbcd.
  7. Нажмите Enter.

Как запустить сеанс терминала?

Подключиться к терминальной сессии

  1. Выберите «Пуск»> «Все программы»> «Micro Focus»> «Хост Performance Center»> «Дополнительные настройки»> «Конфигурация агента Performance Center». Откроется диалоговое окно «Конфигурация агента».
  2. Выберите «Включить службы терминалов» и нажмите «ОК».
  3. Когда будет предложено перезапустить агент, нажмите OK.

Есть ли в Windows 10 встроенная терминальная программа?

Терминал Windows — это интерфейс командной строки с несколькими вкладками, который есть у Microsoft. разработан для Windows 10 в качестве замены Консоль Windows. Он может запускать любое приложение командной строки, включая все эмуляторы терминала Windows, на отдельной вкладке.

Терминал Windows, работающий в Windows 10
Лицензия MIT License
Cайт aka.ms/терминал

Какой терминал лучше всего подходит для Windows?

Топ-15 эмуляторов терминала для Windows

Terminal в Kali Linux — Как пользоваться? | Путь хакера | UnderMind

  1. Cmder. Cmder — один из самых популярных эмуляторов переносных терминалов, доступных для ОС Windows. …
  2. Эмулятор терминала ZOC. …
  3. Эмулятор консоли ConEmu. …
  4. Эмулятор консоли Mintty для Cygwin. …
  5. Эмулятор MobaXterm для удаленных вычислений. …
  6. Бабун — оболочка Cygwin. …
  7. PuTTY — Самый популярный эмулятор терминала. …
  8. Китти.

Источник: frameboxxindore.com

Работа в терминале Linux для начинающих

Все новички Linux уже, наверное, слышали про терминал, или как его еще называют командную строку. Ведь присутствие и сложность терминала — это один из основных аргументов оппонентов Linux. Возможно, вы уже сталкивались с командной строкой в Windows на практике и уже знаете что это такое.

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

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

Что такое терминал Linux?

Применение терминала началось очень давно. Еще до того как была создана DOS и не существовало никакого графического интерфейса. В далеких восьмидесятых годах операционная система Unix только начинала развиваться. Пользователям нужно каким-то образом взаимодействовать с системой и самый простой способ — это использование команд. Вы вводите команду, система вам возвращает ответ.

С тех пор, такой способ ввода использовался во многих системах, в том числе DOS и OS/2 от Apple, пока не был придуман графический интерфейс. Затем текстовый режим терминала был успешно вытеснен, но его до сих пор продолжают использовать там, где это нужно.

Выше, под терминалом мы понимали то место, где можно вводить команды и получать на них ответ от компьютера. Это может быть текстовый режим Linux или же открытое в графическом режиме окно терминала. В Linux часто встречаются слова: консоль, терминал, командная строка, командная оболочка, tty, эмулятор терминала. Все они относятся к терминалу, но означают немного разные вещи. Перед тем как перейти дальше давайте разберемся с терминами, чтобы называть все своими именами.

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

Консоль — это физическое оборудование для управления сервером. Когда к серверу нет доступа из сети, для управления им можно использовать только консоль.

TTY — это файл устройства, который создается ядром и предоставляет доступ к терминалу для программ. Это могут быть файлы /dev/tty для постоянных текстовых терминалов и /dev/pts/* для эмуляторов терминалов. Вы можете выполнить команду или отправить сообщение просто записав данные в этот файл, и также получить результат, прочитав данные из этого файла.

Эмулятор терминала — это графическая программа, которая предоставляет вам доступ к tty или pts терминалу. Например, Gnome Terminal, Konsole, Terminix, Xterm и многие другие.

Командная оболочка — устройство tty занимается только передачей и приемом данных, но все эти данные должен еще кто-то обрабатывать, выполнять команды, интерпретировать их синтаксис. Командных оболочек достаточно много, это bash, sh, zsh, ksh и другие, но чаще всего применяется Bash.

Ну и командная строка — это то место куда вы будете вводить свои команды, приглашение терминала для ввода.

Теперь, когда мы разобрались что такое терминал Linux и знаем все основные принципы, перейдем к практике работы с ним.

Как открыть терминал Linux?

Есть несколько способов получить доступ к терминалу. Ваша система инициализации по умолчанию создает 12 виртуальных терминалов. В одном из них — обычно седьмом, запущена ваша графическая оболочка, но все другие могут быть свободно использованы. Для переключения между терминалами можно использовать сочетания Ctrl+Alt+F1-F12. Для авторизации нужно будет ввести логин и пароль.

Читайте также:
Что за программа МТС премиум

Это текстовые терминалы без графического интерфейса, в них может быть не совсем удобно работать, но, зато такие терминалы будут полезны, если графический интерфейс не работает.

Второй способ позволяет открыть виртуальный терминал прямо в графическом интерфейсе с помощью эмулятора терминала. Эмулятор терминала linux работает с файлами в каталоге /dev/pts/* и еще называется псевдотерминалом, потому что не использует tty.

В Ubuntu вы можете запустить терминал linux нажав сочетание клавиш Ctrl+Alt+T:

terminal

Также его можно найти в меню приложений Dash:

terminal1

Как видите, открыть командную строку в linux очень просто.

Выполнение команд в терминале

Рассмотрим более подробно терминал Linux для начинающих. Как я уже говорил, терминал и файлы устройств tty отвечают только за передачу данных. За обработку команд отвечает командная оболочка, которой и передаются полученные от пользователя данные.

Вы можете набрать что-либо и убедиться, что это работает:

terminal2

Чтобы выполнить команду достаточно написать ее и нажать Enter.

terminal3

Более того, командная оболочка Bash поддерживает автодополнение, поэтому вы можете написать половину команды, нажать TAB и если на такие символы начинается только одна команда, то она будет автоматически дополнена, если же нет, то вы можете нажать два раза TAB, чтобы посмотреть возможные варианты.

terminal4

Точно такая же схема работает для путей к файлам и параметров команд:

terminal5

terminal6

В Windows вы о таком и мечтать не могли. Чтобы выполнить команду можно указать имя ее исполняемого файла или полный путь к нему, относительно корневой или любой другой папки. Важно заметить, что командная оболочка Linux, в отличие от Windows, чувствительна к регистру, а поэтому будьте внимательны при вводе команд и их параметров.

terminal7

По умолчанию работа в командной строке linux может выполняться с помощью большого количества команд, многие из них, например, для перемещения по каталогам, просмотра содержимого, установки ПО поставляются вместе с системой.

Экземпляр запущенной команды называется процесс. Когда в терминале Linux выполняется одна команда нам нужно подождать ее завершения, чтобы выполнить следующую.

Команды могут выполняться без параметров, что мы видели выше, или же с параметрами, которые позволяют указать данные, с которыми будет работать программа, также есть опции, с помощью которых можно настроить поведение. Большинство стандартных утилит придерживаются такого синтаксиса:

$ команда опции параметр1 параметр2.

Опции часто необязательны и уточняют тот или иной аспект работы программы. Они записываются в форме черточка и символ или двойная черточка и слово. Например -o или —output. Приведем пример для команды ls. Без опций и параметров:

terminal8

С параметром, указывающим какую папку посмотреть:

terminal9

С опцией -l, вывести в виде списка:

terminal10

В с опцией и параметром:

terminal10

Можно комбинировать две опции:

terminal11

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

Выводы

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

Источник: losst.pro

Что такое терминал и как его открыть и использовать?

Терминал – это интерфейс, в котором вы можете вводить и выполнять текстовые команды.

Зачем это нужно:

Выполнение некоторых задач с помощью Терминала может быть намного быстрее, чем с помощью графических приложений и меню. Еще одно преимущество – доступ к большему количеству команд и сценариев.

Обычная задача терминала по установке приложения может быть выполнена с помощью одной команды, по сравнению с перемещением через Центр программного обеспечения или Synaptic Manager.

Например, следующий код установит клиент BitTorrent Deluge:

sudo apt-get install deluge

Чтобы сохранить подробный список файлов в текущем дереве каталогов в файл с именем isting.txt :

find -type f> list.txt

Иногда вы также увидите следующие обозначения:

$ whoamicalum $ lsDownloads Documents

Это означает, что выполняется команда whoami , которая дает в качестве вывода calum . После этой команды выполняется ls , который выводит Downloads Documents .

# apt-get update

Это означает, что команда должна запускаться от имени пользователя root, то есть с использованием sudo :

$ sudo apt-get update

Обратите внимание, что символ # также используется для комментариев .

# эта команда даст ваше имя пользователяwhoami # следующая команда покажет содержимое текущего каталога

Как открыть терминал:

  • Откройте Dash (Super Key) или Applications и введите terminal
  • Используйте сочетание клавиш, нажав Ctrl + Alt + T .
  • Для более старых версий или версий Ubuntu: (Подробнее) Приложения → Стандартные → Терминал

Альтернативные имена для терминала:

  • Console
  • Оболочка
  • Командная строка
  • Командная строка

(хотя технически они означают разные вещи)

Общие команды и дополнительная информация

  • Документация Ubuntu: использование TheTerminal

Терминал – это ваш интерфейс к базовой операционной системе через оболочку, обычно bash. Это командная строка.

Раньше Терминал представлял собой экран + клавиатуру, который был подключен к серверу. Сегодня это обычно просто программа.

Вы можете открыть его через служебную часть меню приложений или нажмите Alt + F2 и введите gnome-terminal .

Улучшите этот ответ
отредактировано 6 июня ’14 в 02:40
Вики сообщества
3 версии, 3 пользователя 80%
queueoverflow
добавить комментарий |

Терминал – это ваш интерфейс с базовой операционной системой через оболочку, обычно bash. Это командная строка.

Раньше Терминал представлял собой экран + клавиатуру, который был подключен к серверу. Сегодня это обычно просто программа.

Вы можете открыть ее через служебную часть меню приложений или нажать Alt + F2 и введите gnome-terminal .

Терминал (также известный как консоль) – это приложение, в котором вы можете выполнять команды напрямую. Это выглядит так:

Вы можете запустить терминал из приложений -> Стандартные -> Терминал.
Если вы используете не Gnome, а KDE (Kubuntu), вы найдете его в: Начальное меню -> Приложения -> Система -> Konsole.

В вики Ubuntu есть статья о терминале, которая включает информацию о запуске терминала в Xubuntu и Lubuntu, а также базовый обзор часто используемых команд. Рекомендуется к прочтению, так как он также включает много примеров.

Улучшите этот ответ
отредактировал 7 июня ’17 в 07:57
Вики сообщества
3 версии, 3 пользователя 74%
Лекенштейн

«Оболочка» и «терминал» на самом деле не означают одно и то же. Например, на скриншоте выше, вероятно, терминал – это gnome-terminal . Оболочка, вероятно, bash . – Элиа Каган, 11 августа 2012, 22:16

Строго говоря, это действительно не одно и то же. Однако я упомянул об этом, потому что слово «оболочка» часто используется для обозначения места, где вы можете вводить команды. Случается, что терминал открывает эту оболочку, но начинающий пользователь не может напрямую связать ее. – Lekensteyn 12 авг., 12 ’12 в 9:30

добавить комментарий |

Терминал (также известный как консоль) – это приложение, в котором вы можете выполнять команды напрямую. Это выглядит так:

Вы можете запустить терминал из приложений -> Стандартные -> Терминал.
Если вы используете не Gnome, а KDE (Kubuntu), вы найдете его в: Начальное меню -> Приложения -> Система -> Konsole.

В вики Ubuntu есть статья о терминале, которая включает информацию о запуске терминала в Xubuntu и Lubuntu, а также базовый обзор часто используемых команд. Рекомендуется к прочтению, так как он также включает много примеров.

Терминал – это интерпретатор команд. Терминал – это объект, который принимает ввод от пользователя и имеет дело с компьютером, а не пользователь напрямую с компьютером. Если бы пользователю приходилось иметь дело непосредственно с компьютером, он бы мало что сделал, поскольку компьютер понимает только строки из 1 и 0

Пример

Читайте также:
Acronis это что за программа

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

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

Улучшить этот ответ
изменено 13 апр. ’17 в 12:25
Вики сообщества
2 версии
Qasim
добавить комментарий |

Терминал – это интерпретатор команд. Терминал – это объект, который принимает ввод от пользователя и имеет дело с компьютером, а не пользователь имеет дело непосредственно с компьютером.. Если бы пользователю приходилось иметь дело непосредственно с компьютером, он бы мало что сделал, поскольку компьютер понимает только строки из 1 и 0

Пример

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

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

Проще говоря, Терминал – это CLI (интерфейс командной строки) для взаимодействия с программами на компьютере.

В Ubuntu вы можете открыть терминал:

  • , нажав Ctrl + Alt + T
  • , нажав клавишу Super , введите «терминал» и затем нажмите Enter .

Терминал можно использовать для различных задач, таких как:

  • Установка, обновление и удаление программного обеспечения.
  • Для выключения, перезагрузки, сна …
  • Создание и удаление файлов и папок.
  • И многое другое …

Улучшить этот ответ
отредактировал 13 дек. ’20 в 9:59
Вики сообщества
2 ревизии, 2 пользователи 61%
Bibekdhkl
добавить комментарий |

Проще говоря, Терминал – это CLI (интерфейс командной строки) для взаимодействия с программами в компьютер.

В Ubuntu вы можете открыть терминал:

  • , нажав Ctrl + Alt + T
  • , нажав Super , введите “терминал” и затем нажмите Enter .

Вы можете использовать терминал для различных задач, например:

  • Установка, обновление и удаление программного обеспечения.
  • Для выключения, перезагрузки, сна …
  • Создание и удаление файлов и папок.
  • Многие другие …

Как загрузить в консольный (текстовый) режим с помощью Debian/Ubuntu, Fedora, Arch Linux/Manjaro и др.

В этой статье объясняется, как загрузить дистрибутив Linux, такой как Debian, Ubuntu, Fedora, Arch Linux/Manjaro и т. д., в консольном режиме, временно или постоянно.

Инструкции в этой статье должны работать с любым дистрибутивом Linux, который использует systemd (для постоянного режима ниже) и GNU GRUB (для временного режима), но я лично пробовал это только с Debian , Ubuntu, Manjaro и Fedora.

Загрузка в консольном режиме (текстовый режим/tty) позволяет вам войти в вашу систему из командной строки (как обычный пользователь или как пользователь root, если он включен), без использования графического пользовательского интерфейса . Это полезно в случае, если ваша система не загружается при использовании графического режима, или, возможно, у вас есть компьютер под управлением Linux, для которого вы не регулярно используете графический интерфейс и ssh, поэтому вы хотите сэкономить некоторые системные ресурсы, загрузка в текстовом режиме. Но независимо от причины в этой статье показано, как загрузиться с консоли/text/tty в Linux.

Случай A. Временная загрузка в консольный режим (текстовый режим)

Используя эти инструкции, ваш компьютер загрузится с консолью только для текущей загрузки. После перезагрузки компьютер загрузится нормально, поэтому эти изменения временные.

Для временной загрузки в консольный режим (tty), запустите компьютер и сразу после заставки BIOS/UEFI нажмите и удерживайте Shift (BIOS) или несколько раз нажмите клавишу Esc (UEFI), для доступа к меню GRUB.

2. Когда вы увидите экран GNU GRUB , с выбранной первой записью из меню, нажмите e ключ. Это позволяет вам редактировать параметры ядра перед загрузкой.

Ищите строку, которая начинается с linux (используйте Up/Down/ Клавиши со стрелками влево/вправо для навигации); vmlinuz также должен находиться в той же строке. В конце этой строки (вы можете поместить курсор, используя клавиши со стрелками в начале строки, затем нажмите клавишу End , чтобы переместить курсор в конец этой строки) добавьте пробел , за которым следует число 3 . Больше ничего не меняйте.

Этот 3 представляет цель systemd multi-user.target , которая сопоставлена старые, теперь устаревшие уровни запуска 2, 3 и 4 (используемые для запуска и остановки групп служб). Например, старый уровень выполнения 5 сопоставлен с systemd graphical.target , и с его помощью запускается … как вы уже догадались, графический (GUI) цель. Подробнее о целях systemd см. На этой странице.

Пример №1. Так выглядит строка, начинающаяся с “linux” для Ubuntu 18. 04 LTS (он не обязательно должен быть идентичным для вас, это просто для того, чтобы вы поняли):

linux/boot/vmlinuz-4.18 .0-15-generic root = UUID = 1438eb20-da3d-4880-bb3a-414e +++ 0a929 ro quiet splash $ vt_handoff

И вот как строка начинается с ” linux “смотрит после добавления 3 в конце:

linux/boot/vmlinuz-4.18.0- 15-generic root = UUID = 1438eb20-da3d-4880-bb3a-414e +++ 0a929 ro quiet splash $ vt_handoff 3

Вот как выглядит строка, начинающаяся с “linux” для Fedora 31 (для вас она не идентична, просто чтобы вы поняли):

linux ($ root)/vmlinuz-5.3.13-300.fc31.x86_64 root =/dev/mapper/fedora_localhost — live-root ro resume =/dev/mapper/fedora_localhost — live-swap rd.lvm. lv = fedora_localhost-live/root rd.lvm.lv = fedora_localhost-live/swap rhgb quiet

А вот как это выглядит после добавления 3 в конце строки:

linux ($ root)/vmlinuz-5.3.13-300.fc31.x86_64 root =/dev/mapper/fedora_localhost — live-root ro resume =/dev/mapper /fedora_localhost — live-swap rd.lvm.lv = fedora_localhost-live/root rd.lvm.lv = fedora_localhost-live/swap rhgb quiet 3

3. После этого нажмите Ctrl + x или F10 для загрузки в консольный (текстовый) режим.

Чтобы перезагрузить систему в режиме консоли, используйте команду reboot ( sudo reboot ).

Стоит отметить, что дистрибутивы Linux на базе Debian и Ubuntu (включая Linux Mint, Elementary OS, Pop! _OS, Zorin OS и т. д.) имеют режим восстановления, встроенный в меню GNU GRUB. Поэтому, если вы используете Debian/Ubuntu или какой-либо дистрибутив Linux на его основе, перейдите в меню GNU GRUB, как описано выше, затем выберите Дополнительные параметры и из появившегося нового списка выберите первая запись, которая заканчивается на (режим восстановления) . Выберите эту запись и нажмите клавишу Enter , и вы попадете в меню, которое, среди прочего, позволяет вам перейти к приглашению корневой оболочки – при выборе ваша система продолжит загрузку в командная строка, а не графический пользовательский интерфейс, что позволяет вам войти в систему, используя пароль root. Это позволяет получить доступ к файловой системе в режиме только для чтения; для чтения-записи используйте mount -o remount, rw/ . Используйте это, например, для сброса утерянного пароля пользователя/администратора в Ubuntu, Linux Mint, Elementary OS и т. Д.

Читайте также:
Программа форинт что это

Случай Б. Постоянная загрузка в текстовом режиме (режим консоли)

Заставить вашу систему Linux всегда загружаться в режиме консоли (text/tty) так же просто, как выполнить одну команду:

sudo systemctl set-default multi-user.target

Эта команда устанавливает текстовый режим в качестве цели systemd по умолчанию (уровень запуска, используемый быть вызванным перед systemd). После выполнения этой команды перезагрузите систему, и она будет каждый раз автоматически загружаться в консольный/текстовый режим.

Не знаете текущую цель systemd, используемую в вашей системе? Используйте эту команду, которая покажет текущую установленную цель:

systemctl get-default

Extra Совет: с его помощью ваш компьютер Linux загрузится с tty1 (текстовая виртуальная консоль). Вы можете переключиться на другую виртуальную консоль, используя Ctrl + Alt + F2 для tty2, Ctrl + Alt + F3 для tty3 и так далее до tty7.

Если вы хотите отменить это изменение и заставить вашу систему Linux загружаться в графическом режиме по умолчанию, используйте:

sudo systemctl set-default graphical.target

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

Вам может понравиться: Как изменить GRUB Порядок загрузки или запись загрузки по умолчанию в Ubuntu, Linux Mint, Debian или Fedora с настройщиком Grub

Источник: futurei.ru

Анатомия терминала. Осваиваем текстуальную графику

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

info

Это перевод статьи Ара­ма Дре­веке­нина Anatomy of a Terminal Emulator, допол­ненный врез­ками от редак­ции «Хакера». Перевод и текст вре­зок — Юрий Язев.

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

При­меры кода я при­вел на язы­ке Rust, в то же вре­мя я буду ста­рать­ся делать их как мож­но про­ще и короче, что­бы даже нез­накомо­му с Rust прог­раммис­ту было все понят­но. Кро­ме того, я под­робно опи­шу зна­чимые час­ти кода. Мы рас­смот­рим работу эму­лято­ра тер­минала в Linux, но с таким же успе­хом ты можешь при­менить све­дения в любой дру­гой Unix-подоб­ной сис­теме (нап­ример, в macOS).

Ма­тери­ал рас­счи­тан на нович­ков в раз­работ­ке тер­миналь­ных при­ложе­ний, тем не менее я ста­рал­ся сде­лать его полез­ным и для ветера­нов раз­работ­ки при­ложе­ний коман­дной стро­ки.

Другие статьи в выпуске:

Xakep #275. Карманные шпионы

  • Содержание выпуска
  • Подписка на «Хакер» -60%

Установка Rust

Что­бы уста­новить Rust в Linux или macOS, надо выпол­нить в коман­дной стро­ке сле­дующую коман­ду:

curl —proto ‘=https’ —tlsv1 .2 -sSf https:/ / sh. rustup. rs | sh

В macOS ее выпол­нение про­ходит без суч­ка, без задорин­ки. Одна­ко в Linux могут воз­никнуть раз­ные проб­лемы, нап­ример свя­зан­ные с отсутс­тви­ем curl . Если ты не хочешь тра­тить вре­мя на их решение, можешь уста­новить Rust из офи­циаль­ного репози­тория сис­темы. С 20-й вер­сии Ubuntu сре­ди ее пакетов есть Rust. В этом слу­чае в коман­дной стро­ке надо наб­рать сле­дующее:

sudo apt install rustc

Cargo

Вмес­те с ком­пилято­ром язы­ка Rust уста­нав­лива­ется сис­тема сбор­ки Cargo. Ее исполь­зуют, что­бы управлять про­екта­ми, а кро­ме это­го, она игра­ет роль пакет­ного менед­жера. С ее помощью соз­дают­ся, объ­еди­няют­ся, стро­ятся про­екты и ска­чива­ются зависи­мые биб­лиоте­ки.

Что­бы соз­дать про­ект, набери в кон­соли cargo new HelloRust .

В резуль­тате будет соз­дан про­ект с таким содер­жимым.

Содержимое папки с проектом

Ис­ходный код прог­раммы HelloRust содер­жится в фай­ле main. rs , который, в свою оче­редь, находит­ся в пап­ке src .

Файл Cargo. toml содер­жит метадан­ные опи­сания про­екта:

name = «HelloRust»
version = «0. 1. 0»
edition = «2022»
[ dependencies]

Кро­ме того, в нем ука­зыва­ются биб­лиоте­ки, исполь­зуемые для ком­пиляции прог­раммы (ниже клю­чево­го сло­ва [ dependencies] ). Все рас­смат­рива­емые в статье при­меры обра­щают­ся к либе nix = «0. 17. 0» .

Что­бы ском­пилиро­вать при­мер, надо выпол­нить коман­ду cargo build , находясь в пап­ке с про­ектом. А что­бы запус­тить про­ект на выпол­нение, нуж­но наб­рать коман­ду cargo run . Она не толь­ко запус­тит прог­рамму на выпол­нение, но и пересо­берет ее, если в исходный код будут вне­сены изме­нения.

Где писать Rust-код?

В любой удоб­ной для тебя IDE, под­держи­вающей под­свет­ку син­такси­са. Это в иде­аль­ном слу­чае. Пла­гины под­дер­жки язы­ка сущес­тву­ют для мно­гих сред, нап­ример VS Code. Но мож­но вос­поль­зовать­ся абсо­лют­но любым тек­сто­вым редак­тором. Это уже на твое усмотре­ние.

Ес­ли рас­смат­рива­емая тема тебе инте­рес­на, напиши об этом в ком­мента­рии. Мы подума­ем над новыми стать­ями, пос­вящен­ными это­му язы­ку.

Разные части терминала

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

Эму­лятор тер­минала име­ет длин­ную исто­рию, но мы скон­цен­три­руем­ся на тех вещах, которые под­разуме­вают­ся под этим сло­вом в наши дни. Как эму­лятор тер­минала (gnome terminal, alacritty, rxvt-unicode), так и коман­дная обо­лоч­ка (bash, zsh, fish) пред­став­ляют собой при­ложе­ния, выпол­няемые под управле­нием опе­раци­онной сис­темы.

Эму­лятор тер­минала — это гра­фичес­кое при­ложе­ние, которое пре­обра­зует пос­тупа­ющие из коман­дной обо­лоч­ки дан­ные и отоб­ража­ет их на экра­не. Обыч­но вывод тек­сто­вый, но могут быть исклю­чения. Их мы рас­смот­рим даль­ше.

Ко­ман­дная обо­лоч­ка (у нас рас­простра­нено корот­кое наз­вание shell) пре­дос­тавля­ет интерфейс к опе­раци­онной сис­теме, поз­воля­ет поль­зовате­лю вза­имо­дей­ство­вать с ее фай­ловой сис­темой, запус­кать про­цес­сы, а иног­да — выпол­нять скрип­ты.

Эти две прог­раммы соеди­няют­ся с помощью pty (pseudoterminal), который орга­низу­ет дву­нап­равлен­ный асин­хрон­ный канал свя­зи меж­ду ними. В одном нап­равле­нии pty переда­ет дан­ные от тер­минала к обо­лоч­ке (STDIN), во вто­ром — от обо­лоч­ки к тер­миналу (STDOUT). Дру­гими сло­вами, ког­да поль­зователь вво­дит коман­ды в тер­минал, пос­ледний пересы­лает их через канал STDIN псев­дотер­минала (pty) в обо­лоч­ку. С дру­гой сто­роны, ког­да обо­лоч­ка готова показать поль­зовате­лю резуль­тат на экра­не, она отправ­ляет дан­ные в тер­минал по каналу STDOUT псев­дотер­минала.

Как вид­но, у pty име­ются две сто­роны. Мы будем называть их «пер­вичная» и «вто­рич­ная», хотя в офи­циаль­ной докумен­тации они называ­ются master и slave. На пер­вичной сто­роне находит­ся эму­лятор тер­минала, на вто­рич­ной — коман­дная обо­лоч­ка. Тем не менее на вто­рич­ной сто­роне может рас­полагать­ся любая прог­рамма, ожи­дающая под­клю­чения тер­минала, нап­ример Vim или Top.

Пред­лагаю взгля­нуть на кар­тинку, демонс­три­рующую, как эта сис­тема работа­ет в целом, на при­мере коман­ды ls .

Процесс ls получает от операционной системы данные и передает их сначала командной оболочке, а та, в свою очередь, по каналу STDOUT pty эмулятору терминала

Как эмулятор терминала интерпретирует и отображает данные, полученные из командной оболочки?

Ког­да коман­дная обо­лоч­ка отправ­ляет текст тер­миналу, она исполь­зует весь дос­тупный ей набор инс­трук­ций. Ты мыс­лишь в пра­виль­ном нап­равле­нии, если наз­вал этот набор escape-сим­волами ANSI. Они исполь­зуют­ся, ког­да коман­дной обо­лоч­ке надо каким‑либо обра­зом фор­матиро­вать вывод: изме­нить цвет/стиль шриф­та или перемес­тить кур­сор вво­да. Что­бы уви­деть, как это работа­ет, давай напишем неболь­шую прог­рам­мку на Rust, которая соз­дает псев­дотер­минал (pty) и на вто­рич­ной сто­роне запус­кает пре­доп­ределен­ную в кон­крет­ной сис­теме коман­дную обо­лоч­ку. Таким обра­зом мы смо­жем уви­деть, какие дан­ные из недр сис­темы нам шлет shell.

Источник: xakep.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru