Занятие шестое: что это за буковки?
Это не буковки, это командная сторка...
Требования к интерфейсу многопользовательской системы:
- Запуск пользовательских процессов
- Выдача результатов работы процесов в удобной для человека форме
- Подсистема помощи
Конструктор решений пользовательских задач:
- управление процессами (в т. ч. и со стороны другого процесса)
- обмен данными между процессами
- Минимальные аппаратные требования
Допущение: проще (и понятнее) всего обмениваться с системой текстами.
Интерфейс командной строки
Пользователь взаимодействует со специальной программой -- интерпретатором командной строки (shell-ом)
- Алгоритм взаимодействия:
Пользователь вводит команду -- одно или несколько разделённых пробезами слов, завершающихся переводом строки.
Первое слово в командной строке -- это команда. Все остальные слова -- параметры (модификаторы выполнения).
- Команда может быть:
Собственной командой интерпретатора. Эта каоманда выполняется, с учётом переданных параметров.
Именем программы (утилиты). Программа запускается и ей передаются все параметры (включая имя программы).
- Неизвестно чем. Интерпретатор выдаёт пользователю ошибку, алгоритм заканчивается
- Пока выполняется команда (или работает запущенная программа), вводить новые команды нельзя.
В процессе выполнения выдаются разные текстовые сообщения -- диагностика. Предполагается, что пользователь из читает.
- После того, как команда (утилита) отработала, shell снова готов интерпретировать команды.
- Договорённости о формате параметров
Содержательные параметры (соответствующие каким-нибудь объектам, например, именам файлов) передаются без изменений
Модификаторы выполнения команды -- ключи -- только влияют на её поведение. Ключи имею особый внешний вид:
Однобуквенные ключи имеют вид "-буква" (начинаются на "-"). Для удобства запоминания буква -- первая буква слова, объясняющего, что делает этот ключ.
Полнословные ключи имеют вид "--слово" (начинаются на "--").
Пример: команда, выдающая текущую дату и время
Команда date выводит текущую дату и время
Команда date -u (с буквенным ключом "-u", от английского universal) выводит текущую дату и время по Гринвичу и на английском языке (в т.н. универсальном формате)
Команда date --universal (с полнословным ключом "--universal") делает то же самое