Что такое терминал в компьютере
Перейти к содержимому

Что такое терминал в компьютере

  • автор:

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

Терминал — это приложение для опытных пользователей и разработчиков, которое дает возможность взаимодействовать с операционной системой Mac через интерфейс командной строки. В Терминале можно вводить команды и скрипты (так называемые shell-скрипты) для выполнения задач на Mac.

Окно Терминала с командной строкой.

При открытии Терминала отображается простое окно с приглашением в командную строку. В Терминале доступен широкий выбор команд и параметров, которые можно использовать для выполнения любых задач: от простых до очень сложных. Подробнее об отображении и использовании команд в Терминале см. в статье Чтение справочных страниц UNIX (на английском языке) на сайте Apple для разработчиков.

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

В Терминале можно выполнять команды и скрипты, которые сообщают оболочке (shell), что необходимо сделать. Например, с помощью команды можно показать содержимое папки или запустить скрипт, автоматизирующий открытие приложения и выполнение определенной задачи.

Также с помощью простых скриптов в Терминале можно экономить время и автоматизировать часто выполняемые задачи. Когда Вам требуется автоматизация задач или работа со скриптами на быстрых низкоуровневых языках программирования, Терминал предоставляет легкий доступ к вводу и выводу командных оболочек Unix, в том числе BASH и ZSH.

Подробнее об использовании Терминала и создании скриптов см. в статье Основные сведения о shell-скриптах на сайте Apple для разработчиков.

Примечание. Приложение «Терминал» также может быть полезно при устранении проблем на Mac с помощью службы поддержки Apple. Рекомендуется не удалять это приложение с компьютера.

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

Терминал Windows — это современное ведущее приложение для предпочитаемых вами оболочек командной строки, таких как Командная строка, PowerShell и Bash (через подсистему Windows для Linux (WSL)). К его основным функциям относится поддержка нескольких вкладок, панелей, символов Юникода и UTF-8, а также модуль отрисовки текста с ускорением GPU, возможность создания собственных тем и настройки текста, цвета, фона и сочетаний клавиш.

Более общие сведения см. в статье Скотта Хансельмана (Scott Hanselman) Разница между консолью, терминалом и оболочкой или просмотрите видео Рича Тернера (Rich Turner) Что собой представляет оболочка командной строки?.

Несколько профилей, поддерживающих различные приложения командной строки

Любое приложение с интерфейсом командной строки можно выполнять в Терминале Windows. Это касается всех приложений: от PowerShell и Командной строки до Azure Cloud Shell и любого дистрибутива WSL, например Ubuntu или Oh-My-Zsh.

Разрыв табуляции (предварительная версия)

Вы можете вырвать вкладки в Терминал Windows и создать новые окна.

Вы также можете перетаскивать вкладки в существующие окна.

Настраиваемые схемы и конфигурации

В Терминале Windows можно настроить различные цветовые схемы и параметры. Сведения о настройке запроса с помощью холодных тем см. в руководстве по настройке пользовательского запроса PowerShell или WSL с помощью O My Posh , чтобы узнать, как создать собственную цветовую схему, перейдите на страницу «Цветовые схемы».

Настраиваемые действия

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

Например, для копирования текста из командной строки по умолчанию используются клавиши CTRL+SHIFT+C . Вы можете изменить его на CTRL+1 или другое сочетание. Для открытия новой вкладки по умолчанию используется сочетание клавиш CTRL+SHIFT+T , но его можно изменить на CTRL+2 . Для перехода на другие открытые вкладки по умолчанию используется сочетание клавиш CTRL+TAB . Его можно изменить на CTRL+- и использовать для создания новой вкладки.

Дополнительные сведения о настройке сочетаний клавиш см. на странице «Действия».

Поддержка символов Юникода и UTF-8

В Терминале Windows могут отображаться символы Юникода и UTF-8, например эмодзи и символы из различных языков.

Отрисовка текста с ускоренным GPU

Терминал Windows использует GPU для отрисовки текста, что обеспечивает повышенную производительность по сравнению с использованием интерфейса командной строки Windows по умолчанию.

Поддержка фоновых изображений

В окне Терминала Windows можно использовать фоновые изображения и изображения в формате GIF. Сведения о добавлении фоновых изображений в профиль см. на странице Профиль — внешний вид.

Command line arguments

Вы можете настроить запуск Терминала Windows в определенной конфигурации с помощью аргументов командной строки. Вы можете указать, какой профиль следует открыть на новой вкладке и какой каталог папки следует выбрать. Кроме того, терминал можно открыть с разделенными панелями и выбрать основную вкладку.

Например, чтобы открыть Терминал Windows из PowerShell с тремя панелями (на левой панели будет запущен профиль Командной строки, а правая панель будет разделена для PowerShell и ваш профиль по умолчанию с WSL), введите:

wt -p "Command Prompt" `; split-pane -p "Windows PowerShell" `; split-pane -H wsl.exe 

Сведения о настройке аргументов командной строки см. на этой странице.

Терминал

Как было показано в предыдущей лекции 1, основное средство общения с Linux — системная клавиатура и экран монитора, работающий в текстовом режиме. Вводимый пользователем текст немедленно отображается на мониторе соответствующими знаками, однако может и не отображаться, как в случае ввода пароля. Для управления вводом используются некоторые нетекстовые клавиши на клавиатуре: Backspace (он же ”Забой”) — для удаления последнего введенного символа или Enter — для передачи команды системе. Нажатие на эти клавиши не приводит к отображению символа, вместо этого вводимый текст обрабатывается системой тем или иным способом:

[ivan@localhost ivan]$ data -bash: data: command not found [ivan@localhost ivan]$ date Вск Сен 12 13:59:36 MSD 2004

Пример 2.1. Сообщение об ошибке

Вначале Иван ошибся, и вместо команды date написал data . В ответ он получил сообщение об ошибке, поскольку такой команды система не понимает. Затем (этого не видно в примере, но случилось именно так!) он снова набрал data , но вовремя одумался и, нажав клавишу Backspace , удалил последнее a , вместо которого ввел e , превратив data в date . Такая команда в системе есть, и на экране возникла текущая дата.

Диалог машины и пользователя неспроста выглядит как обмен текстами. Именно письменную речь используют люди для постановки и описания решения задач в заранее определенном, формализованном виде. Поэтому и задача управления системой может целиком быть представлена и решена в виде формализованного текста — программы. При этом машине отводится роль аккуратного исполнителя программы, а человеку — роль автора. Кроме того, человек анализирует текст, получаемый от системы: запрошенную им информацию и текст сообщения — текст, описывающий состояние системы в процессе решения задачи (например, сообщение об ошибке ”command not found”).

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

Терминалом может быть отдельное внешнее устройство, подключаемое к компьютеру через порт последовательной передачи данных (в персональном компьютере он называется ”COM port”). В роли терминала может работать (с некоторой поддержкой со стороны системы) и программа (например, xterm или ssh). Наконец, виртуальные консоли Linux — тоже терминалы, только организованные программно с помощью подходящих устройств современного компьютера.

Терминал — устройство последовательного ввода и вывода символьной информации, способное воспринимать часть символов как управляющие для редактирования ввода, сигналов и т. п. Используется для взаимодействия пользователя и системы.

Для приема и передачи текста терминалу достаточно уметь принимать и передавать символы, из которых этот текст состоит. Более того, желательно, чтобы единицей обмена с компьютером был именно один байт (один ascii-символ). Тогда каждая буква, набранная на клавиатуре, может быть передана системе для обработки, если понадобится. С другой стороны, типичный способ управления системой в Linux — работа в командной строке — требует построчного режима работы, когда набранный текст передается компьютеру только после нажатия клавиши Enter (что соответствует символу конца строки). Размер такой строки в байтах предугадать, конечно, нельзя, поэтому, работающий в построчном режиме терминал, ничем, по сути, не отличается от терминала, работающего в посимвольном режиме — за исключением того, что активность системы по обработке приходящих с этого терминала данных падает в несколько раз (обмен ведется не одиночными байтами, а целыми строками).

Свойство терминала передавать только символьную информацию приводит к тому, что некоторые из передаваемых символов должны восприниматься не как текстовые, а как управляющие (например, символы, возвращаемые клавишами Backspace и Enter ). На самом деле управляющих символов больше: часть из них предназначена для экстренной передачи команд системе, часть — для редактирования вводимого текста. Многие из этих символов не имеют специальной клавиши на клавиатуре, поэтому их необходимо извлекать с помощью клавиатурного модификатора Ctrl .

Команды, подаваемые с клавиатуры с помощью Ctrl , как и символы, передаваемые при этом системе, принято обозначать знаком ^ , после которого следует имя клавиши, нажимаемой вместе с Ctrl : например, одновременное нажатие Ctrl и А обозначается ^A .

Так, для завершения работы программы cat, которая построчно считывает данные с клавиатуры и выводит их на терминал, можно воспользоваться командой ^C или ^D :

[ivan@localhost ivan]$ cat Any Text Any Text ^C [ivan@localhost ivan]$ cat Any Text agaim^[[Dn Any Text again ^D [ivan@localhost ivan]$

Пример 2.2. Как завершить работу cat?

Одну строчку вида Any Tex. Иван вводит с клавиатуры (что отображается на экране), и после того, как Иван нажмет Enter , она немедленно выводится программой cat (что тоже отображается на экране). С каждой последующей строкой программа cat поступила бы аналогично, но в примере Иван оба раза завершил работу программы, в первом случае нажав ^C , а во втором — ^D . Команды оказали одинаковый эффект, но работают они по-разному: ^C посылает программе, которая считывает с клавиатуры сигнал аварийного прекращения работы, а ^D сообщает ей, что ввод данных с клавиатуры закончен и можно продолжать работу (поскольку программа cat больше ничего не делает, она завершается самостоятельно, естественным путем). Можно считать, что ^C — это сокращение от ”Cancel”, а ^D — от ”Done”.

В примере не показано, как, набирая первый cat , Иван вновь ошибся и написал ccat вместо cat . Чтобы исправить положение, он воспользовался клавишами со стрелочками: с помощью клавиши Стрелка влево подвел курсор к одному из c и нажал Backspace , а затем Enter . В режиме ввода команды это ему удалось, а при передаче данных программе cat клавиша Стрелка влево не сдвинула курсор, а передала целую последовательность символов: ^[ , [ и D . Дело в том, что на клавиатуре может быть так много разных нетекстовых клавиш, что на них не хватает ограниченного количества разных управляющих символов. Поэтому большинство нетекстовых клавиш возвращают так называемую управляющую последовательность, которая начинается управляющим символом (как правило — Escape , т. е. ^[ ), за которым следует строго определенное число обычных символов (для клавиши Стрелка влево — [ и D ).

То же самое можно сказать и о выводе управляющих последовательностей на терминал. Современный терминал имеет довольно много возможностей помимо простого вывода текста: перемещать курсор по всему экрану (чтобы вывести текст), удалять и вставлять строки на экране, использовать цвет и т. п. Всем этим заведуют управляющие последовательности, которые при выводе на экран терминала не отображаются как текст, а выполняются заранее заданным способом. В некоторых случаях управляющие последовательности, возвращаемые клавишами, совпадают с теми, что управляют поведением терминала. Поэтому-то Иван и не увидел Any Text agaim^[[Dn в выдаче cat: ^[[D при выводе на терминал перемещает курсор на одну позицию влево, так что было выведено Any Text agaim , затем курсор встал прямо над m и поверх него было выведено n . Если бы терминал имел вместо дисплея печатающее устройство, в этом месте обнаружилось бы нечто, состоящее из начертаний m и n .

Рис. 2.1. Интерфейс командной строки. Взаимодействие пользователя с компьютером посредством терминала.

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

  • передавать текстовые данные от пользователя системе;
  • передавать от пользователя системе немногочисленные управляющие команды;
  • передавать текстовые данные от системы пользователю;
  • (необязательно) интерпретировать некоторые данные, передаваемые от системы пользователю, как управляющие последовательности и соответственно обрабатывать их.

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

Почему исследователи до сих пор используют эмуляторы терминалов

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

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

Начнем с понимания значения слова «терминал». Терминал – это часть некой системы, обеспечивающая ее взаимодействие с внешней средой. Например, терминал является частью аэропорта, где производятся операции с пассажирами перед их отправкой в самолет или после прибытия самолета в аэропорт. То есть, терминал аэропорта – это точка входа и выхода в системе авиаперевозок, в которой персонал задает параметры для операций с пассажирами: кто, когда и куда отправляется. То же самое делает терминал в компьютере, только вместо пассажиров – данные, а вместо персонала – пользователь. Таким образом, терминал – это окно коммуникации между человеком и операционной системой.

До появления привычных нам графических интерфейсов люди пользовались текстовыми терминалами, в которые вводили команды при помощи клавиатуры, а результат вычислений выводился на экран. Однако, и по сей день терминал, точнее эмулятор терминала, есть в каждой операционной системе: в Windows – это приложение cmd.exe (Command Line или просто «Консоль»), в Linux и MacOS– программа Terminal.

Terminal в MacOS

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

Зачем нужен Терминал?

Есть три причины, которые делают Терминал незаменимым инструментом для исследователей, анализирующих большие массивы данных:

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

Разберем каждый из этих аспектов подробнее.

Терминал, как манипулятор файлов и папкок

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

Допустим, мне нужно переименовать фотографию и добавить к текущему названию дату, когда эта фотография была сделана. Что может быть проще, скажите Вы: «открой свойства файла, скопируй дату создания файла, закрой окно «Свойства» и вставь дату в название файла». Так и есть, все довольно просто, вот только повторить это действие нужно для всех фотографий на моем компьютере (а их у меня более 25 тысяч). Очевидно, что если я буду делать это подобным образом, то это задание отнимет у меня несколько недель.

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

Использование Терминала для создания скриптов

Другая важная особенность эмуляторов терминала – это возможность запуска в нем других программ, чтобы автоматизировать процессы в программах и обеспечить автономное взаимодействие между ними. Если входные и выходные данные этих программ оформить в виде файлов, то Терминал сможет запускать последовательно программы. Алгоритм будет напоминать цепочку из таких действий: запустить программу А, загрузить туда входные данные (файл А), экспортировать результаты анализа в файл B, закрыть программу A, запустить программу B, загрузить туда файл B, ну и так далее…

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

Управления суперкомпьютерами и серверами через Терминал

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

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

Заключение

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

В следующей статье мы рассмотрим как открыть Terminal на Linux и на MacOS, а также настроим его под себя для последующей удобной работы.

Комментарии: 6

Сентябрь 19, 2022 в 05:30 Заявка,нa вaшy пoчтy пoдтвepдили пoдapoк. Пoлyчитe пo ccылкe дaлee — https://forms.yandex.com/cloud/63147fd734efae8bd5f408f2/?hs=f84890ec5acd0b0e4de0d454020c038e&

https://forms.yandex.com/cloud/63147fd734efae8bd5f408f2/
Июнь 21, 2020 в 14:36 Анна
Классная статья. Прям ну очень доходчиво объяснили! Спасибо!
Декабрь 16, 2018 в 12:55 Роман

Спасибо за статью!
Вчера узнал о существовании Терминала, так как начал изучать Python. Пока понял, что они друг другу нужны, но не понял для чего. В Вашей статье узнал о том, что такое Terminal.

Декабрь 16, 2018 в 13:47 Samoedd (Автор записи)
https://samoedd.com
Всегда пожалуйста! Если возникнут дополнительные вопросы, буду рад ответить.
Август 19, 2018 в 18:56 Мустафа

— а почему терминал — называют ещё и эмулятором? Что он там ещё эмулирует?
Понятие «терминал» до конца так и не открыто, потому как терминалом могут назвать всё и всяк. В противном случае, какая тогда смысловая связь между тем, что «терминал» это то самое что «консоль» — ну, тогда может, ещё пару-тройку синонимов придумаем, и будем зубрить и доказывать, что это одно и тоже.
Вот, например: галка палка, ну чем галка не палка или наоборот.
А то и вообще, сколько там у нас языков и наречий в мире, давай-те соберем все их транскрипции по данному термину и тело в шляпе.
Один только англоязычный язык чего стоит, в переводе некоторых слов на русский и их понятии… не хватит запаса имеющихся матерных слов, чтобы возмущению был предел.
Фигня это всё. Нужно, если взялись за определение термина, объяснять более доходчиво, а не то, что это часть, какой то системы. Ну и что, что она часть, мало ли таких частей у системы есть, например порт I/O и его драйвер или окно настройки драйвера или еще какой проги, тоже терминал? — ведь вроде как конкретно к системе не относится но, тоже является звеном интерфейса. Вот тут не хватает такой жилки, как например, взять такое понятие «Корреспондирующий счет». Если откинуть слово счёт (и так понятно) то, что кроется в термине «Корреспондирующий» Может можно пробовать поискать какую то связь в понятии созвучных слов таких как: корреспондент, почтальон, корреспонденция и все что к ней относится письмо, сообщение, извещение… в общем, искать какую то взаимосвязь что ль. В общем, тема сырая.
Как-то давно в прошлом веке (серьезно) я тоже, когда еще не было в СССР компов, приходилось искать ответы на свои вопросы, в какой то бы не было макулатуре. И вот в одной древней пожелтевшей книге, которую я тоже штудировал но, ничего толком там так и не нашел, попалось одно хорошее изречении, которое наверно и мотивировало меня на дальнейшие поиски Знаний! Как говорят: Век живи и Век учись, а :(, да ладно, не будем о грустном:))
Так вот, что я там прочитал, не помню досконально, но вроде так: «Если из тысячи книг тебе попадется та, в которой ты найдешь ответ на свой извечный вопрос — считай, тебе повезло!» А вопросов у нас по жизни, как вы всё знаете и понимаете, больше чем ответов.

Август 27, 2018 в 18:44 Samoedd (Автор записи)
https://samoedd.com

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *