- •1.4 Структура операционных систем
- •1.4.1 Монолитная система
- •1.4.2 Многоуровневая структура ос
- •1.4.3 Модель экзоядра
- •1.4.4 Микроядерная архитектура (модель клиент-сервер)
- •1.4.5 Обобщение сравнения моделей
- •Интерфейс пользователя
- •Команды
- •Командная строка
- •Договоренности о формате командной строки
- •C.5.4. Переназначение потоков.
- •C.5.5. Переназначение стандартного потока ошибок (в unix).
- •C.5.6. Перенаправление потока ввода.
- •C.5.7. Конвейерная обработка.
- •Управление потоком выполнения
- • Стандартный ввод/вывод
- •Диагностика и другие виды вывода
- •Командные строки и конвейеры
- •Специальные символы
- •8.2.1. Запуск команды в фоновом режиме (символ &)
- •8.2.2. Последовательное выполнение команд (символ ;)
- •8.2.4. Отмена специального значения (метасимвол кавычки)
- •8.2.4.1. Использование кавычек для отмены значения символа пробел
- •Использование кавычек
- •Окружение
- •Переменная окружения
- •Взаимодействие процессов посредством окружения
- •Переменные Shell
- •Позиционные параметры
- •Файловая система
- •Структура файловой системы
- •Монтируемые файловые системы
- •Интерфейс с файловой системой
- •Разновидности файлов
- •Обычные файлы
- •Файлы-каталоги
- •Специальные файлы
- •Связывание файлов с разными именами
- •Именованные программные каналы
- •Файлы, отображаемые в виртуальную память
- •Синхронизация при параллельном доступе к файлам
- •Процессы
- •Процессы
- •Атрибуты процесса
- •Идентификатор процесса (pid)
- •Идентификатор родительского процесса (ppid)
- •Поправка приоритета (ni)
- •Терминальная линия (tty)
- •Реальный (uid) и эффективный (euid) идентификаторы пользователя
- •Реальный (gid) и эффективный (egid) идентификаторы группы
- •Атрибуты файлов
- •Порождение процессов в Linux
- •Управление процессами
- •Типы процессов
- •Права доступа к файлам и каталогам
- •Жизненный цикл процесса в unix и основные системные вызовы
- •Контекст процесса
- •Приоритеты процессов
- •Создание процесса
- •Сон и пробуждение
- •Завершение выполнения процесса
- •Получение информации о процессах
- •Управление приоритетом процессов
- •Сигналы: посылка и обработка
- •Доставка и обработка сигнала
- •Основные сигналы
- •Посылка сигналов
- •Сигналы, посылка сигналов, команда kill
- •Приоритет выполнения процесса, команда nice
- •Текущий контроль процессов, команды ps и top
- •Защита фоновых процессов, команда nohup
- •Пользователь
- •. Привилегированный пользователь
- •Управление пользователями и правами доступа База данных пользователей системы
- •Изменение базы данных пользователей
- •Изменение прав доступа
- •Ограничения сеанса пользователя
- •Команды архивирования файлов
- •4.7.1. Программа tar
- •4.7.2. Программа gzip
- •4.7.3. Программа bzip2
- •Команды поиска grep и find
- •5.5. Перенаправление ввода/вывода, каналы и фильтры
- •5.5.2 Оператор |
- •5.5.3 Фильтры
- •Сигналы
- •Приложение. Список реентерабельных функций
- •Регистрация системных сообщений, система syslog
- •Конфигурационный файл демона syslogd
- •Info Информационные сообщения
- •Учет продолжительности соединений
- •Пользователи и группы
- •Файл /etc/passwd
- •Файл /etc/group
- •Файл /etc/shadow
- •Системные регистрационные имена
- •Изменение действующего идентификатора пользователя
- •Изменение действующего идентификатора группы
- •Правила построения паролей
- •Действие команды passwd
- •Изменение пароля и характеристик учетной записи, связанных с регистрацией
- •Устаревание паролей
- •Показ атрибутов пароля
- •Стандартные значения атрибутов
- •Просмотр базы данных учетных записей
- •Получение списка зарегистрировавшихся пользователей
- •Средства создания, изменения и удаления учетных записей пользователей
- •Средства создания, изменения и удаления групп
Договоренности о формате командной строки
Можно различить два вида параметров: те, что изменяют поведение команды, и те, что передают команде дополнительную информацию (классическое разделение на поток управления и поток данных). Первый вид называется ключами (options), а второй - собственно параметрами. Параметры могут выглядеть как угодно (имена файлов, фамилии сотрудников, регулярные выражения, вообще любой текст), а ключи обычно имеют строго определенный вид.
Существует две договоренности по формату ключей. Первая - так называемый UNIX style, или односимвольный формат. Чтобы отличаться от параметра, ключ должен начинаться с символа " - ". Второй символ - собственно ключ, он указывает, как именно видоизменяется работа команды. Например, утилита ls показывает список файлов в текущем каталоге. Команда ls имя-каталога воспринимает второй аргумент как параметр и показывает список файлов, находящихся в каталоге имя-каталога. Командыls -l или ls -l имя-каталога покажут соответствующие списки в "длинном" (long) формате: вдобавок к именам файлов будет выведено немало дополнительной информации. Очень неплохо, если при именовании ключа соблюдается принципаббревиативности: имя ключа - буква, с которой начинается имя производимого им действия.
Если так случилось, что параметр начинается с символа (например, параметр - отрицательное число), то существует специальныйключ " -- " (" - " - это имя ключа, перед которым, по договоренности, должен стоять признак ключа, т. е. еще один " - "), который означает, что все последующие аргументы, как бы они ни выглядели, будут параметрами, а не ключами. Например, утилитаcat занимается выводом на стандартное устройство вывода (терминал) всего того, что считала со стандартного устройства ввода. (Если вы запустили cat без параметров, нажмите клавишу Ctrl и одновременно D). В виде " cat имя-файла " cat выводит содержимое файла имя-файла. Поэтому для вывода на терминал содержимого файла -minus-first нужно ввести что-то вродеcat -- -minus-first.
Вторая договоренность по формату ключей носит название GNU style (или полнословный формат), так как зародилась она в недрах сообщества GNU, занимающегося свободным программным обеспечением (см. [ 14 ] ). Причина появления этой более новой договоренности проста. Если команда имеет слишком широкие возможности, у нее появляется слишком много ключей. Запомнить или хотя бы отыскать в документации однобуквенный ключ (скорее всего, уже не аббревиативный, потому что букв на всех не хватает) непросто. Налицо явное нарушение У. Отчасти компенсировать это нарушение можно, если не слишком жестко придерживаться З и разрешить команде использовать ключи, имена которых говорят сами за себя. Полнословный ключ начинается с двух минусов и далее содержит одно (или чуть больше) слов-описателей, разделенных также знаком "-". Например, ключ -A(All) предписывает утилите ls вывести имена всех, в том числе "скрытых" файлов (файл, чье имя начинается на . считается скрытым; именно такие имена бывают у файлов и каталогов, создаваемых утилитами UNIX автоматически для своих нужд), кроме ".." и " .", имеющих специальный смысл. В нотации GNU этот ключ выглядит как --almost-all. Гораздо понятнее, но в шесть раз длиннее.
Часто используются так называемые параметрические ключи, т. е. ключи, которым самим требуются параметры. Например, в очень многих утилитах ключ -o означает перенаправление вывода в файл, поэтому следующий за ним параметр должен быть именем этого выходного файла. Скажем, утилита постраничного просмотра файлов less может записывать протокол работы пользователя вфайл. Для этого ее надо вызвать с параметрами less что-смотрим -o протокол или, в нотации GNU, less что-смотрим --log-file=протокол. Обратите внимание на символ =, именно так в полнословном формате указывается параметр ключа.
5.Типы команд Shell и примеры команд
6.Стандартные потоки в UNIX и управление ими
Поток , скажем так, представляет собой некоторый буфер в памяти, куда поступает или откудавыбирается информация. Существуют следующие стандартные потоки:
1. Стандартный поток ввода - это обычно клавиатура.
2. Стандартный поток вывода - это обычно монитор.
3. Стандартный поток вывода ошибок и диагностических сообщений (стандартный поток ошибок) - это обычно дисплей (монитор).
