Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен UNIX.docx
Скачиваний:
25
Добавлен:
11.06.2015
Размер:
532.39 Кб
Скачать

Командная строка

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

Интерпретатор командной строки в UNIX - shell (в русских переводах - "оболочка") - типичная программа этого рода. Вернее, семейство программ, потому что (как это часто бывает в UNIX) на разные вкусы существуют по-разному оформленные решения. Можно даже сказать, что терминал плюс командный интерпретатор UNIX и есть интерфейс командной строки, прочие же системы лишь с той или иной долей остроумия пародируют его.

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

Таково понимание командной строки в shell и UNIX. Вводимая пользователем строка (напомним, что обмен данными - только текстовый) воспринимается интерпретатором как последовательность "слов", разделенных пробелами и/или символами табуляции; об этом подробнее рассказано в лекции 8. Первое слово строки - собственно команда (ей может предшествовать несколько присвоений переменным окружения этой команды каких-нибудь значений, подробнее о переменных окружения рассказано в лекции 11), последующие - передаваемые ей параметры (arguments). Часто вместо " параметры " говорят "аргументы". Выходит, что мы не просто командуем машиной, но и аргументируем свои решения. Параметры видоизменяют работу команды ; иными словами, при помощи параметров пользователь выделяет из всего класса решаемых командой задач одну, а также описывает конкретные исходные данные. Например, команда shutdown выполняет остановку системы. Если не указывать никаких параметров, остановка начнется через пять минут, в течение которых shutdown предупреждает об этом всех работающих в системе пользователей. А воткоманда shutdown now приступит к останову системы немедленно.

Чтобы не запутаться в терминологии, припомним главу 5, в которой говорилось об утилитах. Командный интерпретаторсамостоятельно выполняет только небольшое число подаваемых ему команд ; это, как правило, команды, связанные с изменением свойств самого интерпретатора: его настройка, смена текущего каталога, элементы программирования и т. п. Подавляющее большинство команд - это имена утилит, т. е. специально для этого написанных программ. Если команда не опознана как внутренняя команда shell, она интерпретируется как имя утилиты. Система эту утилиту запускает и передает ей все параметры изкомандной строки.

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