Пользовательский интерфейс операционной среды. Shell. Режимы командной строки и интерпретации программ.
Операционная среда — совокупность компьютерных программ, обеспечивающая оператору возможность управлять вычислительными процессами и файлами.
Стандартом на операционные системы (ОС) определены синтаксис и семантика языка оболочки и утилит, составляющих операционную среду компьютера, работающего под управлением такой ОС.
SHELL- командный интерпретатор, используемый в операционных системах семейства UNIX. В первую очередь, под shell понимаются POSIX-совместимые оболочки, восходящие к Bourne shell, появившемуся в Unix Version 7.
Оболочка исполняет команды своего языка, заданные в командной строке или поступающие из стандартного ввода или указанного файла.
В качестве команд интерпретируются вызовы системных или прикладных утилит, а также управляющие конструкции. Кроме того, оболочка отвечает за раскрытие шаблонов имен файлов и за перенаправление и связывание ввода-вывода утилит.
В совокупности с набором утилит, оболочка представляет собой операционную среду, полноценный язык программирования и мощное средство решения как системных, так и некоторых прикладных задач, в особенности, автоматизации часто выполняемых последовательностей команд.
Разновидности
• sh — оригинальный Bourne shell.
• csh — версия из дистрибутива BSD, имеет Си-образный синтаксис и не является POSIX-совместимой. Введены возможности управления заданиями и другие улучшения.
• ksh — версия, разработанная Дэвидом Корном из AT&T Labs (отсюда и её название — KornShell).
• bash, tcsh, zsh — современные версии.
• ash, busybox — современные микро-версии, предназначенные для встраиваемых систем, а также используемые в мини-дистрибутивах.
Программирование
sh является удобным и часто используемым интерпретируемым языком программирования. Он содержит стандартные конструкции для циклов, ветвления, объявления функций и т. п. Данный язык часто используется в UNIX-подобных системах при создании различных сценариев (скриптов) работы, в частности, сценариев автоматического конфигурирования исходных кодов программ перед их компиляцией. Отличительная особенность языка sh — многие операции, которые в традиционных языках программирования являются встроенными, выполняются с помощью вызова внешних программ.
• expr используется для вычисления арифметических выражений.
• test используется для сравнения чисел и строк, а также для определения атрибутов файлов.
• sed, tr, awk, head, tail, cut и др. — для работы с текстами.
Командный интерпретатор или оболочка (англ. shell) — компьютерная программа, через которую пользователь может управлять запуском других приложений, а также напрямую производить некоторые действия с объектами операционной системы.
Некоторые оболочки представляют собой интерпретаторы собственных языков программирования.
В операционные системы MS-DOS и Windows 9x включён командный интерпретатор command.com, в Windows NT включён cmd.exe. В большом семействе командных оболочек UNIX популярны bash, csh, ksh и другие.
Как правило, при низкоуровневой настройке ОС у пользователя есть возможность менять командный интерпретатор, используемый по умолчанию.
Интерпрета́тор(языка программирования) — программа для непосредственного исполнения программ (производства вычислений, предписываемых этими программами) из исходного кода на определённом языке.
Простые интерпретаторы анализируют и выполняют (интерпретируют) программу последовательно (покомандно или построчно). Синтаксические ошибки обнаруживаются такими интерпретаторами только когда интерпретатор приступает к выполнению команды (строки) содержащей ошибку, это может быть удобно начинающим.
Более сложные интерпретаторы (называемые интерпретаторами компилирующего типа) перед выполнением производят компиляцию исходного кода программы в машинный или некий «промежуточный код», и только после этого приступают к выполнению. И поэтому все синтаксические ошибки обнаруживаются до выполнения. Такие интерпретаторы быстрее выполняют большие и циклические программы, так как не занимаются анализом исходного кода (в т.ч. избыточным, например, в циклах) в реальном времени, но могут быть сложны для начинающих.
Некоторые интерпретаторы для начинающих могут работать в режиме диалога, добавляя вводимую строку команд в программу (в памяти) или выполняя команды непосредственно.