рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Работа с файлами и папками ASP Linux

Работа с файлами и папками ASP Linux - раздел Компьютеры, Оперциаонные системы ASP Linux и Windows Работа С Файлами И Папками Asp Linux. Работа С Системой Linux В Текстовом Реж...

Работа с файлами и папками ASP Linux. Работа с системой Linux в текстовом режиме, т.е. с консоли или терминала, позволяет быстрее и удобнее выполнить многие действия в системе, по сравнению с графическим режимом.

Даже находясь в графическом режиме, часто быстрее открыть окно эмулятора терминала, и выполнять необходимые действия в нем. Поскольку Linux- это многозадачная ОС, уже в текстовом режиме обеспечивается возможность работы в нескольких окнах.

А для редактирования простого текста или html-файла вовсе не обязательно запускать достаточно тяжеловесную и медленную графическую оболочку.

Взаимодействие с пользователем организует специальная программа.

Существует два вида таких программ- оболочка, или shell, для работы в текстовом режиме интерфейс командной строки и графический интерфейс пользователя GUI Graphical User Interface, организующий взаимодействие с пользователем в графическом режиме.

Выполнение команд в shellОдна из основных функций оболочки состоит в том, чтобы организовать исполнение команд пользователя, вводимых им в командной строке.

Формат команд в ОС LINUX следующий имя команды аргументы параметры метасимволы. Имя команды может содержать любое допустимое имя файла аргументы - одна или несколько букв со знаком минус - параметры - передаваемые значения для обработки метасимволы интерпретируются как специальные операции.

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

На первом этапе осуществляется поиск кода команды.

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

Для этого используется специальный символ -оператор. Если не поставить этот разделитель команд, то последующая команда может быть воспринята как аргумент предыдущей. Таким образом, если написать в командной строке что-то вроде user command1 command2 то оболочка вначале запустит на выполнение команду command1, дождется, пока ее выполнение завершится, после чего запустит command2, дождется ее завершения, после чего снова выведет приглашение командной строки, ожидая следующих действий пользователя. 2 Оператор Оператор используется для того, чтобы организовать исполнение команд в фоновом режиме.

Если поставить значок после команды, то оболочка вернет управление пользователю сразу после запуска команды, не дожидаясь, пока выполнение команды завершится.

Например, если задать в командной строке command1 command2 , то оболочка запустит команду command1, сразу же затем команду command2, и затем немедленно вернет управление пользователю. 2.1.1. Команды работы с каталогами Понятие файлаФайл - единица информации, поименованный набор логически связанных данных таблицы, программа, текст и пр. Обращение к файлу по его уникальному имени собственное имя файла, структура имени имя-файла .тип Возможные расширения типы для текстовых файлов txt, doc графических файлов bmp, jpg и т.д. В UNIX расширения имен, определяющие тип файла, не обязательны. Все файлы имеют собственные описатели дескрипторы и хранятся во внешней памяти.

Физические адреса файлов на внешней памяти концентрируются в специальных файлах - каталогах. Структура системы каталогов LinuxСтроится в иерархической системе внешней памяти на блочных устройствах. Рис. 2.1.1. Структура системных каталогов Linux На рисунке 2.1.1. представлены следующие группы каталогов 1 - коренной каталог системы строится при инсталляции ОС 2 - системные каталоги инсталляция 3 - каталоги группы пользователей определяет администратор 4 - головные личные каталоги пользователей строятся при авторизации - HOME-каталоги 5 - рабочие каталоги и файлы пользователей Некоторые системные каталоги vmunix - ядро ОС bin - утилиты оболочки dev - файлы устройств tmp - адреса рабочих пространств памяти пользователей, выделяемых супервизором памяти ОС по запросам системных вызовов из программ пользователей etc - файлы администратора mnt - каталог монтирования новых файловых систем home - данные головных каталогов всех пользователей системы.

В UNIX как и в DOS используется простой способ описания пути к файлу в иерархической системе каталогов - полное маршрутное имя файла абсолютное маршрутное cat home user lev f1 относительные маршрутные имена файлов - от головного каталога группы пользователей - user lev f1 - от головного личного каталога пользователя - f1 или lev f1 - от текущего рабочего в данный момент каталога системное имя текущего каталога скрытый файл системное имя вышележащего каталога скрытый файл. Основные команды работы с каталогами manназвание команды - вызов электронного справочника об указанной команде.

Например man exit - выведет справку по команде exit. Выход из справочника - нажатие клавиши Q. Команда man man сообщает информацию о том, как пользоваться справочником.

Помимо справочника можно воспользоваться командой help. Для этого нужно набрать команда help Например exit help - выведет справку по команде exit. cd имя директории- смена текущего каталога.

В качестве имени директории можно указывать элементы . и . mkdir имя директории - создание каталога. Вновь созданный каталог не содержит элементов, за исключением . ссылка на текущий каталог и ссылка на вышележащий каталог . rmdir имя директории - удаление каталога. ls -alrstu namedir - вывод содержимого каталога если в качестве namedir указано имя файла, то выдается вся информация об этом файле.

Если аргумент не указан, выдается содержимое текущего каталога. Значения некоторых аргументов - l - список включает всю информацию о файлах - F - добавление к имени каталога символа и символа к имени файла, для которых разрешено выполнение - a - в список включаются все файлы, в том числе и те, которые начинаются с точки - i - указать идентификационный номер каждого файла - R - рекурсивный вывод содержимого подкаталогов заданного каталога. find список каталогов условия поиска -определение полных имен файлов в поддереве каталогов, удовлетворяющих заданным условиям поиска.

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

На экран выводятся полные маршрутные имена файлов, свойства которых обеспечивают истинность этой функции. Элементарные логические функции ! условие отрицание условия пробел соответствует операции И -o операция ИЛИ выражение булевское выражение в скобках. При описании команды используются обозначения n положительное десятичное число -n любое положительное десятичное число, строго меньшее n n любое положительное десятичное число, строго большее n. Условия задаются следующими опциями -name имя файла истинно для файлов с указанным именем. -perm 8-ричный код истинно для файлов с указанным кодом прав доступа. -type f d b c p истинно для файлов указанного типа. -links n истинно для файлов с числом ссылок n. -user имя пользователя истинно для файлов, принадлежащих данному пользователю. -size n c истинно для файлов с длиной n число блоков или с - в символах байтах . -exec команда истинно, если команда возвращает нулевой код завершения true, т.е. опция выполняет команда для каждого найденного файла.

Все аргументы команды find разделяются пробелами.

Примеры использования команды find 1 команда выводит на экран список файлов с именами fil или файлов у которых имя владельца petr find name fil. -o -user petr -exec cat 2 поиск файлов, не являющихся директориями в текущем каталоге и его подкаталогах find type d 3 команда осуществит поиск в корневом каталоге всех директорий, на которые существуют более трех жестких ссылок find -type d -links 3 grep -ключи шаблон список файлов - поиск в файлах из списка файлов строк, содержащих указанный шаблон подстрока символов. Ключи определяют режимы поиска и вывода -c выводятся имена всех просмотренных файлов и количество найденных строк, содержащих шаблон -n перед каждой строкой выводится ее относительный номер в файле и сама строка -i игнорируются регистры -l выводятся только имена файлов, содержащие найденные строки и др. Например grep -c aaa f.1 10 f.2 3 f.3 1 В рассмотренном примере выводятся все имена файлов текущего каталога, содержащих подстроку aaa и количество таких строк в каждом из них. В нижеследующем примере выводятся только имена файлов, содержащих строки с шаблоном aaa. grep -n bbb NewLine f.1 5 abbbbaaacc f.2 2 b f.6 1 bbb Практическая работа 2 1 Основные команды работы с каталогамиЦель работы 1. Изучить архитектуру и принципы функционирования многопользовательской многозадачной операционной системы Linux 2. Изучить основные команды работы с каталогами ОС Linux Порядок выполнения работыИзучаются команды mkdir - создание каталога rmdir - удаление каталога cd - перемещение по дереву каталогов pwd - определение текущего каталога ls - просмотр содержимого каталога more - постраничный вывод информации man - вызов руководства по команде. 1 Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал. 2 Изучить команды работы с каталогами, для этого выведите на экран Терминала справку по следующим командам pwd, mkdir, rmdir, cd, ls. Назначение и формат команд приведите в отчете. 3 Определите Ваш текущей каталог.

Просмотрите его содержимое и приведите его в отчете. 4 Перейдите в каталог Вашей группы и создайте в нем личный каталог. 5 Определите уникальное имя номер индексного указателя Вашего личного каталога.

Объясните структуру полного маршрутного имени каталога. 6 Создайте два поддерева из одного и из двух каталогов в каталоге Вашей группы.

Используя команду ls, проверьте факт построения дерева подкаталогов. 7 Просмотрите содержимое пустых подкаталогов, т.е. новых подкаталогов, не содержащих файлов.

Объясните их содержание. 8 Сделайте текущим последний каталог меньшего поддерева.

Определите его полное маршрутное имя. 9 Уничтожьте все подкаталоги большего поддерева каталогов. Получите подтверждение выполнения команд. 10 Выведите на экран содержимое корневого каталога. Приведите его в отчете. Какие каталоги расположены в корневой директории, каково их назначение? 11 Завершите сеанс работы с системой. Практическая работа 2 2 Поиск файлов в системе каталоговЦель работы 1. Изучить архитектуру и принципы функционирования многопользовательской многозадачной операционной системы Linux 2. Научиться осуществлять поиск файлов в системе каталогов Порядок выполнения работыИзучаются команды find - поиск файлов в системе каталогов more - постраничный вывод информации man - вызов руководства по команде grep - поиск в файлах указанный шаблон еxit - выход из терминала 1 Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал. 2 Изучить команды работы с каталогами, для этого выведите на экран Терминала справку по следующим командам find, grep. Назначение и формат команд приведите в отчете. 3 Установите в качестве текущего HOME-каталог. 4 Найдите обычные файлы с определением их полных маршрутных имен. 5 Осуществите поиск файлов типа директория в Вашем личном каталоге. 6 Найдите в текущем каталоге все файлы, на которые имеются жесткие ссылки. 7 Найдите файлы блок-ориентированного типа из каталога dev и его подкаталогов. 8 Осуществите поиск обычных файлов на диске, размер которых не превышает 2 Кб. 9 Задайте различные комбинации известных Вам условий поиска файлов и каталогов. 10 Выведите на экран принадлежащую Вам регистрационную запись с использованием команды grep. 11 Завершите сеанс работы с системой. 2.1.4. Команды работы с файлами управление файлами, генерация имен файловУправление файламиНиже приведены форматы команд, использующихся для управления файлами маршрутное-имя-файла - создание пустого файла. cat имя-файла - вывод содержимого файла на экран. cat имя-файла - перенаправление информации, вводимой с клавиатуры с заменой содержимого файла. cat входной файл 1 входной файл2 входной файл N выходной файл - слияние файлов grep -ключи шаблон список файлов -поиск в файлах из списка файлов строк, содержащих указанный шаблон подстрока символов. Ключи определяюobt режимы поиска и вывода -c выводятся имена всех просмотренных файлов и количество найденных строк, содержащих шаблон -n перед каждой строкой выводится ее относительный номер в файле и сама строка -i игнорируются регистры -l выводятся только имена файлов, содержащие найденные строки и др. touch -k имя-файла - замена времени модификации на текущее, если файл не существует, то создается новый пустой файл. Команда может использоваться для создания новых пустых файлов, если указать имя несуществующего файла. wc -lwc список файлов - подсчет количества строк -l, слов -w, или символов -c в указанных файлах. cp -k вх файл 1 вх файл 2 вх файл n вых файл - копирование файлов.

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

Если создается новый вых файл, то ему присваиваются атрибуты копируемого. 2-й Если вых файл - каталог, то в него последовательно копируются все указанные вх файлы со своими атрибутами и именами, но каталог при этом автоматически не создается. Примеры использования команды cp Создается новый файл FIL.c в том же текущем головном каталоге.

Для копирования в другой каталог необходимо указать маршрутное имя выходного файла cd cp fil.c FIL.c Входной файл fil.c сохраняется в исходном текущем каталоге mkdir petr mkdir lev1 cp fil.c lev1 prog.c Групповые операции над файлами при копировании cp f fildir cp f. 1-3 fildir cp f. 123 fildir mv -k вх ф йл 1 вх ф йл 2 вх ф йл n вых файл - перемещение или переименование файлов Отличия от предыдущей команды копирования заключаются в том, что перемещаемые файлы в исходном каталоге уничтожаются.

Генерация имен файлов и каталогов Pathname Expansion Подстановки имен путей и файлов Pathname expansion используются для того, чтобы с помощью краткого образца или шаблона указать несколько имен файлов или каталогов, соответствующих данному шаблону. Специальные символы шаблонов имеют следующее значение.

Таблица 2.1.4. Символы шаблонов Символ Правила замены Соответствует произвольной строке символов, включая пустую строку.

Например, my .txt будет заменено на myday.txt, myweek.txt и mymonth.txt если такие файлы существуют, а .jpg соответствует всем файлам с расширением jpg в указанном каталоге ? Соответствует любому одиночному символу.

Например, вместо шаблона file txt будут подставлены имена file1.txt и filex.txt, но не file10.txt Соответствует любому символу из числа символов, указанных в скобках.

Пары символов, разделенные знаком минуса, обозначают интервал любой символ стоящий лексически между этими двумя символами, включая и символы, задающие интервал, соответствует шаблону.

Если первым символом внутри скобок является ! или, то считается, что шаблону в данной позиции соответствуют все символы, не указанные в скобках Шаблоны имен файлов очень часто применяются в командных строках, содержащих команду ls. Представьте себе, что вы хотите просмотреть информацию о содержимом каталога, в котором находится огромное количество разных файлов различных форматов, например, файлов с изображениями форматов gif, jpeg, avi и т.д Чтобы получить только список файлов формата jpeg, вы можете использовать команду user ls .jpg Если в каталоге имеется множество файлов, имена которых представлены четырехзначными номерами, то следующей командой можно вывести только список файлов с номерами от 0200 до 0499 user ls -l 0 2-4 Практическая работа 3 1 . Команды управления фаламиЦель работы 1. Изучить основные команды работы с файлами ОС Linux 2. Научиться создавать, объединять, удалять, переименовывать файлы.

Порядок выполнения работыИзучаются команды cat - слияние и вывод файлов на стандартное устройство вывода конкатенация файлов rm - удаление файла mv - переименование файла сp - копирование файлов wc - подсчет количества строк и слов в файле. 1 Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал. 2 Изучите команды работы с файлами, для этого выведите на экран Терминала справку по следующим командам cat, rm, mv, cp, wc. Назначение и формат команд приведите в отчете. 3 Перейдите в Ваш личный каталог и выведете на экран его содержимое. 4 Создайте 3-4 текстовых файла с частично совпадающими именами.

Проанализируйте значения атрибутов Ваших файлов. 5 Создайте еще один файл методом слияния из существующих. Как изменились атрибуты нового файла? 6 Создайте два новых параллельных подкаталога. 7 В один подкаталог скопируйте имеющиеся файлы HOME-каталога с изменением имен, а в другой - переместите.

Проанализируйте как изменилось содержание всех трех каталогов и каковы атрибуты всех полученных файлов. 8 Удалите созданные текстовые файлы и каталоги.

Выйдите из программы Терминал.

Практическая работа 3 2 Использование шаблонов в именовании файловЦель работы 1. Изучить понятие шаблона, способы задания шаблонов файлов 2. Научиться осуществлять просмотр директорий, копирование, удаление, и поиск файлов, используя шаблоны файлов.

Порядок выполнения работы1 Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал. 2 Осуществите поиск всех файлов в домашнем каталоге, которые имеют расширение txt. 3 Осуществите поиск директорий, в составе имени которых, имеется любой однозначное число. 4 Осуществите в корневом каталоге поиск всех файлов, содержащих в составе имени слово linux. 5 Создайте в Вашем личном каталоге структуру каталогов, содержащих совпадающие имена. 6 Просмотрите содержимое файлов домашнего каталога с частично совпадающими именами с использованием механизма генерации имен файлов. 7 Просмотрите содержимое файлов каталога dev с частично совпадающими именами с использованием механизма генерации имен файлов. 8 С использованием механизма генерации имен файлов слейте содержимое всех файлов в один и поместите его в HOME-каталог.

Проанализируйте содержание файла. 9 С использованием механизма генерации имен файлов слейте содержимое всех файлов в один и поместите его в HOME-каталог.

Проанализируйте содержание файла. 10 С использованием механизма генерации имен скопируйте из Вашего личного каталога все файлы с частично совпадающими именами в домашний каталог. 11 С использованием механизма генерации имен удалите в Вашем личном каталоге все файлы с частично совпадающими именами. 12 С использованием механизма генерации имен удалите в Вашем личном каталоге все каталоги с частично совпадающими именами. 13 Удалите из домашнего каталога скопированные ранее файлы и завершите работу с программой Терминал. 2.1.7. Команды работы с файлами ссылки, сортировка файлов ln -ключ вх файл 1 вх файл 2 вх файл n вых файл - организация новых ссылок на файл. В формате команды заложено 2 режима ее использования 1-й Если вых файл - обычный файл, то допускается только один вх файл 1 в этом случае на н равным именам вх файл 1 и вых файл. Количество ссылок на файл в его описателе увеличивается на 1. 2-й Если вых файл - каталог, то в нем создаются элементы, включающие имена перечисленных в команде входных файлов и ссылки на них, после чего в каталоге вых файл можно работать с этими файлами, как с файлами этого каталога.

Возможно создание символьных и жестких ссылок. При создании жесткой ссылки ключ в команде не указывается.

Символьная ссылка создается командой ln с ключом s. Символьная ссылка ссылается на полное имя файла, жесткая - на его инод числовой номер, присеваемый файлу при его создании. Обобщение свойств команды ln при создании жесткой ссылки - каждая ссылка на входной файл добавляет 1 к числу ссылок входного файла, после чего к упомянутому файлу можно обращаться по двум именам - все связанные файлы имеют совпадающие описатели в каталогах - если изменяется содержимое одного из связанных файлов, то меняется содержимое всех связанных файлов, т.к. связанные файлы разделяют одни и те же данные на диске - если удалить один из связанных файлов, то сокращается число взаимных ссылок на -1. ls -alrstu namedir - вывод содержимого каталога если в качестве namedir указано имя файла, то выдается вся информация об этом файле.

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

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

Цель работы 1. Изучить понятие ссылки на файл. 2. Научиться создавать жесткие и символьные ссылки на файлы. Порядок выполнения работыИзучаются команды ln - создание ссылки на файл ls - просмотр атрибутов файла. 1 Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал. 2 Выведите на экран Терминала справку по следующим командам ln, ls. Назначение и формат команд приведите в отчете. 3 Перейдите в Ваш личный каталог и создайте в нем текстовый файл и любой подкаталог. 4 Создайте жесткую ссылку с другим именем в созданном подкаталоге на созданный файл. Проанализируйте и сравните все атрибуты связанных файлов.

Объясните отличия. 5 Уничтожьте один из связанных файлов.

Проанализируйте и сравните все атрибуты связанных с ним файлов. Объясните изменения. 6 Просмотрите содержание связанных файлов. Каков был результат просмотра? 7 Создайте символьную ссылку с другим именем в созданном ранее подкаталоге. Проанализируйте и сравните все атрибуты связанных файлов. Объясните отличия. 8 Создайте новый подкаталог в Вашем личном каталоге. 9 Создайте ссылки на несколько файлов, принадлежащих одному из каталогов домашней директории, в созданном ранее каталоге одной командной строкой.

Проанализируйте и сравните все атрибуты связанных файлов. Объясните отличия. 10 Завершите работу с программой Терминал. Практическая работа 3 4 Сортировка файловЦель работы 1. Научиться сортировать отображаемую информацию при просмотре директории. 2. Научиться осуществлять сортировку данных в файле. Порядок выполнения работыИзучаются команды sort - сортировка файлов ls - просмотр содержимого каталога touch - замена времени модификации файла на текущее. 1 Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал. 2 Выведите на экран Терминала справку по следующим командам sort, touch.

Назначение и формат команд приведите в отчете. 3 Просмотрите содержимое корневого каталога с выводом размеров файлов, содержащихся в директории, в блоках. 4 Упорядочите по алфавиту строки суммарного файла HOME-каталога. 5 Просмотрите содержимое любой директории отсортировав отображаемую информацию по времени последнего доступа к файлу. 6 Обновите временные характеристики одного из существующих файлов.

Проанализируйте результат. 7 Просмотрите содержимое директории, содержащей файл с обновленными временными характеристиками отсортировав его по времени модификации файлов 8 Обновите временные характеристики несуществующего файла. Проанализируйте результат работы команды. 9 Просмотрите содержимое директории, содержащей созданный файл, используя сортировку по времени создания файла 10 Проанализируйте с использованием команды history содержание лабораторной работы, продумайте ответы на нижеприведенные контрольные вопросы и сдайте выполненную работу преподавателю.

Контрольные вопросы 43. Какие системные имена каталогов Вам известны? 44. Каким образом можно построить отдельный каталог или цепочку каталогов? 45. Для чего и каким образом переопределяются текущие каталоги? 46. Как обратиться к файлам параллельных ветвей дерева каталогов? К вышележащему каталогу? 47. Какие условия поиска файлов Вы знаете? Как комбинируются условия поиска? Как осуществить поиск по дереву каталогов? 48. Какова последовательность действий при удалении одного каталога? Цепочки каталогов? 49. Объясните назначение и содержание каждого поля каталога. 50. Как отличить по содержимому каталога типы файлов, содержащихся в Ваших каталогах. 51. Какую информацию содержит пустой вновь созданный каталог? 52. Как осуществить поиск файлов в системе каталогов по фрагментам текста файлов? 53. Назовите известные Вам способы создания пустых файлов. 54. Как создать текстовый файл? 55. Какие возможности сокращения записи имен файлов Вы знаете с использованием механизма генерации имен файлов? 56. Какие три команды этой лабораторной работы можно использовать для переименования файлов? Как в этом случае надо использовать команды? 57. Какими способами можно объединить несколько текстовых файлов в один? 58. В чем разница работы команд cp и mv? 59. Сколько ссылок можно создать на единственный файл из разных каталогов? 60. Как создать несколько ссылок с совпадающими именами на несколько файлов в другом каталоге? 61. Какое соответствие атрибутов имеют связанные между собой файлы? 62. На какой атрибут и как влияет удаление одного из связанных файлов? 63. Как отражается на содержимом связанных файлов изменение содержания одного из них и почему? 64. Какими возможностями обладает команда sort? Тема 2.2. Управление процессами2.2.1. Управление процессами Отображение информации о процессахВ Linux как и во всех UNIX-системах имеется команда ps, которая позволяет определить, какие процессы в системе запущены.

Если ее запустить без всяких параметров, то она выдает список процессов, запущенных в текущей сессии. ps -опции - определение запущенных в системе процессов Краткая характеристика наиболее важных опций - ax - список всех процессов, запущенных в системе -u - отображение ЦПУ и памяти занимаемых запущенными процессами -l - длинный формат отображения информации о процессах с выводом приоритета процесса и значениния nice Независимо от наличия опций команда ps выдает для каждого процесса отдельную строку, но содержимое этой строки может быть разным.

В зависимости от заданных опций могут присутствовать следующие поля USER- имя владельца процесса PID- идентификатор процесса в системе PPID- идентификатор родительского процесса CPU- доля времени центрального процессора в процентах, выделенного данному процессу MEM- доля реальной памяти в процентах, используемая данным процессом VSZ- виртуальный размер процесса в килобайтах RSS- размер резидентного набора количество 1K-страниц в памяти STIME- время старта процесса TTY- указание на терминал, с которого запущен процесс S или STAT- статус процесса PRI- приоритет планирования NI- значение nice см. описание команды nice ниже TIME- сколько времени центрального процессора занял данный процесс CMD или COMMAND- командная строка запуска программы, выполняемой данным процессом а также и другие поля, полный список которых приведен на man-странице, посвященной команде ps. В поле Статус процесса могут стоять следующие значения R- выполнимый процесс, ожидающий только момента, когда планировщик задач выделит ему очередной квант времени S- процесс спит D- процесс находится в состоянии подкачки на диске T- остановленный процесс Z- процесс-зомби.

Рядом с указателем статуса могут стоять дополнительные символы из следующего набора W- процесс не имеет резидентных страниц - высоко-приоритетеный процесс N- низко-приоритетный процесс L- процесс имеет страницы, заблокированные в памяти.

Например, результат выполнения нижеприведенной команды показал, что в системе работали на момент снятия данных два процесса sh с идентификатором 927, идентификатор процесса предка - 1 и ps с идентификатором 1001, идентификатор процесса предка - 927, т.е. sh порождает процесс ps. Терминалы с которых запущены процессы - tty5. ps -flu lev PID PPID TTY PRI TIME CMD 927 1 tty5 0 04 sh 1001 927 tty5 0 02 ps Для вывода листинга процессов, принадлежащих пользователю можно воспользоваться конструкцией ps -f grep имя пользователя. Команда top Команда ps позволяет сделать как бы моментальный снимок процессов, запущенных в системе.

В отличие от ps команда top отображает состояние процессов и их активность в реальном режиме времени. На рисунке 2.2.1. изображено окно терминала, в котором запущена программа top. Рис. 2.2.1. Вывод команды top В верхней части окна отображается астрономическое время, время, прошедшее с момента запуска системы, число пользователей в системе, число запущенных процессов и число процессов, находящихся в разных состояниях, данные об использовании ЦПУ, памяти и свопа.

А далее идет таблица, характеризующая отдельные процессы.

Число строк, отображаемых в этой таблице, определяется размером окна сколько строк помещается, столько и выводится.

Графы таблицы обозначены так же, как поля вывода команды ps. Содержимое окна обновляется каждые 5 секунд.

Приоритеты, значение nice и команда reniceПриоритет для каждого процесса устанавливается в тот момент, когда процесс порождается.

Приоритет процесса определяется так называемым значением nice, которое лежит в пределах от 20 наименьший приоритет, процесс выполняется только тогда, когда ничто другое не занимает процессор, до -20 наивысший приоритет. Значение nice устанавливается для каждого процесса в момент порождения этого процесса и при обычном запуске команд или программ принимается равным приоритету родительского процесса.

Но существует специальная команда nice, которая позволяет изменять значение nice при запуске программы.

Формат использования этой программы nice - adnice command args где adnice- значение от -20 до 19 , добавляемое к значению nice процесса-родителя. Полученная сумма и будет значением nice для запускаемого процесса. Отрицательные значения может устанавливать только суперпользователь. Если опция- adnice не задана, то по умолчанию для процесса-потомка устанавливается значение nice, увеличенное на 10 по сравнению со значением nice родительского процесса.

Очевидно, что если вы не суперпользователь, то применять эту команду имеет смысл только тогда, когда вы хотите запустить некий процесс с низким значением приоритета. Другая команда, renice, служит для изменения значения nice для уже выполняющихся процессов. Ее формат таков renice priority -p PID -g grp -u user Например, команда renice -1 987 -u daemon -p 32 увеличивает на 1 приоритет процессов с PID 987 и 32, а также всех процессов пользователя daemon.

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

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

Всего в Linux существует 63 разных сигнала, их перечень можно посмотреть по команде kill -l Сигналы принято обозначать номерами или символическими именами. Все имена начинаются на SIG, но эту приставку иногда опускают например, сигнал с номером 1 обозначают или как SIGHUP, или просто как HUP. Когда процесс получает сигнал, то возможен один из двух вариантов развития событий. Если для данного сигнала определена подпрограмма обработки, то вызывается эта подпрограмма. В противном случае ядро выполняет от имени процесса действие, определенное по умолчанию для данного сигнала.

Вызов подпрограммы обработки называется перехватом сигнала. Когда завершается выполнение подпрограммы обработки, процесс возобновляется с той точки, где был получен сигнал. Можно заставить процесс игнорировать или блокировать некоторые сигналы. Игнорируемый сигнал просто отбрасывается процессом и не оказывает на него никакого влияния. Блокированный сигнал ставится в очередь на выдачу, но ядро не требует от процесса никаких действий до разблокирования сигнала.

После разблокирования сигнала программа его обработки вызывается только один раз, даже если в течение периода блокировки данный сигнал поступал несколько раз. В табл. 2.2.1. приведены некоторые из часто встречающихся сигналов. Таблица 2.2.1. Сигналы Имя Описание Можно перехватывать Можно блокировать Комбинация клавиш 1 HUP Hangup. Отбой Да Да 2 INT Interrupt. В случае выполнения простых команд вызывает прекращение выполнения, в интерактивных программах- прекращение активного процесса Да Да Ctrl C или Del 3 QUIT Как правило, сильнее сигнала Interru Да Да Ctrl 4 ILL Illegal Instruction.

Центральный процессор столкнулся с незнакомой командой в большинстве случаев это означает, что допущена программная ошибка. Сигнал отправляется программе, в которой возникла проблема Да Да 8 FPE Floating Point Exception. Вычислительная ошибка, например, деление на ноль Да Да 9 KILL Всегда прекращает выполнение процесса Нет Нет 11 SEGV Segmentation Violation.

Доступ к недозволенной области памяти Да Да 13 PIPE Была предпринята попытка передачи данных с помощью конвейера или очереди FIFO, однако не существует процесса, способного принять эти данные Да Да 15 TERM Software Termination. Требование закончить процесс программное завершение Да Да 17 CHLD Изменение статуса порожденного процесса Да Да 18 CONT Продолжение выполнения приостановленного процесса Да Да 20 TSTR Сигнал останова, генерируемый клавиатурой. Переводит процесс в фоновый Да Да Ctrl Z Как видно из таблицы 2.2.1, некоторые сигналы можно сгенерировать с помощью определенных комбинаций клавиш.

Но такие комбинации существуют не для всех сигналов. Зато имеется команда kill, которая позволяет послать заданному процессу любой сигнал. Для посылки сигнала процессу или группе процессов можно воспользоваться командой kill в следующем формате kill -сигн PID PID где сигн- это номер сигнала, причем если указание сигнала опущено, то посылается сигнал 15 TERM- программное завершение процесса. Чаще всего используется сигнал 9 KILL , с помощью которого суперпользователь может завершить любой процесс.

Но сигнал этот очень грубый, если можно так выразиться, поэтому его использование может привести к нарушению порядка в системе. Поэтому в большинстве случаев рекомендуется использовать сигналы TERM или QUIT, которые завершают процесс более мягко. Наиболее часто команду kill вынужден применять суперпользователь. Он должен использовать ее для уничтожения процессов-зомби, зависших процессов они показываются в листинге команды ps как exiting, процессов, которые занимают слишком много процессорного времени или слишком большой объем памяти и т.д. Особый случай- процессы, запущенные злоумышленником.

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

Но можно запустить процесс в фоновом режиме, когда он не связан с терминалом. Для запуска процесса в фоновом режиме в конце командной строки запуска программы добавляют символ амперсанд. Например, в фоновом режиме запускается процесс cc prog.c cc prog.c 2388 Shell выводит номер этого процесса PID и разрешает ввод следующей команды. Фоновые процессы обладают некоторыми недостатками - не допускают ввода с клавиатуры - обспечивают вывод на экран, но при этом нарушают целостность вывода диалогового процесса.

Общепринятый прием исключения влияния фонового вывода на интерактивную работу ком строка имя файла.out - ком строка планирует задание для фонового режима - перенаправляет вывод вместо экрана в указанный файл головного каталога пользователя. Пример Запуск программы, осуществляющей поиск файлов по шаблону ааа, в фоновом режиме, результаты поиска перенаправляются в файл grep.out grep ааа grep.out 194 ps PID TTY TIME CMD 194 tty5 0 02 grep 200 tty5 0 01 ps В оболочке bash имеются две встроенные команды, которые служат для перевода процессов на передний план или возврата их в фоновый режим.

Но прежде, чем рассказывать об этих командах, надо рассказать о команде jobs. Она всегда вызывается без аргументов и показывает задания, запущенные из текущего экземпляра shell. В начале каждой строки вывода этой команды указывается порядковый номер задания в виде числа в квадратных скобках.

После номера указывается состояние процесса stopped остановлен, running выполняется или suspended приостановлен. В конце строки указывается команда, которая исполняется данным процессом. Один из номеров выполняющихся заданий помечен знаком, а еще один- знаком Процесс, помеченный знаком, будет по умолчанию считаться аргументом команд fg или bg, если они вызываются без параметров. Процесс, помеченный знаком получит знак, если только завершится по какой-либо причине процесс, который был помечен знаком. Команды fg и bg служат для перевода процессов на передний план или возврата их в фоновый режим.

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

Практическая работа 4 1 Команды управления процессами. Создание фоновых процессовЦель работы 1. Закрепить представление о возможностях командного языка UNIX по управлению процессами, которым выделяются все необходимые ресурсы вычислительной системы 2. Научиться запускать на выполнение фоновые процессы и процессы переднего плана, получать моментальный снимок процессов в системе. Порядок выполнения работыИзучаются команды ps - запрос информации о процессах текущего терминала top получение информации о состоянии процессов в режиме реального времени - запуск фонового процесса jobs - запрос листинга списка заданий bg - перевод оперативного в фоновый режим fg перевод фонового процесса в оперативный. 1 Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал. 2 Выведите на экран Терминала справку по следующим командам ps, top, jobs, bg, fg. Назначение и формат команд приведите в отчете. 3 Выведите на экран листинг характеристик в длинном и коротком форматах процессов, инициализированных с Вашего терминала.

Проанализируйте и объясните содержание каждого поля сообщения 4 Запустите утилиту получения информации о процессах в режиме реального времени.

Проанализируйте и объясните содержание каждого поля сообщения 5 Запустите простейшую процедуру в фоновом режиме с бесконечным циклом выполнения, предусматривающую, например процесс, выводящий на экран бесконечный поток символов y уes 6 Выведите на экран листинг характеристик в длинном и коротком форматах процессов, инициализированных с Вашего терминала.

Объясните изменения в листинге характеристик процессов. Объясните содержание PID и PPID. Какой процесс является родительским для запущенной процедуры. 7 Выйдите из системы и войдите заново. Проанализируйте листинг процессов. Объясните изменения в системе. 8 Запустите процесс уes в оперативном режиме с перенаправлением вывода в устройство dev null черная дыра . 9 Переведите процесс в оперативный режим и проанализируйте сообщение на экране. 10 Приостановите выполнение процесса и переведите его в фоновый режим.

Проанализируйте сообщение на экране. 11 Завершите работу всех запущенных вами процессов, переведя их на передний план и нажав клавиши Ctrl C. 12 Завершите работу с Терминалом. Практическая работа 4 2 Управление приоритетами процессов. Завершение работы процессовЦель работы 1. Закрепить представление о возможностях командного языка UNIX по управлению процессами, которым выделяются все необходимые ресурсы вычислительной системы 2. Научиться осуществлять управление существующими в системе процессами, изменяя их приоритеты и посылая им сигналы управления.

Порядок выполнения работыИзучаются команды nice - понижение приоритета процесса kill - посылка сигнала процессу. 1 Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал. 2 Выведите на экран Терминала справку по следующим командам nice, kill. Назначение и формат команд приведите в отчете. 3 Запустите процесс уes в оперативном режиме с перенаправлением вывода в устройство dev null черная дыра . 4 Приостановите выполнение процесса, используя команду kill. 5 Переведите процесс в фоновый режим.

Проанализируйте сообщение на экране. 6 Убейте процесс, послав командой kill сигнал завершения процесса. 7 Запустите процесс поиска директорий в корневом каталоге в фоновом режиме выводимые данные перенаправьте в файл или черную дыру . 8 Выведите на экран листинг характеристик в длинном формате процессов, инициализированных с Вашего терминала.

Каково значение приоритета запущенного процесса? Какой процесс является родительским для запущенной процедуры. 9 Понизьте значение приоритета процедуры поиска. На что и как повлияет эта операция при управлением вычислительным процессом системы? Как отразятся её результаты в описателях процессов? 10 Убейте все созданные ранее процессы и завершите работу с Терминалом. Контрольные вопросы 1. Объясните понятия процесса и ресурса.

Какое их значение в организации вычислительного процесса в ОС UNIX? 2. Какая информация содержится в описателях процессов? Как просмотреть их содержание в процессе работы с системой? 3. Какими способами можно организовать выполнение программ в фоновом режиме? 4. Какие особенности выполнения программ в фоновом режиме? Как избежать вывода фоновых сообщений на экран и прерывания выполнения фоновых программ при прекращении сеанса работы с системой? 5. Как пользователь может повлиять на распределение ресурсов между активными процессами? 6. Как можно прервать выполнение активных процессов? Какая информация для этого необходима и откуда она извлекается? Тема 2.3.

– Конец работы –

Эта тема принадлежит разделу:

Оперциаонные системы ASP Linux и Windows

Наиболее известными операционными системами для компьютеров являются семейства операционных систем Microsoft Windows и UNIX. Операционные системы,… Изучаемая операционная система Linux с одной стороны относится к классу UNIX,… Цель методических указаний - научить студента работать в среде ASP Linux, привить навыки работы с сервисным и…

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Работа с файлами и папками ASP Linux

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Цели и задачи практики. Вводный инструктаж.Техника безопасности
Цели и задачи практики. Вводный инструктаж. Техника безопасности. Учебная практика Операционные системы и среды предназначена для реализации государственных требований к минимуму содержания и уровн

Семейство ОС Unix. ОС Linux
Семейство ОС Unix. ОС Linux. Операционная система- это комплекс программ, который обеспечивает управление аппаратными средствами компьютера, организует работу с файлами в том числе запуск и управле

Графический интерфейс ASP Linux
Графический интерфейс ASP Linux. Работать с ОС Linux только через интерфейс командной строки довольно трудно. Все необходимые операции в данном случае выполняются путем запуска отдельных ком

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

Редактирование файлов средствами редактора vi
Редактирование файлов средствами редактора vi. Текстовый редактор vi Во всех версиях ОС UNIX имеется встроенный текстовый редактор vi экранного типа. Он может применяться практически на любом терми

Сетевые команды Shell
Сетевые команды Shell. Персональный компьютер на вашем рабочем месте может быть подключен к локальной сети. Более того, локальные сети становятся реальностью и в домашних условиях. Рассмотрим работ

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

Работа с текстовым редактором OpenOffice.org Writer основные принципы работы
Работа с текстовым редактором OpenOffice.org Writer основные принципы работы. Текстовые процессоры LinuxТекстовых процессоров для Linux существует множество. Наиболее известны из них StarWriter из

Итоговое задание по практике
Итоговое задание по практике. Вариант 1 I. Дайте ответ на поставленный вопрос Какие системные имена каталогов Вам известны? Объясните назначение и содержание каждого поля каталога. Какую инф

Технические средства обучения
Технические средства обучения. Практика проводится в учебном вычислительном центре УВЦ Астраханского колледжа вычислительной техники в компьютерном классе 232. Аппаратные средства - Процессор Celer

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги