Как называется запущенный командный интерпретатор. Команды и командный интерпретатор. Использование параметров командной строки

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

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

@ echo off : begin Cls Title Калькулятор Color 71 Echo Введите уравнение: Set /P exp = Set /A result =% exp % Title Вычислено Echo Ваше уравнение: %exp% Echo Решение: %result% Pause > nul goto begin

Калькулятор, для командной оболочки bash :

#!/usr/bin/env bash echo "Калькулятор" while read -p "Введите выражение: " expr do echo "Результат: $(($expr )) " done

Понятия

Оболочка в своей работе оперирует простыми командами.

Простая команда - это последовательность слов через пробел. Нажатие клавиши Enter при вводе команды или перевод строки при обработке сценария являются для командного интерпретатора признаком завершения команды. Она обрабатывается и выполняется.

Конвейер - это последовательность одной или более команд, разделенных |(& для cmd.exe). Стандартный выходной поток каждой команды, кроме последней, соединяется при помощи программного канала со стандартным входным потоком следующей команды. Каждая команда выполняется как отдельный процесс; интерпретатор ожидает окончания последней команды. Статусом выхода конвейера является статус выхода его последней команды. Вот пример простого конвейера для интерпретатора bash:

$ ls | tee save | wc 15 15 100

Командные интерпретаторы

Data Control Language - язык баз данных для осуществления административных функций

Digital Command Language - интерпретатор командной строки в операционных системах фирмы DEC.

DCL - современная французская тяжёлая бронированная ремонтно-эвакуационная машина

MZ (формат)

MZ - стандартный формат 16-битных исполняемых файлов с расширением.EXE для DOS. Назван так по сигнатуре - ASCII-символам MZ (4D 5A) в первых двух байтах. Эта сигнатура - инициалы Марка Збиковски, одного из создателей MS-DOS.Формат был разработан как замена устаревшему формату.COM. Исполняемые файлы MZ включают метаданные, могут иметь размер больше 64 Кбайт и использовать несколько сегментов памяти различного типа (кода, данных и стека), точка входа в программу также может быть в любом месте (в файлах.COM выполнение команд всегда начинается непосредственно с начала файла). Метод загрузки исполняемого файла определяется по сигнатуре: при её наличии обрабатывается MZ-заголовок, при отсутствии файл запускается как.COM - независимо от расширения файла (например, в последних версиях MS-DOS интерпретатор командной строки COMMAND.COM на самом деле является EXE-файлом).

Исполняемые файлы более поздних форматов для Windows начинаются с MZ-заглушки. Обычно заглушка, добавляемая компиляторами, выводит сообщение наподобие «This program cannot be run in DOS mode» («Эту программу невозможно запустить в режиме DOS»).

В старых компоновщиках для DOS могла применяться сигнатура ZM, которая также распознается MS-DOS и рядом совместимых ОС.

SQL*Plus

SQL*Plus - программа-интерпретатор командной строки для работы с системой управления базами данных Oracle Database, в которой могут выполняться команды SQL и PL/SQL в интерактивном виде или из сценария.

SQL*Plus работает как относительно простой инструмент, с интерфейсом командной строки. Программисты и администраторы СУБД обычно используют его как инструмент по умолчанию, так как интерфейс доступен практически в любой установке программного обеспечения Oracle.

TOPS-20

TOPS-20 (прежде TENEX) - операционная система, разработанная компанией BBN Technologies (Bolt, Beranek and Newman) для компьютеров DEC PDP-10. TENEX включала в себя полную реализацию системы виртуальной памяти, что позволяло программам не только осуществлять доступ ко всем 262 килословам памяти (эквивалент 1152 килобайт), но и делать это одновременно; система страничной организации памяти копировала данные с и на внешние носители по мере необходимости.

Одной из отличительных черт TENEX был её ориентированный на пользователя интерпретатор командной строки. В отличие от типичных систем того времени[каких?], в TENEX для ясности использовались длинные имена команд даже с избыточными словами. К примеру, для печати содержимого каталога в UNIX используется команда ls, а в TENEX - DIRECTORY (OF FILES), где DIRECTORY является ключевым словом, а OF FILES - избыточностью, внесённой для того, чтобы сделать назначение команды более очевидным.Для TENEX была написана самокопирующаяся по локальной сети программа Creeper, которую ошибочно считают одним из первых в мире компьютерных вирусов.

Take Command

Take Command - это имя, которое компания JP Software использовала в своих интерпретаторах командной строки с графическим интерфейсом (GUI) для Windows 3.1 (TC16), 32-разрядных версий Windows (TC32) и позже для OS/2 Presentation Manager (TCOS2). Они выпускались параллельно с версиями 4DOS 5.5, 4NT 2.5 и 4OS2 2.52. Продукты для OS/2 и Windows в 16-разрядных вариантах просуществовали до версии 2.02, их можно загрузить и сейчас с FTP-сайта JP Software.

Take Command сегодня - это интерпретатор командной строки для операционных систем семейства Microsoft Windows. Его преимущества перед стандартной командной оболочкой Windows такие же, как у 4DOS перед COMMAND.COM из поставки MS-DOS.

Начиная с версии 9, название Take Command относится ко всему пакету программ: TCI (командный интерфейс в вкладками) и 4NT. Разработка исходной версии Take Command прекращена. Компонент TCI теперь расширен: он включает диспетчер файлов, настраиваемые панели и ряд других окон, а 4NT переименован в TCC и помимо полной версии доступен в бесплатной «облегчённой» (TCC/LE).

В состав Take Command добавлены встроенные редактор и отладчик пакетных файлов, в командах реализован доступ к файлам по FTP и HTTP, доступ к сетевой файловой системе, интеграция с Active Scripting, команды мониторинга системы и управления службами Windows.

Take Command Console (TCC)

Take Command Console (TCC) (прежние названия - 4DOS for Windows NT и 4NT) - это интерпретатор командной строки, выпускаемый компанией JP Software как более функционально насыщенная замена стандартному интерпретатору командной строки в Microsoft Windows - CMD.EXE. TCC основан на ранее выходивших командных оболочках 4DOS для DOS и 4OS/2 для OS/2.

Начиная с версии 12 у 4NT удалена поддержка Windows 95, 98, ME, NT и 2000. Начиная с версии 16 у TCC удалена поддержка Windows XP, хотя работа в XP по-прежнему возможна. 4NT переименована в Take Command Console (TCC) как часть пакета JP Software Take Command версии 9 и новее.

TCC предоставляет большой набор возможностей для работы с командной строкой и пакетными файлами. Для обеспечения обширного доступа к операционной системе TCC позволяет совместно работать с другими языками сценариев - REXX, Ruby и Perl, или скрипт-языками Windows, в виде движков Active Scripting - VBScript и JScript, а также PerlScript (через ActivePerl), TclScript (через ActiveTcl), PythonScript (через ActivePython), и версией скрипт-движка Object REXX.

Интерфейс командной строки

Интерфейс командной строки (англ. Command line interface, CLI) - разновидность текстового интерфейса (CUI) между человеком и компьютером, в котором инструкции компьютеру даются в основном путём ввода с клавиатуры текстовых строк (команд), в UNIX-системах возможно применение мыши. Также известен под названием консоль.

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

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

Консоль восстановления

Консоль восстановления (англ. Recovery Console) - компонент, включенный в состав Windows 2000, Windows XP и Windows Server 2003. Он предоставляет администраторам средства выполнения ограниченного круга задач с использованием интерфейса командной строки. Его основная задача заключается в том, чтобы позволить администраторам восстанавливать ОС в ситуациях, когда Windows не загружается до состояния графического интерфейса пользователя. Консоль восстановления используется для предоставления доступа к жесткому диску в чрезвычайной ситуации через командную строку. Таким образом, к консоли восстановления можно получить доступ либо через исходный установочный носитель, используемый для установки Windows, либо также можно установить на жесткий диск и добавить в меню NTLDR, однако, полагаясь на последнее, это более рискованно, потому что для этого требуется, чтобы компьютер загрузился до NTLDR.

Сравнение языков программирования

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

При заполнении таблицы учтены только фактические данные, при том, что наличие возможности не обязательно является преимуществом языка, а отсутствие - недостатком.

Точка соединения NTFS

Точка соединения NTFS (англ. NTFS Junction Point) - нововведение в файловой системе NTFS 3.0 (файловая система по умолчанию в Windows 2000). Суть нововведения заключается в том, что указанный логический диск либо папка будет отображаться как папка на другом логическом диске либо в другой папке. Эта возможность позволяет создавать некоторые эффекты с файловой системой (например, хранить два профиля одного и того же пользователя и переключаться между ними без особых проблем). Точка соединения реализована в NTFS как особый тип точки повторной обработки (англ. reparse point).

Данную функцию можно настроить в оснастке «Управление дисками»: щелчок правой кнопкой на подключаемом диске, пункт «Изменить букву диска или путь к диску…», далее в списке будут отображены все возможные пути к диску, по умолчанию диск доступен по своей букве («Х:» - где Х буква диска). Менять пути к диску можно соответствующими кнопками под списком.

Для создания точки соединения на папку можно воспользоваться утилитой linkd, которая входит в комплект Windows 2000 and Windows XP Resource Kits. В Windows Vista и выше точку соединения или символьную ссылку можно создать с помощью стандартной консольной команды mklink.

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

Шебанг (Unix)

Шебанг (англ. shebang, sha-bang, hashbang, pound-bang, or hash-pling) - в программировании последовательность из двух символов: решётки и восклицательного знака ("#!") в начале файла скрипта.

Когда скрипт с шебангом выполняется как программа в Unix-подобных операционных системах, загрузчик программ рассматривает остаток строки после шебанга как имя файла программы-интерпретатора. Загрузчик запускает эту программу и передаёт ей в качестве параметра имя файла скрипта с шебангом. Например, если полное имя файла скрипта "path/to/script" и первая строка этого файла:

#!/bin/shто загрузчик запускает на выполнение "/bin/sh" (обычно это Bourne shell или совместимый интерпретатор командной строки) и передаёт "path/to/script" как первый параметр.

Строка с шебангом обычно пропускается интерпретатором, так как символ "#" является символом начала комментариев во многих скриптовых языках. Некоторые интерпретаторы, которые не используют символ решётки для обозначения начала комментариев (такие, как Scheme), могут пропустить строку шебанга, определив её назначение. Другие решения полагаются на препроцессор, который обрабатывает и удаляет строку шебанга перед тем, как остальная часть скрипта передаётся компилятору или интерпретатору. Так, например, работает InstantFPC, который позволяет запускать программы, написанные на Free Pascal, как скрипты на некоторых операционных системах.

При работе с FreeBSD, в большинстве случаях для выполнения повседневных задач используется командный интерфейс (так называемый ``шелл""), который принимает команды, которые ему подаются, и выполняет их. Многие командные интерпретаторы имеют встроенные средства выполнения наиболее часто используемых команд, например, операции над файлами и каталогами, редактирование командной строки, командные макросы и переменные окружения. Вместе с FreeBSD поставляется несколько командных интерпретаторов, например, sh, или Bourne Shell, и csh, иначе C-shell. Многие другие, более мощные, например, tcsh или bash, доступны в коллекции портов.Какой из командных интерпретаторов использовать? Это дело вкуса. Если Вы программируете на C, то Вам, возможно, понравится tcsh, а если Вы работали с Linux, то Вас скорее устроит bash, нежели что-либо другое. Каждый из названных интерпретаторов имеет свои особенные свойства, которые отличат его от других и, возможно, повлияют на Ваш выбор.Одна из наиболее часто используемых функций командного интерпретатора - дополнение частичного имени файла до полного. Вы можете набрать только первые несколько символов имени файла, нажать клавишу табуляции (TAB), и командный интерпретатор автоматически Например, у нас есть два фала, названные foobar и foo.bar . Допустим, мы хотим удалить файл foo.bar . Для этого, наберем на клавиатуре rm fo. .Вы увидите следующее: rm foo.bar .Здесь - это так называемый консольный звонок, сигнализирующий о том, что интерпретатор не в состоянии закончить имя файла, так как по введенным Вами символам невозможно однозначно идентифицировать файл. Например, имена файлов foobar и foo.bar оба начинаются с fo , но после нажатия TAB можно однозначно дополнить только до foo . Если же теперь ввести точку (.) и вновь нажать TAB, интерпретатор достроит имя файла целиком.При работе с любым командным интерпретатором, Вы столкнетесь с переменными окружения. Под переменной окружения понимается некоторая строка символов, идентифицируемая некоторым именем. Значение переменных окружения может быть прочитано любо программой, запущенной из командного интерпретатора, и часто содержит конфигурационные настройки для многих приложений и утилит. Ниже приведены некоторые наиболее часто встречающиеся переменные окружения с объяснением их значения:

Переменная Описание USER Имя текущего пользователя. PATH Каталоги, разделенные двоеточием, в которых производить поиск исполняемых файлов. DISPLAY Сетевое имя виртуального дисплея X11, если доступен для подключения. SHELL Текущий командный интерпретатор. TERM Название (тип) терминала. Используется, чтобы узнать возможности терминала. TERMCAP Список escape-последовательностей для управления различными функциями терминала. OSTYPE Название (тип) операционной системы. Например, FreeBSD. MACHTYPE Архитектура машины (процессора). EDITOR Предпочитаемый пользователем текстовый редактор. PAGER Предпочитаемая пользователем утилита просмотра файлов. MANPATH Каталоги, разделенные двоеточием, в которых производить поиск файлов системного справочника.

В зависимости от используемого командного интерпретатора, для просмотра и установки значений переменных окружения служат различные команды. Например, в интерпретаторах csh и tcsh это setenv . В sh и bash это set и export . В частности, чтобы установить или изменить значение переменной EDITOR (в csh или tcsh) равное /usr/local/bin/emacs , выполните команду: setenv EDITOR /usr/local/bin/emacs Если Вы используете bash: export EDITOR="/usr/local/bin/emacs" Чтобы получить значение переменной, например, в командной строке, поместите символ доллара ($) перед именем переменной. Например, команда echo $TERM выведет значение переменной $TERM .Командный интерпретатор воспринимает некоторые символы, называемые метасимволами, в качестве управляющих, несущих специальные функции. Одни из наиболее часто используемых - символ * , который заменяет любое количество символов в имени файла, и? , заменяющий один символ. Эти метасимволы используются для поиска файлов по маске, например, команда echo * выполняет практически тоже самое, что и команда ls , так как под маску * попадают все файлы из текущего каталога (на самом деле, это всегда так и зависит от командного интерпретатора, например, в bash под маску * не попадут файлы, начинающиеся с точки. - скрытые файлы).В некоторых ситуациях требуется, чтобы интерпретатор воспринимал метасимволы как обычные, не несущие специальной смысловой нагрузки. Этого можно достичь, поставив перед символом обратную косую черту (\). Например, команда echo $TERM выведет тип Вашего терминала, в то же время команда echo \$TERM выведет именно слово $TERM , а не значение переменной $TERM .

3.4.1. Как изменить командый интерпретатор по умолчанию

Самым простым, пожалуй, будет воспользоваться командой chsh . Если переменная EDITOR определена, то будет загружен текстовый редактор $EDITOR , иначе vi. Вам нужно будет изменить значение поля ``Shell:"" и выйти из редактора с сохранением результатов.Можно также воспользоваться опцией -s команды chsh . Например: % chsh -s /usr/local/bin/bash
Note: Помните, чтобы использовать некоторую программу в качестве командного интерпретатора, она должна быть обязательно упомянута в файле /etc/shells . Обычно, при установке интерпретаторов из дерева портов, это делается автоматически. Если же это не так, Вам нужно будет самим добавить соответствующую строчку в этот файл.Например, допустим, что Вы установили bash вручную, без использования соответствующего порта, и поместили его в каталог /usr/local/bin . В таком случае, можно набрать: # echo "/usr/local/bin/bash" >> /etc/shells Теперь можно смело использовать команду chsh .

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

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

При работе с командной строкой для организации интерфейса используются специальные программы - командные интерпретаторы. Они принимают от пользователя выдаваемые им команды в виде строк текста, содержащих имена программы и параметры, с которыми эти программы следует выполнить, производят разбор полученных строк, запускают необходимые программы и передают пользователю их вывод - также строки текста. Всё взаимодействие пользователя с системой происходит через командный интерпретатор, поэтому его часто называют оболочкой (shell). Для выполнения типовых действий последовательности команд оказываются одинаковыми. Такие последовательности команд можно записать в текстовый файл и далее передать этот текстовый файл командному интерпретатору для выполнения. Такие текстовые файлы называются скриптами. Для запуска они должны иметь соответствующие права (флаг "x"). Командные интерпретаторы поддерживают условное выполнение команд (структуры if-then-else), циклы, создание и вызовы подпрограмм и т.п. Язык командного интерпретатора исключительно мощный и позволяет автоматизировать практически любую задачу в системе. Например, действия при загрузке системы осуществляются скриптами командного интерпретатора - начиная от /etc/rc.d/rc.sysinit, который, в свою очередь, вызывает большое количество других скриптов.

В системах *nix, в соответствии с их модульным построением, доступны несколько командных интерпретаторов. В-основном сейчас используется интерпретатор bash (/bin/bash).

Команды операционной системы представляют из себя небольшие программы, расположенные в каталогах /bin, /usr/bin, /sbin, /usr/sbin. В дальнейшем, говоря о командах, мы будем понимать под этим именно указанные программы.

Общий формат вызова команды выглядит следующим образом:

$ command -f --flag --key=parameter argument1 agrument2 ...

Здесь "$" - это приглашение операционной системы к вводу команды. Для обычных пользователей оно имеет вид "$", для суперпользователя (root) - "#". В дальнейшем для команд, которые требуют привилегий root, будет использоваться запись вида "# command".

command - имя команды. Для часто использующихся команд имена короткие, состоящие из 2-3 букв.

После имени команды, при необходимости, указываются ключи. Ключ - параметр команды, который влияет на результат её выполнения. Часто использующиеся ключи - короткие, односимвольные; для требующихся реже длинных ключей используются слова или сокращения. Короткие ключи начинаются с символа "-", длинные - с двух символов "-". Короткие ключи часто дублируются длинными - для повышения читабельности скриптов. После ключей может допускаться указание дополнительных параметров, для длинных ключей такие параметры принято записывать через знак "=". Несколько односимвольных ключей разрешается объединять вместе: например, вместо "$ ls -l -a" можно записать "$ ls -la".

Порядок ключей, как правило, не важен.

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

$ touch -- -file-with-

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

Обычно программы поддерживают несколько стандартных ключей. По ключу "-h" или "--help" выдаётся краткая справка о программе. По ключу "-v" или "--version" - её версия. Если краткой справки не достаточно, то можно вызвать описание программы в справочной системе. Для работы со справкой используется команда man (сокращение от "manual" - руководство). Команда man в качестве аргумента принимает имя команды или файла конфигурации, ищет и выводит на экран страницу справочного руководства. В справке, выдаваемой командой man, содержится информация о формате вызова программы, поддерживаемых ей ключах и параметрах, информация об авторах и лицензии программы, в ряде случаев - примеры использования, ссылки на сайты разработчиков с дополнительной документацией.

Для просмотра страниц руководства, не помещающихся на экране, следует использовать прокрутку клавишами перемещения курсором, "Page Up" и "Page Down". Пробел перемещает руководство на страницу вперёд. Для выхода из man и продолжения работы с системой следует нажать клавишу "q" (quit).

Часть программ, помимо руководств в формате "man", также имеют и более пространную документацию в формате "info" - с вызовом её через одноимённую утилиту.

В отличии от встроенной системы подсказки программ в операционной системе Windows, руководства man и info содержат полную подробную техническую информацию о работе команд.

"1. Окружение - это
механизм передачи данных от родительского процесса дочернему +"

"2. Фильтром в UNIX-системах называется
программа, которая без перенаправления ввода-вывода читает с клавиатуры, а пишет на терминал+

"3. Термин ""стандартный вывод ошибок программы"" обозначает
поток данных, куда по умолчанию выводятся диагностические сообщения+
"
"6. Достраивание - это
подстановка полного имени объекта по части этого имени+
"
"5. Что не характерно для командного интерпретатора?
преобразование регулярного выражения в соответствующую ему подстроку+

"7. Сколько X-серверов может быть зарегистрировано на одном компьютере?
любое количество+

"8. В графической среде X11:
каждый X-клиент нуждается в X-сервере, идентификатор которого обязательно задавать с помощью параметра или переменной окружения+

"9. XFree86 - это
собственное имя графической подсистемы, ориентированной на архитектуру IBM PC +"

". Что такое инструментальная область человеческой деятельности?
область создания универсального подхода к решению класса задач +"

"14. В чём причина разделения прикладной и инструментальной областей при решении задачи?
устройство инструмента, решающего задачу может не иметь отношения ни к самой задаче, ни к её решению+
для того, чтобы пользоваться инструментом решения задачи, необязательно знать как он устроен+
одна и та же технология может быть использована для создания решений задач в самых разных областях, зачастую непересекающихся +"

"15. Знание каких областей необходимо опытному пользователю процедурной системы?
прикладной+
"

"17. Что не поддерживается в редакторе vim?
звуковое сопровождение команд +"

"20. Каталог /var в типичной UNIX-системе применяется для хранения
файлов, размер и количество которых заранее неизвестны+

"21. Что находится в каталоге /etc/rc3.d в Linux-системе?
символьные ссылки на стартовые сценарии системных служб +"

"23. Документация в виде info-страниц
гипертекст строгой структуры, который можно получить из других форматов представления документации+

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

"26. Предписание в процедурной системе - это
описание применения системы на языке прикладной области+

"27. Выберите пункт, содержащий только принципы организации процедурных систем
персональной ответственности и гарантированных навыков +"

"28. Номинальный субъект - это
то, на основании чего система принимает решение о предоставлении доступа к объекту+

"29. Вертикальные информационные потоки имеют дело с
объектами разной степени значимости+

30. Субъект-субъектная модель прав доступа используется для
ограничения прав доступа одного конкретного субъекта к одному конкретному объекту+

"31. Этапы процедуры трёхуровневой загрузки:
загрузки, выбор программы загрузки, выбор ядра системы+
"
"32. Чего нельзя сделать в схеме загрузки FreeBSD?
загрузчик с раздела, объявленного не в MBR, а в extended partition+
"

"34. (выберите неправильный ответ) Базовое регулярное выражение включает в себя понятие
номер группы+

"35. Расширенное регулярное выражение включает в себя понятие
операция выбора+

"36. Какая из строк ""abcdf"" ""abcdbcdf"" ""abcdef"" ""af"" ""adbdf"" ""acf"" соответствуют РВ "af"
acf+

"37. В чём заключается ""проблема управляющего ввода"" в текстовых редакторах?
команды управления многочисленнее и разнообразнее, чем управляющие клавиши, но для вызова команды управления желательно выполнять минимум действий+

"38. Утилита ex - это
построчный текстовый редактор, аналогичный редактору vi, постоянно работающему в режиме командной строки +"

"40. Активный процесс отличается от фонового тем, что
только активный процесс имеет возможность вводить данные с терминала +"

"41. PID (идентификатор процесса) - это
уникальное число, присваиваемое каждому процессу+

"42. Как остановить ""зависшую"" программу?
узнать её PID и послать сигнал ""KILL"" с помощью программы kill+
"
"43. Разделение ресурсов - это
ограничение способа доступа к ресурсам (политика доступа) и самой возможности использовать ресурс (права доступа)+
"

"45. В функции операционной среды входит
унификация, разделение и учёт системных ресурсов+

"46. Сколько _способов_ доступа в файловой системе UNIX?
три: запись, чтение и использование+

"48. Номинальный субъект в UNIX однозначно определяется
UID+

"49. Создатели UNIX-систем рассчитывали
на образованного и заинтересованного в развитии системы пользователя+
"
"0. Демоны в типичной UNIX-системе
соответствуют понятию системного наполнения операционной среды+
"
"51. Интерфейс UNIX-системы
основан на передаче текстовых данных+

"2. Подстановка в shell - это
временный или постоянный запуск другой программы вместо командного интерпретатора+

"4. Основные команды работы с файлами:
ls, rm, mv, cp+

"6. Если в текущем каталоге есть по крайней мере файл с именем ""a"", то по команде ls a* утилита ls получит

список всех файлов текущего каталога, чьё имя начинается на "a"+ "

"7. Число 11 в имени X11 - это
номер версии протокола передачи графических данных+
"
"8. Какому из подходов к разработке ОС отвечает метафора ""рабочего стола""?
процедурному, так как содержит легенду+
"
"9. В графической среде X11:
X-клиент подаёт запросы графического ввода-вывода, а X-сервер выполняет их, а также взаимодействует с пользователем, опрашивая устройства ввода+
"
"10. Проект в проективной системе - это
набор данных, полностью задающих свойства созданной на их основе системы+

"11. Укажите область применения, не характерную для проективных систем
расчёт в супермаркете+

"12. Проект в проективной системе - это набор данных, однозначно описывающий
все необходимые пользователю свойства будущей системы+

"13. В качестве кого выступает пользователь процедурной системы?
Клиента+

"14. Что такое человеко-машинная система?
система, в которой решение задачи происходит в результате взаимодействия человека и машины+

"15. Назовите инструментальную и прикладную область при решении следующей задачи: создание железнодорожного расписания
транспортировка и безопасность – инструментальная область; математическая статистика и математическая логика - прикладная+
"
"16. Метки текста
используются в командах перемещения на заранее определённое пользователем место текста+

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

"19. Стандартные каталоги UNIX подразделяются
по способу использования хранимых файлов системой и пользователем +"

"20. В каталогах rc1.d, rc2.d и т. п. находятся
символьные ссылки на стартовые сценарии, двух различных видов+

"21. Каталог /etc в типичной UNIX-системе применяется для хранения
настроечных файлов и стартовых сценариев системы+

"22. Назначение поля NAME:
краткое описание объекта, служащее индексом в базе данных whatis+


NAME и DESCRIPTION+

"24. Выберите пункт, в котором упомянуты только основные источники информации о системе
руководства и /usr/share/doc+

"25. (выберите неправильный ответ) Соблюдение принципов организации процедурных систем помогает
самостоятельной постановке и решению задач+

"6. Диалог человека и машины в процедурной системе чаще всего строится на основе
активности машины, предлагающей варианты решений+

"28. Отсроченная передача данных возможна
только в системе с сеансами доступа+

"32. Дополнительный раздел диска (extended partition) - это
любая, кроме первой, используемая часть диска, начинающаяся таблицей разбиения диска+

"36. Какая из строк ""abcdf"" ""abcdbcdf"" ""abcdef"" ""af"" ""adbdf"" ""acf"" соответствуют РВ "a(bcd)*f"
abcdf abcdbcdf af+

"37. Аббревиативность команд в vi приводит к тому, что
последовательность команд редактирования можно читать их полными именами +"

"38. В редакторе vi три режима работы с текстом:
командной строки, командный и режим вставки+
"
"39. При нажатии клавиши ""c"" в командном режиме vi произойдёт
ожидание команды перемещения, после которой соответствующая часть строки будет удалена и произойдёт переход в режим вставки+

"40. Терминальная линия - это
устройство последовательной передачи байтов в /dev, способное преобразовывать входной и выходной потоки и передавать сигналы+

"42. Сигнал - это
не зависящий от файловой системы способ взаимодействия процессов +"

"43. В чём разница между операционной системой и операционной средой?
операционная система - это рассмотрение человеко-машинной системы с точки зрения её разработчика, а операционная среда - с точки зрения пользователя+

"44. Чем отличаются счётные и обменные задачи?
пока обменная задача ожидает конца операции ввода-вывода, счётная может выполняться, даже если стоит в очереди на выполнение позже +"

"45. В чём смысл различения системного и пользовательского наполнения ОС?
системное наполнение связано с инструментальными, а +"

"46. Что полностью реализовано в UNIX?
доверенный субъект +"

"47. Для чего нужен ""t-бит"" каталога?
чтобы пользователь не имел права удалять чужие файлы из этого каталога+

"49. Сложнее всего в UNIX-системе соблюсти

принцип умопостижимости контекста, так как возможности системы постоянно расширяются+
"
"50. Большинство функций пользовательского интерфейса в Unix-системах берёт на себя
командный интерпретатор и файловая система+

"51. Понятия ""системная утилита"" и ""пользовательская утилита"" в UNIX

пересекаются по причине смешения инструментальной и прикладной областей+
"
"3. Термин ""стандартный ввод программы"" обозначает

поток данных, откуда происходит чтение по умолчанию+

4. Интерфейс командной строки появился вследствие

необходимости совмещать разработку проекта, запуск решения и анализ результатов в едином интерфейсе+
"
"5. При редактировании командной строки и истории главное - это

минимизация действий по основным функциям - поиску, удалению, достраиванию и т. п.+

"9. X11R6 - это

имя и номер версии протокола передачи графических данных+
"
"10. Без соблюдения какого принципа невозможна полноценная проективная система?

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


"
"11. Принцип информационной открытости требует, чтобы

в системе было достаточно информации для полного её освоения+

"15. Назовите инструментальную и прикладную область при решении следующей задачи: проектирование корпуса инвалидной коляски

автопромышленность и медицина - прикладная область; сопромат и химия металлов – инструментальная+
"
"16. По возможностям редактор vim
намного превосходит редактор vi+

"19. Что делает команда mount?
делает доступной указанную файловую систему в виде подкаталога в дереве каталогов+

"24. Выберите пункт, в котором упомянуты только важнейшие поля руководства

DESCRIPTION и SEE ALSO+"

"26. Процедура в процедурной системе - это

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

перекрытия процедур и гарантированных навыков+
"
"28. Информационный поток в модели секретности - это

изменение уровня значимости объекта+
,
"30. Доверенный субъект

может нарушать политику безопасности системы+
"
"31. Трёхуровневая схема позволяет

защитить процесс загрузки от взлома со стороны злоумышленника, получившего доступ к системной консоли "

BootROM, BootBlock, BootProg+
"
"33. Как много стандартных разделов помещается в одной таблице разбиения диска (HDPT) IBM-совместимого компьютера?

34. Причина частого применения регулярных выражений в UNIX

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

"36. Контекстный адрес задаёт

диапазон строк, к которым применяется соответствующая команда+

оконечное оборудование, завершающее поток ввода или вывода данных+

"46. Можно ли удалить чужой файл из своего каталога?

да. Удаление - это операция над каталогом, а не над файлом+

"49. UNIX - это
название класса проективных человеко-машинных компьютерных систем+

"
"50. Пакеты в типичной UNIX-системе

"1. Операция ""|"" в shell

разделяет две команды: вывод первой перенаправляется на вход второй+

"8. В чём разница между терминами ""X-терминал"" и ""xterm""
X-терминал - это компьютер, а xterm - программа+
"

"10. В основе проективной системы лежит требование
понимания процессов, в ней происходящих+
"

"12. Обратная задача проективной системы - это

модификация проекта системы на основе анализа недостатков продукта+
"
"13. Что такое прикладная область человеческой деятельности

область постановки и решения задачи+
"

"15. Назовите инструментальную и прикладную область при решении следующей задачи: создание интернет-казино

математическая статистика и финансовая деятельность – прикладная область; web-дизайн и психология – инструментальная+
"
"16. Настройки редактора vi можно изменить

двумя способами без ограничений +"
"7. Что не поддерживается в редакторе vim?
перемещение по гипертекстовым ссылкам в формате HTML (без использования внешних ссылок)+
"
"18. Можно ли реализовать функцию редактирования электронных таблиц?

да, но это, скорее всего, потребует применения внешних программ для преобразования редактируемых данных+"
"19. Уровни выполнения - это

профили работы систем семейства USG, различающиеся списком выполняемых функций+
"
"20. Главный недостаток ""линейной"" схемы начальной загрузки (т. н. старая BSD-схема, FreeBSD4)

для изменения порядка загрузки служб необходимо редактировать стартовый сценарий, внесение синтаксических ошибок в который чревато неработоспособностью системы+ "
"21. Каталог /usr в типичной UNIX-системе применяется для хранения

большинства файлов, необходимых для штатной работы системы+"
"22. Назначение поля SYNOPSIS:
краткая справка по использованию объекта+

"
"23. Все страницы руководства

разбиты на семь-девять разделов+
"
"24. Выберите пункт, в котором упомянуты только основные источники информации о системе
руководства и info-страницы+"

"26. Легенда в процедурной системе - это
описание устройства системы на языке прикладной области+
"
"26. Предписание в процедурной системе - это

описание применения системы на языке прикладной области+
"
"28. Субъект-объектная модель на основе ACL

ставит в соответствие каждому объекту произвольный список субъектов и их прав доступа+
"

"32. Выберите пункт, подпункты которого соответствуют трём последовательным уровням досистемной загрузки

выбор устройства, выбор и настройка загрузчика, выбор и настройка ядра +"
"33. Как много стандартных основных разделов можно завести на диске IBM-совместимого компьютера?

четыре, если дополнительных разделов не предусмотрено, иначе - три +"

"35. Одно и то же регулярное выражение можно использовать во всех утилитах, работающих с РВ

только базовое, предварительно адаптированное согласно стилю+
"

"37. Экранный редактор vi

существует в любой UNIX-системе, однако при неудачно настроенном терминале воспользоваться им можно только в построчном режиме+
"
"38. Гнездовая команда в vi может состоять из

множителя, действия и перемещения по тексту+

объект файловой системы, содержащий строку, которая интерпретируется как путь к файлу+
"
"42. (выберите неправильный ответ) Как остановить запущенную без параметров программу ""cat""?

послать ей символ конца файла (обычно -- ""^Z"")+

унификация, разделение и учет системных ресурсов+
"
"45. Что такое ""контекст задачи""?

информация, необходимая для манипулирования задачей при организации псевдопараллельности+
"
"45. Что такое ""виртуальная память""?
способ разделения адресного пространства между задачами+

"49. Гнёзда UNIX

следствие постоянного развития системы различными организациями+
"

"51. Задачи в очереди UNIX-процессов

выполняются в порядке, учитывающем место в очереди, но с таким расчётом, чтобы уменьшить время простоя системы +"
"3. Термин ""стандартный вывод программы"" обозначает

поток данных, куда происходит запись по умолчанию+
"
"4. В строке, набираемой в ответ на ""подсказку"" shell первое слово - это чаще всего
утилита +"

"8. В графической среде X11:

X-сервер - программа, для работы которой нужны устройства графического ввода-вывода +"

"11. Принцип умопостижимости контекста требует, чтобы

для решения поставленной перед системой задачи не требовалось бы изучать работу большинства частей системы+

"19. В UNIX-системах

используется несколько типов файловых систем+
"
"20. Какой процесс связан с каждым терминалом немедленно по окончании загрузки?

программа getty+"

"25. В основе процедурной системы лежит требование

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

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

"29. Модель надёжности вводит запрет

на операции, приводящие к перемещению объекта на более высокий уровень +"

"37. Главная область применения текстового редактора в UNIX
создание информационных и обучающих текстов
разработка и изменение программ и настроечных файлов+
разработка и преобразование системных служб
разработка и отображение внешнего вида печатной документации "
"38. Больше всего в vi

команд перемещения по тексту+
"

"42. Понятие ""терминал"" может обозначать

файл-дырку, особым образом интерпретирующую передаваемые через неё текстовые данные+++
"
"43. Для традиционного механизма виртуальной памяти справедливо утверждение:

любая задача имеет непрерывное адресное пространство, недоступное другой задаче+

"46. Кто чаще всего запускает команду ""chown""?
Суперпользователь+
"

"49. Интерфейс UNIX-системы

основан на передаче текстовых данных, поэтому вообще не требует устройств графического ввода-вывода+

"
"50. Функцию менеджера ресурсов в UNIX выполняет

ядро - для ресурсов, необходимых самой системе, демоны и системные программы - для пользовательских ресурсов+
"
"1. В каком случае оператор if в shell посчитает условие выполненным?

если после выполнения списка команд, помещённых в поле ""условие"", код возврата не равен 0 +"
"1. Профиль (profile) командного интерпретатора - это

сценарий, выполняющийся при входе в систему+

"5. При типичном использовании шаблона
командный интерпретатор подставляет в команду список соответствующих шаблону файлов+

"
"7. Перемещением, изменением размера и внешнего вида окон в X занимается

X-сервер отвечает за размер и положение окна, выполняя команды окновода, который вдобавок дориcовывает рамки и декораторы+"
"7. Особенность графических ресурсов в том, что они

могут понадобиться только пользователям, имеющим доступ к устройствам графического ввода-вывода+

"11. При освоении проективной системы пользователю придётся

реализовать несколько решений уже решённых простых задач+
"
"12. Выберите пункт, содержащий только принципы организации проективных систем

информационной открытости и персональной ответственности +"
"13. Знание каких областей необходимо опытному пользователю проективной системы?
прикладной и инструментальной+

"
"14. Пользователь какого вида систем чаще выступает в роли посредника между машиной и заказчиком?

Проективного+
"
"15. Какой тип человеко-машинных систем требует от пользователя знания инструментальной области?

Проективный+
"
"16. Сколько карманов у редактора vi?

один неименованный и несколько именованных+
"
"17. Имеет ли смысл хранить сложные команды vi в виде комментариев к тексту?

да, в vi есть команда выполнения содержимого кармана как списка команд +"

"23. Выберите пункт, в котором упомянуты только важнейшие поля руководства
NAME и SEE ALSO+

"25. Принцип ограниченной осведомлённости требует, чтобы
решение пользовательской задачи не требовало изучения самой системы+

различна для разных архитектур компьютеров+
"
"32. Выберите пункт, подпункты которого соответствуют трём последовательным уровням досистемной загрузки
универсальный программный уровень, многофункциональный программный уровень; уровень, ориентированный на определённый формат ядра и модулей
аппаратный уровень; универсальный программный уровень; многофункциональный программный уровень, ориентированный на определённый формат ядра и модулей+
уровень BIOS, уровень ядра, уровень самонастройки ядра
аппаратный уровень, уровень BIOS, универсальный программный уровень "

"34. Правило ""левый-длинный"" говорит о том, что
из всех соответствующих РВ подстрок выбирается та, что начинается раньше, а если таких несколько - самая длинная среди них+
"
"36. Какая из строк соответствуют РВ "m(1.3|)+"
m123x m1x3x1x3 m1-3yy1+3 m113113113 myxxz+
"
"37. (выберите неправильный ответ) Утилита ed - это

интерактивный редактор текстов с небольшим количеством мощных команд редактирования+

"
"39. Утилита ed - это
построчный текстовый редактор, работающий с любым типом терминалов+

"44. В функции операционной среды входит
унификация, разделение и учёт задач+

"45. Что такое ""псевдопараллелизм""?
технология одновременного выполнения нескольких задач независимо от количества процессоров компьютера+

"46. Почему ""login"" может запустить shell ""от лица"" любого пользователя?
программа ""login"" запускается с правами суперпользователя+
"
"23. Документацию по UNIX-системе
следует оформлять сообразно специфике: общие сведения и контекст - в виде man, сложные руководства - в виде info или html, книги и учебники - в специальных форматах+

"32. Стартовый виртуальный диск (initrd) - это
механизм размещения файловой системы в памяти для загрузки и компоновки модулей ядра во время досистемной загрузки+"

"42. (выберите неправильный ответ) Как на время приостановить слишком объёмистый вывод программы (например, ""ls -r /"")?
перенаправить оставшийся вывод в файл (обычно ""> file"")+

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

Командная строка состоит из имени команды (то есть имени выполняемого фай­ла), за которым следует список аргументов, разделённых пробелами. Оболочка разбивает командную строку на компоненты. Указанный в команде файл загружается, и ему обеспечивается доступ к заданным в команде аргументам.

Любой командный язык семейства shellфактически состоит из трёх частей:

 служебных конструкций, позволяющих манипулировать с текстовыми строками и строить сложные команды на основе простых команд;

 встроенных команд, выполняемых непосредственно интерпретатором команд­ного языка;

 команд, представляемых отдельными выполняемыми файлами.

В свою очередь, набор команд последнего вида включает стандартные команды (системные утилиты, такие как vi,ccи т. д.) и команды, созданные пользователями системы. Для того чтобы выполняемый файл, разработанный пользовате­лем ОСUNIX, можно было запускать как командуshell, достаточно определить в одном из исходных файлов функцию с именемmain(имяmainдолжно быть глобальным, то есть перед ним не должно указываться ключевое словоstatic). Если употребить в качестве имени команды имя такого выполняемого файла, команд­ный интерпретатор создаст новый процесс и запустит в нём указанную выпол­няемую программу, начиная с вызова функцииmain.

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

Например, следующий текст на языке С может быть использован для создания команды, которая выводит на экран текстовую строку, заданную в качестве её аргумента:

#include

main(argc, argv)

printf(“usage: %s your-text\n”, argv);

printf(“%s\n”, argv);

Процессы

Процесс в ОС UNIXпонимается в классическом смысле этого термина, то есть как программа, выполняемая в собственном виртуальном адресном пространст­ве. Когда пользователь входит в систему, автоматически создается процесс, в ко­тором выполняется программа командного интерпретатора. Если командному интерпретатору встречается команда, соответствующая выполняемому файлу, то он создает новый процесс и запускает в нём соответствующую программу, начи­ная с функцииmain. Эта запущенная программа, в свою очередь, может создать процесс и запустить в нём другую программу (она тоже должна содержать функ­циюmain) и т. д.

Для образования нового процесса и запуска в нём программы используются два системных вызова API–fork() и ехес(имя_выполняемого_файла). Системный вызовforkприводит к созданию нового адресного пространства, состояние которого абсолютно идентично состоянию адресного пространства основного процесса (то есть в нём содержатся те же программы и данные). Для дочернего процесса заво­дятся копии всех сегментов данных.

Другими словами, сразу после выполнения системного вызова forkосновной (родительский) и порожденный процессы являются абсолютными близнецами;

управление и в том и в другом находится в точке, непосредственно следующей за вызовом fork. Чтобы программа могла разобраться, в каком процессе она те­перь работает – в основном или порождённом, функцияforkвозвращает разные значения: 0 в порождённом процессе и целое положительное число (идентифи­катор порождённого процесса – так называемыйPID) в основном процессе.

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

В следующем примере пользовательская программа, вызываемая как команда shell, выполняет в отдельном процессе стандартную командуshellls, которая выдаёт на экран содержимое текущего каталога файлов.

if (fork ()==(0) wait(0); /* родительский процесс */

else execl("ls", "Is", 0); /* порождённый процесс */

Таким образом, с практической точки зрения процесс в UNIXявляется объектом, создаваемым в результате выполнения функцииfork(). Каждый процесс, за исключением начального (нулевого), порождается в результате запуска дру­гим процессом операции fork(). Каждый процесс имеет одного родителя, но мо­жет породить много процессов. Начальный (нулевой) процесс является особенным процессом, который создается в результате загрузки системы. После порожде­ния нового процесса с идентификатором 1 нулевой процесс становится процес­сом подкачки и реализует механизм виртуальной памяти. Процесс с идентифика­тором 1, известный под именемinit, является предком любого другого процесса в системе и связан с каждым процессом особым образом.