Назовите известные вам способы создания пустых файлов
ЛАБОРАТОРНАЯ РАБОТА 1 ЗНАКОМСТВО С МНОГОПОЛЬЗОВАТЕЛЬСКОЙ ОС UNIX
more - постраничный вывод содержимого файла на экран.
1.1 МЕТОДИКА ВЫПОЛНЕНИЯ .
1.2 КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Объясните назначение информации, запрашиваемой системой в начале работы.
2. В чем заключается процедура авторизации пользователя? Цель авторизации?
3 Объясните содержание и назначение каждого поля регистрационной записи.
4 Какая операционная система вас обслуживает и какой shell?
5 Что такое среда пользователя? Как она формируется?
7. Определите возможности электронной почты. Какие режимы работы электронной почты Вы знаете?
8. Какое назначение числовых идентификаторов пользователей и групп в работе UNIX?
ЛАБОРАТОРНАЯ РАБОТА №2.
^
Посвящена изучению структуры файловой системы и возможностей командного языка UNIX по управлению каталогами.
mkdir, rmdir - для создания и уничтожения каталогов;
ls - вывод листинга каталога;
pwd - вывод на экран полного имени текущего каталога;
cd - смена текущего каталога;
find, grep - поиск файлов в системе каталогов;
>маршрутное-имя-файла - создание пустого файла.
^
^ КОНТРОЛЬНЫЕ ВОПРОСЫ
Какие системные имена каталогов Вам известны?
Каким образом можно построить отдельный каталог или цепочку каталогов?
Для чего и каким образом переопределяются текущие каталоги?
Как обратиться к файлам параллельных ветвей дерева
каталогов? К вышележащему каталогу?
Какие условия поиска файлов Вы знаете? Как комбинируются условия поиска? Как осуществить поиск по дереву каталогов?
6. Какова последовательность действий при удалении одного каталога? Цепочки каталогов?
7. . Объясните назначение и содержание каждого поля каталога.
8. . Как отличить по содержимому каталога типы файлов, содержащихся в Ваших каталогах.
9. Какую информацию содержит «пустой» вновь созданный каталог?
10 . Как осуществить поиск файлов в системе каталогов по фрагментам текста файлов?
ЛАБОРАТОРНАЯ РАБОТА №3.
Посвящена изучению приемов формирования и преобразования файлов в ОС UNIX.
cat, cp - копирование файлов;
mv - перемещение и переименование файлов;
ln - организация ссылок на файл;
sort - сортировка файлов;
wc - определение числовых параметров файла;
touch - обновление временных характеристик файла.
^ 3.2 КОНТРОЛЬНЫЕ ВОПРОСЫ
Назовите известные Вам способы создания пустых файлов.
Как создать текстовый файл?
Какие возможности сокращения записи имен файлов Вы знаете с использованием механизма генерации имен файлов?
Какие три команды этой лабораторной работы можно использовать для переименования файлов? Как в этом случае надо использовать команды?
Какими способами можно объединить несколько текстовых файлов в один?
В чем разница работы команд cp и mv?
Сколько ссылок можно создать на единственный файл из разных каталогов?
Как создать несколько ссылок с совпадающими именами на несколько файлов в другом каталоге?
Какое соответствие атрибутов имеют связанные между собой файлы?
На какой атрибут и как влияет удаление одного из связанных файлов?
Как отражается на содержимом связанных файлов изменение содержания одного из них и почему?
Какими возможностями обладает команда sort?
ЛАБОРАТОРНАЯ РАБОТА №4.
УПРАВЛЕНИЕ ПРАВАМИ ДОСТУПА К ФАЙЛАМ И КАТАЛОГАМ
Посвящена изучению принципов защиты файлов и каталогов ОС UNIX от несанкционированного доступа. В UNIX эти средства являются встроенными и наиболее развиты по сравнению с другими операционными системами. Изучаются вопросы влияния задаваемых прав доступа к файлу на выполнение различных команд по обработке этих файлов.
Для управления правами доступа к файлам и каталогам используется команда:
chmod - изменить права доступа к указанному файлу.
^
1 Создайте в Вашем HOME-каталоге один текстовый файл, например с именем f1. Выведите на экран полный листинг каталога.
2. Проанализируйте и умейте объяснить какие права доступа к f1 имеет владелец файла, его группа и остальные пользователи.
3. Проанализируйте права доступа к Вашему головному каталогу. Есть ли ограничения на работу с файлами в этом каталоге?
4. Выведите на экран содержимое файла f1. Объясните почему операция выполнилась успешно.
5. Запретите права на чтение f1 владельцу и группе. Попытайтесь вывести на экран текст файла. Объясните почему операция не выполняется.
6. Удалите права на запись в файл. Попытайтесь добавить к файлу текст и удалить его. Объясните результат.
7. Удалите право на модификацию каталога. Повторите операцию удаления. Объясните результат.
8. Создайте подкаталог. Разместите в нем текстовый файл. Проанализируйте права доступа к подкаталогу и объясните возможности по использованию подкаталога.
9. Удалите право владельца на «выполнение» подкаталога.
10. Попытайтесь сделать подкаталог текущим. Объясните результат.
11. Просмотрите содержимое подкаталога. Объясните результат.
4.2 КОНТРОЛЬНЫЕ ВОПРОСЫ
Как кодируются в атрибутах файла и каталога права доступа?
Кто может пользоваться и изменять права доступа к файлам?
Какие команды для изменения символьных кодов прав доступа Вы знаете? Перечислите и расскажите о назначении каждой из команд.
В чем разница в применении команд chmod и umask?
Какие команды обработки файлов разрешают (или запрещают) права на чтение, модификацию и исполнение?
Какие команды обработки каталогов разрешают (или запрещают) эти же права?
Что означает право на выполнение, применительно к каталогу?
Какими правами надо обладать, чтобы удалить файл или каталог?
Какие команды для защиты файлов Вы знаете?
ЛАБОРАТОРНАЯ РАБОТА №5
ТЕКСТОВЫЙ РЕДАКТОР vi ОС UNIX.
Посвящена изучению основных возможностей встроенного текстового редактора vi - наиболее распространенного средства для построения текстовых файлов, исходных текстов программ и shell-процедур.
вход в редактор и выход, сохранение файлов;
ввода текста;
удаления фрагментов текста;
копирования фрагментов текста в буферную область памяти;
вставки содержимого буфера в текст файла;
редактирования (изменения) текста;
поиска строк файлов по их фрагментам;
многострочных операций с файлом (префиксные команды)
ВНИМАНИЕ: при выполнении лабораторной работы необходимо пользоваться раздаточным методическим материалом "vi - КРАТКИЙ СПРАВОЧНИК".
1. Войдите в редактор с созданием нового пустого файла с произвольным именем и расширением - .1.
2. Поместите в созданный файл текст, включающий не менее четырех строк с несколькими словами в каждой.
3. Вставьте по одной пустой строке до и после одной из строк файла.
4. Заполните пустые строки произвольным текстом.
5.Вставьте еще по одной строке в середину текста файла без предварительного резервирования пустых строк.
6. Перейдите в режим редактирования и выполните произвольное редактирование отдельных слов и строк файла с использованием всех команд из групп "Команды изменения текста" и "Команды отмены произведенных изменений в текущей строке".
7. Выйдите из редактора с сохранением файла. Убедитесь в сохранении созданного файла.
8. Войдите опять в vi для редактирования созданного файла с использованием команд из групп "Команды копирования в буфер" и "Команды вставки буфера в текст".
9. Поменяйте местами несколько слов в строках файла.
10. Поменяйте местами несколько строк.
11. Поменяйте местами последовательно начало строки с её концом и наоборот.
12. Выполните операции поиска строк файла по заданным их фрагментам с различными направлениями поиска ( см. "Команды поиска строки файла по фрагменту её текста").
13. Не выходя из vi, перепишите полученную в результате редактирования версию файла в файл с тем же именем, но с расширением .new.
14. Добавьте первые 3 строки редактируемого файла к файлу .1.
16. Не выходя из vi, загрузите в буфер файл с расширением .1.
17. Последовательно удалите части строк и несколько строк с использованием команд из группы "Команды удаления текста".
18. Выйдите из редактора без сохранения файла.
19. Просмотрите и проанализируйте содержимое редактируемых файлов в текущем каталоге.
20. Уничтожьте созданные файлы.
1. В чем осорбенности и преимущества встроенного редактора vi ОС UNIX?
2. Какие два основных режима работы использует редактор? Как осуществляется переключение режимов?
3. Какую структуру имеет экран при редактировании файла? Назначение полей экрана?
4. Как в vi организовано редактирование открытого в нем файла?
5. Как организована работа с клавишными командами редактора?
6. Что такое "префиксные команды" и их назначение? Как организована работа с командами этого вида?
7. Какие функции редактора Вы использовали при выполнении лабораторной работы?
ЛАБОРАТОРНАЯ РАБОТА №6.
ВВЕДЕНИЕ В SHELL-ПРОГРАММИРОВАНИЕ.
Посвящена ознакомлению со средствами языка shell для рсоздания процедур обработки данных. Изучаются вопросы оформления shell-процедур.
set - присваивание значения параметрам, передаваемым процедурам;
echo, read, banner - вспомогательные команды для ввода и вывода текстовой информации;
if, then, else - команды проверки условий и ветвления вычислений в процедуре;
test - проверка файлов, числовых величин, строк символов;
while, until, for, - команды построения циклических процедур;
- правила присвоения и подстановки значений переменных;
- вычисление арифметических выражений;
- обработка символьных строк.
1.Разработайте текст процедуры с использованием vi по заданию (см. ниже), вариант задания назначается преподавателем.
2 Отладьте, при необходимости отредактируйте и выполните процедуру.
3. Оформите процедуру с использованием вспомогательных команд и комментариев так, чтобы она легко читалась и чтобы результаты её работы легко анализировались.
6.2 КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что такое shell-процедура? Назначение.
2. Какого типа команды могут быть включены в тело процедуры?
3. Чем отличается обработка процедуры при выполнении от обработки программы на языке высокого уровня?
4. Что такое параметры? Для каких целей они используются? Какое число параметров может быть передано процедуре?
5.Какие вспомогательные команды Вы использовали при оформлении процедуры?.
6. Какого вида значения и как могут быть присвоены переменным языка shell?
7. Что такое локальные переменные и для каких целей их надо экспортировать в среду?
8. Как осуществлять ветвление вычислительного процесса процедуры?
9. Какого типа циклы в процедурах могут быть построены средствами языка shell?
10. Какие способы вызова процедур на исполнение Вы знаете?
к лабораторной работе "Введение в shell-программирование"
Разработать shell-процедуру с комментариями, выполняющую ниже перечисленные функции.
1. Вводит последовательность из N слов и подсчитывает в каждом введенном слове число символов. Если число символов больше М, то слово выводится на экран. Значения N и М передаются в качестве параметров.
2. Вводит строку из заданного числа слов. Выделяет слова, начинающиеся на указанную параметром букву, подсчитывает число таких слов.
3. Вводит строку из N слов, анализирует длину каждого слова, упорядочивает слова по их алфавиту и выводит список на экран. Значение N задается параметром.
4. Вводит заданное параметром число слов и выводит каждое слово на печать, сопровождая его порядковым номером.
5. Вводит произвольное число коротких символьных параметров, подсчитывает длину каждого из них и выводит на экран список значений длин и общее число введенных параметров.
6. Вводит несколько коротких чисел в виде параметров, подсчитывает их сумму и результат выводит на экран.
8. Запрашивает ввод строки символов, разделенных пробелами и заданной параметром длины, разбивает символы на пересекающиеся пары и выводит их на экран.
9. Ищет в личном головном каталоге пользователя созданные им файлы, выводит список их имен и распечатывает текст файла, заданного пользователем.
10. Создает новый подкаталог и помещает туда новые файлы, создаваемые пользователем по запросам процедуры. Имена новых файлов указываются параметрами.
11. Создает новый подкаталог и копирует туда из родительского каталога файлы заданного параметром типа.
12. Анализирует указанный параметром каталог и выводит на экран число файлов различного типа (обычные, директории, скрытые). Тип задается параметром.
ЛАБОРАТОРНАЯ РАБОТА №7.
Работа преследует цель - закрепить представление о возможностях командного языка UNIX по управлению процессами, которым выделяются все необходимые ресурсы вычислительной системы.
ps - запрос информации о процессах текущего терминала;
& - запуск фонового процесса;
fg, bg - переводит процесс в активный или фоновый режим;
jobs - запрос листинга списка заданий;
nohup - защита фоновых процессов от прерывания выполнения при выходе из сеанса
работы с системой;
nice - понижение приоритета процесса;
kill - прекращение выполнения процесса.
^
7.2 КОНТРОЛЬНЫЕ ВОПРОСЫ
ЛАБОРАТОРНАЯ РАБОТА №8
ПРОГРАММИРОВАНИЕ shell- ПРОЦЕДУР.
Работа предусматривает выполнение индивидуального задания повышенной сложности.
Работа предусматривает несколько выходов на машину для отладки процедуры.
Отчетом по работе является работающая процедура, продемонстрированная преподавателю с объяснениями её текста и алгоритма работы.
Выполнение лабораторной работы в полном объеме является обязательным условием для получения по курсу в целом экзаменационной оценки - "отлично".
Узнать стоимость написания работы -->
в) touch — замена времени модификации на текущее, если файл не существует, то создается новый пустой файл.
Как создать текстовый файл?
Как обычный файл, но с соответствующим расширением (.txt, .c, .doc).
vi имя_файла [*] вызов редактора и файла
Какие возможности сокращения записи имен файлов Вы знаете с использованием механизма генерации имен файлов?
Это одна из функций shell, позволяющая:
- сократить время набора имени файла или списка имен;
- выполнять однотипные операции (команды ОС) сразу над группой файлов.
? - для замещения одного символа; * - для замещения любой цепочки символов; исключение составляют имена файлов, начинающиеся с точки: шаблон, совпадающий с ними, должен обязательно иметь точку в своем начале; [ ] - диапазон, для замещения одного символа , совпадающего с одним из перечисленных в квадратных скобках.(* - все имена, кроме тех которые начинаются с точки; *.c - все имена с расширением .c ; [abc]* все имена, начинающиеся с a, b и c ).
Какие три команды этой лабораторной работы можно использовать для переименования файлов? Как в этом случае надо использовать команды?
а) $ mv файл1 новое_имя_файла - перемещение или переименование файлов.
б) $ cp файл1 новое_имя_файла
в) $ cat файл1 >новое_имя_файла
Какими способами можно объединить несколько текстовых файлов в один?
cat f1 f2 > f3 – два файла f1 и f2 сливаются в один файл f3.
cat f1 f2 >> f3 – содержимое двух файлов добавляется к f3.
Команда копирования файлов: cp [-k] вх_файл_1 [вх_файл_2 [. вх_файл_n]] вых_файл; mv [-k] вх_ф йл_1 [вх_ф йл_2 [. вх_ф йл_n]] вых_файл- перемещение или переименование файлов. Отличие в том, что перемещаемые файлы в исходном каталоге уничтожаются.
Сколько ссылок можно создать на единственный файл из разных каталогов?
Как создать несколько ссылок с совпадающими именами на несколько файлов в другом каталоге?
С помощью механизма генерации имён файлов. Командой ln примерно в таком формате:
ln isto. txt newkat/
Какое соответствие атрибутов имеют связанные между собой файлы?
Полное. Все связанные файлы имеют совпадающие описатели в каталогах;
На какой атрибут и как влияет удаление одного из связанных файлов?
Число ссылок на файл (число связей). Если удалить один из связанных файлов, то сокращается число взаимных ссылок на -1.
Как отражается на содержимом связанных файлов изменение содержания одного из них и почему?
Если изменяется содержимое одного из связанных файлов, то меняется содержимое всех связанных файлов, т.к. связанные файлы разделяют одни и те же данные на диске.
Какими возможностями обладает команда sort?
sort — алфавитная и числовая сортировка строк.
sort [-ndu] [-k номер_поля_сортировки] [имя_файла]
Команда обладает широкими возможностями. В данном формате позволяет упорядочить строки файла в алфавитном порядке или по числовому значению. Без опций осуществляет сортировку по алфавиту.
п — числовая сортировка;
d — по принципу словаря (игнорируются любые символы, не являющиеся буквами, цифрами или пробелами);
и — уникальная (исключаются повторяющиеся строки);
Номер_поля_сортировки — указывается базовое поле в структуре строки для выполнения сортировки.
Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.
2. Каковы основные правила именования файлов в операционной системе, установленной на компьютерах в вашем классе?
3. Назовите имена известных вам программ, открывающих файлы со следующими расширениями: txt, doc, bmp, rtf, arj.
4. Назовите логические имена устройств внешней памяти на компьютере, к которому вы имеете доступ.
5. Что такое каталог? Какой каталог называют корневым?
6. Как могут быть организованы файлы во внешней памяти?
7. Как называется графическое изображение иерархической файловой структуры?
8. Что такое путь к файлу на диске? Что такое полное имя файла?
9. Перечислите основные операции, совершаемые с файлами.
10. Сравните в операционных системах Windows и Linux:
1) правила именования файлов;
2) правила построения полных имен файлов.
11. Пользователь, перемещаясь из одного каталога в другой, последовательно посетил каталоги LESSONS, CLASS, SCHOOL, D:\ , MYDOC, LETTERS. При каждом перемещении пользователь либо спускался в каталог на уровень ниже, либо поднимался на уровень выше. Каково полное имя каталога, из которого начал перемещение пользователь?
1) D:\MYDOC\LETTERS
2) D:\SCHOOL\CLASS\LESSONS
3) D:\LESSONS\CLASS\SCHOOL
4) D:\LESSONS
12. В некотором каталоге хранился файл Задачаб. После того как в этом каталоге создали подкаталог и переместили в созданный подкаталог файл Задачаб, полное имя файла стало Е:\Класс8\Физика\Задачник\Задачаб. Каково было полное имя этого файла до перемещения?
13. Дано дерево каталогов.
Назовите полное имя файла Doc3.
14. Даны полные имена файлов, хранящихся на диске D:.
D:\COUNTRY\USA\INFO\culture.txt
D:\COUNTRY\USA\Washington.txt
D:\COUNTRY\RUSSIA\moscow.txt
D:\COUNTRY\RUSSIA\INFO\moscow.txt
D:\COUNTRY\RUSSIA\culture.txt
Изобразите соответствующую файловую структуру.
15. Определите, какое из указанных ниже имён файлов удовлетворяет маске: ?ba*r.?xt
1) bar.txt 2) obar.txt 3) obar.xt 4) barr.txt
16. Приведите известные вам примеры иерархий из других предметных областей (биология, география, математика, история и т. д.).
Сектор диска – это минимальная единица чтения и записи данных на диске.
Кластер диска – группа секторов на диске, выделяемых файлу как единое целое.
Таблица размещения файлов (FAT) – это список кластеров диска, по которому ОС находит все части необходимого файла.
Форматирование – процесс разбивки диска на сектора и дорожки средствами ОС.
Дефекты диска – это нарушения поверхности жёсткого диска. Они возникают редко и обычно связаны с естественным износом диска.
Логические ошибки диска – нарушения в файловой системе. На жёстком диске они возникают в результате неправильного завершения работы с операционной системой или с отдельными программами.
Фрагментация – явление, при котором в процессе удаления и перезаписи файлов на диске через некоторое время образуется много пустых кластеров, а также много файлов, записанных в кластерах на разных участках диска.
Дефрагментация – оптимизация дискового пространства, упорядочение кластеров, относящихся к одному файлу.
Инсталляция (от англ. Install устанавливать) – установка на жёсткий диск компьютера программного обеспечения с оригинала, обычно хранящегося на установочном диске в сжатом виде.
Дефрагментация диска С
Выберите программу для дефрагментации диска (Пуск, Стандартные, Служебные, Дефрагментация диска):
В появившемся окне выберите диск С и нажмите кнопку «Анализ».
Форматирование дискеты
Возьмите у преподавателя дискету, вставьте её. Откройте Мой компьютер. Щелкните по диску А правой кнопкой мыши. Выберите пункт «Форматировать»:
Выберите нужные параметры:
Примечание: для создания загрузочной дискеты выберите пункт: Создание загрузочного диска MS-DOS
Если у вас осталось время выполните это действие.
?Контрольные вопросы:
Что такое форматирование диска?
Что такое дефрагментация?
Зачем нужна дефрагментация диска?
Какие режимы форматирования дисков вам известны?
Как получить сведения о свободном пространстве на диске? Назовите известные вам способы.
Как форматируются дискеты с помощью диспетчера файлов?
Что такое метка диска, и как её отредактировать?
В чём заключается проверка диска с помощью ScanDisk?
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 — остановленный процесс;
Рядом с указателем статуса могут стоять дополнительные символы из следующего набора:
· W — процесс не имеет резидентных страниц;
· N — низко-приоритетный процесс;
· L — процесс имеет страницы, заблокированные в памяти.
Например, результат выполнения нижеприведенной команды показал, что в системе работали на момент снятия данных два процесса sh (с идентификатором 927, идентификатор процесса предка - 1) и ps (с идентификатором 1001, идентификатор процесса предка – 927, т.е. sh порождает процесс ps). Терминалы с которых запущены процессы – tty5.
PID PPID TTY PRI TIME CMD
927 1 tty5 0:04 sh
1001 927 tty5 0:02 ps
Для вывода листинга процессов, принадлежащих пользователю можно воспользоваться конструкцией:
ps -f|grep <имя_пользователя>.
Команда 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
Сигналы принято обозначать номерами или символическими именами. Все имена начинаются на SIG, но эту приставку иногда опускают: например, сигнал с номером 1 обозначают или как SIGHUP, или просто как HUP.
Когда процесс получает сигнал, то возможен один из двух вариантов развития событий. Если для данного сигнала определена подпрограмма обработки, то вызывается эта подпрограмма. В противном случае ядро выполняет от имени процесса действие, определенное по умолчанию для данного сигнала. Вызов подпрограммы обработки называется перехватом сигнала. Когда завершается выполнение подпрограммы обработки, процесс возобновляется с той точки, где был получен сигнал.
Можно заставить процесс игнорировать или блокировать некоторые сигналы. Игнорируемый сигнал просто отбрасывается процессом и не оказывает на него никакого влияния. Блокированный сигнал ставится в очередь на выдачу, но ядро не требует от процесса никаких действий до разблокирования сигнала. После разблокирования сигнала программа его обработки вызывается только один раз, даже если в течение периода блокировки данный сигнал поступал несколько раз.
В табл. 2.2.1. приведены некоторые из часто встречающихся сигналов.
Таблица 2.2.1. Сигналы
Как видно из таблицы 2.2.1, некоторые сигналы можно сгенерировать с помощью определенных комбинаций клавиш. Но такие комбинации существуют не для всех сигналов. Зато имеется команда kill, которая позволяет послать заданному процессу любой сигнал.
Для посылки сигнала процессу (или группе процессов) можно воспользоваться командой kill в следующем формате:
kill [-сигн] PID [PID..]
где сигн — это номер сигнала, причем если указание сигнала опущено, то посылается сигнал 15 (TERM — программное завершение процесса). Чаще всего используется сигнал 9 (KILL), с помощью которого суперпользователь может завершить любой процесс. Но сигнал этот очень "грубый", если можно так выразиться, поэтому его использование может привести к нарушению порядка в системе. Поэтому в большинстве случаев рекомендуется использовать сигналы TERM или QUIT, которые завершают процесс более "мягко".
Наиболее часто команду kill вынужден применять суперпользователь. Он должен использовать ее для уничтожения процессов-зомби, зависших процессов (они показываются в листинге команды ps как <exiting>), процессов, которые занимают слишком много процессорного времени или слишком большой объем памяти и т. д. Особый случай — процессы, запущенные злоумышленником.
Перевод процесса в фоновый режим
Если вы запускаете какой-то процесс путем запуска программы из командной строки, то обычно процесс запускается, как говорят, "на переднем плане". Это значит, что процесс "привязывается" к терминалу, с которого он запущен, воспринимая ввод с этого терминала и осуществляя на него вывод. Но можно запустить процесс в фоновом режиме, когда он не связан с терминалом. Для запуска процесса в фоновом режиме в конце командной строки запуска программы добавляют символ & (амперсанд).
Например, в фоновом режиме запускается процесс cc prog.c:
Shell выводит номер этого процесса (PID) и разрешает ввод следующей команды.
Фоновые процессы обладают некоторыми недостатками:
- не допускают ввода с клавиатуры;
- обспечивают вывод на экран, но при этом нарушают целостность вывода диалогового процесса.
Общепринятый прием исключения влияния фонового вывода на интерактивную работу:
- ком_строка планирует задание для фонового режима
- перенаправляет вывод вместо экрана в указанный файл головного каталога пользователя.
Читайте также: