
- •Особенности системы. Основные понятия
- •Основные компоненты ос unix
- •Начало работы с командной строкой, командами, процессами
- •Вход пользователя
- •Ввод простых команд
- •Печать времени
- •Получение информации о работающих пользователях
- •Уничтожение процесса
- •Выход пользователя
- •Формирование команд
- •Формат команд
- •Стандартные файлы
- •Перенаправление стандартного ввода-вывода
- •Организация конвейеров команд
- •Использование метасимволов
- •Файловая система ос unix
- •Общие сведения
- •Структура
- •Именование файлов
- •Механизм защиты файлов
- •Работа с файлами и каталогами
- •Вывод содержимого каталога
- •Изменение текущего каталога
- •Создание каталога
- •Вывод имени текущего каталога
- •Переименование каталога
- •Удаление пустого каталога
- •Вывод содержимого файла, конкатенация файла и создание файла
- •Переименование и перемещение файлов
- •Копирование файлов
- •Удаление файлов и каталогов
- •Установка и изменение режима доступа к файлу
- •Лабораторная работа №6 Управление процессами в ос Linux
- •Введение
- •О процессах linux
- •Клонирование процессов, процессы init и exec
- •Стандартные ввод и вывод
- •Элементарные операции над процессами
- •Перенаправление ввода и вывода
- •Операторы перенаправления ввода-вывода Linux перечислены в таблице 1.
- •Связывание процессов с помощью каналов (конвейеров)
- •Многозадачность
- •Приоритетный и фоновый режимы
- •Мониторинг многозадачной среды
- •Информация о состоянии процессов. Мониторинг процессов с помощью ps
- •Теперь, посмотрим результат вывода следующей команды:
- •Получение списка пользователей, работающих в системе
- •Запуск команд в заданное время с помощью команд at и batch
- •Запуск команд в определенное время с помощью команды at
- •Первая команда
- •После ввода всей команды вы увидите на дисплее нечто, наподобие:
- •Управление многозадачностью
- •Использование команды nohup
- •Изменение приоритета команд с помощью nice
- •Изменение приоритета работающего процесса с помощью renice
- •Прекращение процесса с помощью kill
- •Лабораторная работа №7 Командный интерпретатор shell
- •Запуск и выход из оболочки
- •Интерпретация командной строки
- •Последовательное выполнение команд (символ ;)
- •Специальные символы
- •Поиск всех символов (метасимвол *)
- •Поиск по одному символу (метасимвол ?)
- •Использование кавычек для отмены значения символа пробел
- •Создание простых программ shell и их выполнение
- •Ограничения при именовании программ shell
- •Переменные
- •Позиционные параметры
- •Специальные параметры
- •Именованные переменные
- •Удаление переменных
- •Присвоение значений переменным
- •Использование команды read
- •Арифметические операции: команда let
- •Конструкции языка программирования Shell
- •Комментарии
- •Оператор for
- •Оператор while
- •Условные операторы. Оператор if ... Then
- •Общий формат конструкции if
- •Безусловная передача управления
- •Отладка программы
- •Лабораторная работа №8 Работа в графической среде X Windows
- •К кнопка
- •Линейка пиктограмм
- •Кнопки виртуальных Рабочих столов
- •Список задач
- •Настройка kde
- •Центр управления kde
- •Настройка Панели
- •Добавление ссылок на приложения в Панель kde
- •Работа с файлами и каталогами в kde
- •Файловая система
- •Файловый менеджер Konqueror
- •Операции с файлами и каталогами с помощью файлового менеджера Konqueror
- •Создание файлов и каталогов
- •Изменение атрибутов файла
- •Редактирование файла
- •Работа со стандартными приложениями kde
- •Уничтожение окон в kde (аварийное закрытие программ)
- •Выход из kde
- •Ваши последние действия
- •Содержание
-
Элементарные операции над процессами
В данной работе, для организации интерфейса ОС LINUX с пользователем используется командный интерпретатор shell, который идентичен своему аналогу в ОС UNIX. Поэтому, для выполнения контрольного задания, можно пользоваться такими командами как cat [файл] и ls -F – для просмотра содержимого текстового файла и содержимого текущего каталога соответственно, т.к. в дальнейшем они больше упоминаться не будут.
-
Перенаправление ввода и вывода
Множество программ принимают информацию с терминала или клавиатуры и выводят ее на экран терминала. В Linux ввод с клавиатуры связан с чтением из файла под названием stdin, а вывод на терминал – с выводом в файл под названием stdout. Можно перенаправить ввод и вывод так, чтобы вместо ввода с терминала или вывода на терминал информация считывалась из файла или направлялась в файл.
Для перенаправления ввода команды или программы так, чтобы для ввода использовался файл, а не терминал применяется оператор < (символ «меньше»). Предположим, что нужно отправить файл с именем info по электронной почте адресату Sasha. Вместо того чтобы вручную перепечатывать содержимое файла для команды mail, укажите этой команде использовать файл info в качестве входного (stdin):
#mail Sasha < info
Для перенаправления вывода программы в файл применяется оператор > (символ «больше»). Вместо выдачи на экран терминала, информация помещается в файл. При этом, если файл с таким именем уже был – его содержимое замещается, а если нет, то такой файл создаётся. Команда date отображает на экране текущее время и дату. Чтобы сохранить текущее время и дату в файле с именем now воспользуемся командой:
#date > now
Если нужно добавить или дописать информацию в конец существующего файла, используется двухсимвольный оператор >>. Для добавления текущей даты в файл с именем report наберём в командной строке:
#date >> report
Рассмотрим в качестве примера ещё три команды:
#date >> sales_report
#sort < sales >> sales_report
(аналогично: #sort sales >> sales_report)
#mail Sasha Jack < sales_report
В первой строке примера вывод команды date дописывается в файл sales_report. Во второй строке примера команда sort считывает ввод из файла sales, а вывод добавляется к файлу sales_report. Последней строкой файл sales_report отправляется пользователям Sasha и Jack по электронной почте.
Операторы перенаправления ввода-вывода Linux перечислены в таблице 1.
Таблица 1. Операторы перенаправления ввода-вывода в Linux
Оператор |
Значение |
Пример |
< |
Принять ввод из файла |
mail sasha < report |
> |
Направить вывод в файл |
date > now |
>> |
Добавить вывод в конец файла |
date >> report |
-
Связывание процессов с помощью каналов (конвейеров)
Часто возникает необходимость использовать вывод одной программы в качестве ввода другой. Вместо того, чтобы вводить каждую команду по отдельности и сохранять результаты в промежуточных файлах, свяжите последовательные команды с помощью канала ( | ). Название канал (конвейер) весьма точно отражает суть происходящего. Информация, выдаваемая программой слева от канала (вертикальной черты), передается через канал и поступает на вход программы справа. С помощью каналов можно связывать несколько процессов при этом следует учесть, что все программы запускаются одновременно. Если же для разделения команд между собой в одной строке вы используете как точку с запятой, так и символ конвейера, то перед каждой точкой с запятой shell будет останавливаться и ожидать, пока не выполнятся все предыдущие команды – как отдельные, так и объединённые в конвейер.
В качестве примера, рассмотрим часто используемый на практике приём постраничного вывода большого объёма текстовой информации на экран монитора:
#ps -uax | more
Вторая команда more – это программа, при помощи которой длинные файлы показываются постранично, а не целиком (формат команды more [-флаги] [файл1..]). Чтобы показать следующую страницу, следует нажать клавишу пробела, а для выхода – q.
При использовании конвейеров, бывает чрезвычайно полезна команда tee [-a] [файл], которая копирует стандартный ввод на стандартный вывод или, дополнительно, – в указанный файл. Если он уже существует, то его содержимое замещается, а при указании опции –a происходит дописывание в конец файла. Фактически, она позволяет снимать промежуточные результаты при «длинных» конвейерах и выводить их либо на терминал, либо в указанный файл (файлы).
Воспользовавшись только лишь рассмотренными командами можно уже, запрограммировать достаточно сложную последовательность действий, которую на практике, иногда, приходится многократно повторять. Так, например, следующие две команды формируют файл, состоящий из отсортированного файла sales.dat, трёх чисел задающих соответственно – число строк, слов и байтов отсортированного файла sales.dat, и в последней строке указана дата создания этого файла:
#sort sales.dat | tee sales.srt | wc >> sales.srt
date >> sales.srt
Используемая здесь команда wc имеет своим входом текстовую информацию, а выходом – три описанных выше числа.