Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Прекращение выполнения процессов: команда kill




Команду kill чаще всего используют для прекращения выполнения процесса. Эта команда может послать в процесс любой сигнал, но по умолчанию посылается сигнал TERM, сигнал программного завершения. Команду kill могут использовать как обычные пользователи (для своих собственных процессов), так и суперпользователь(для любого процесса). Она имеет следующий синтаксис:

kill [-сигнал] pid,

где сигнал – номер или символическое имя посылаемого сигнала, а pid – идентификационный номер процесса-адресата. Команда kill без номера сигнала «не гарантирует», что процесс умрет, потому что сигнал TERM можно перехватить, блокировать и игнорировать. Команда kill –9 pid «гарантирует», что процесс умрет, потому что сигнал 9, KILL, другими процессами не перехватывается.

За более подробной информацией по данной команде обращаться к страницам руководства.

 

Запуск процессов в фоновом режиме

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

После запуска процесса в фоновом режиме появится идентификатор процесса.

Когда примитивный интерпретатор команд завершает работу, он посылает во все порожденные им процессы сигнал «отбой». Если процесс выполняется в фоновом режиме, этот сигнал часто уничтожает его, что в некоторых случаях нежелательно. Если нужно запустить программу, которая будет работать и после вашего выхода из системы, ее нужно запускать командой nohup. Эта команда имеет следующий формат:

nohup команда &

Подобный запуск заставляет указанную аргументом команда команду игнорировать сигнал отбоя.

За более подробной информацией по данной команде обращаться к страницам руководства.

 

Планирование

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

Демон cron - это процесс в фоновом режиме, запущенный системой. Можно с помощью cron выполнять программу в определенное время.

За более подробной информацией по данной команде обращаться к страницам руководства.

Команда at принимает дату или время в качестве параметра и любое число командных строк из стандартного ввода. Когда встретится признак конца файла, команда at создает сценарий для выполнения команд в указанное время.

За более подробной информацией по данной команде обращаться к страницам руководства.

 

Задание к лабораторной работе

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

2. Попытайтесь уничтожить процессы, запущенные другими пользователями.

3. Запустите какой-либо процесс в фоновом режиме. Найдите процесс в списке процессов. Определите его состояние. Уничтожьте.

4. Выполните те же действия, понижая приоритет запускаемого процесса с помощью команды nice. Измените приоритет запущенного процесса с помощью renice.

5. Запустите несколько копий процесса в фоновом режиме. Найдите запущенные процессы в списке процессов. Выйдите из системы. Войдите в систему. Просмотрите список процессов.

6. Выполните те же действия, запуская процессы в непрерываемом режиме (nohup). Сравните состояния после повторного входа в систему. Уничтожьте запущенные процессы.

        

Контрольные вопросы

1. Понятие процесса. Типы процессов.

2. В каких состояниях может находиться процесс.

3. Команды для отслеживания процессов, запущенных с разных терминалов и указанными пользователями.

4. Понятие фонового режима.

5. Уничтожение процесса.

6. Понятие приоритета процесса. Типы приоритетов. Изменение приоритета процесса, запущенного пользователем.

 


Лабораторная работа №3

Тема: Фильтры: sort, grep, wc, awk.

Цель работы: ознакомиться с существующими командами-фильтрами, уметь применять их для получения определенной информации.

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

grep - поиск по шаблону, заданному ограниченным регулярным выражением.

Синтаксис: grep [-b] [-c] [-i] [-l] [-n] [-s] [-v] ограниченное_регулярное_выражение [файл ...]

Команда grep сопоставляет строки исходных файлов с шаблоном, заданным ограниченным_регулярным_выражением. Если файлы не указаны, используется стандартный ввод. Обычно каждая успешно сопоставленная строка копируется на стандартный вывод; если исходных файлов несколько, перед найденной строкой выдается имя файла. В grep используется компактный недетерминированный алгоритм. В качестве шаблонов воспринимаются ограниченные регулярные выражения (выражения, имеющие своими значениями цепочки символов, и использующие ограниченный набор алфавитно-цифровых и специальных символов).

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

    -b Перед каждой строкой ставить номер блока, в котором она находится. Используется для поиска блока по контексту (блоки нумеруются с нуля).

    -c  Выдавать только количество успешно сопоставленных строк.

    -i При сопоставлении не различать большие и малые буквы.

    -l Выдавать только имена файлов, в которых есть успешно сопоставленные строки, разделяя имена переводами строк.

    -n Перед каждой строкой ставить ее номер в файле (строки нумеруются с 1).

    -s Подавить выдачу диагностических сообщений о несуществующих и недоступных для чтения файлах.

    -v Выдавать только строки, не удовлетворяющие шаблону.

    Таблица 1 - Регулярные выражения grep (в порядке убывания приоритета)

    с Любой неспециальный символ с соответствует самому себе
\ с Указание убрать любое специальное значение символа с
^ Начало строки
$ Конец строки
. Любой одиночный символ
[…] Любой символ из …; допустимы диапазоны типа a-z
[^…] Любой символ не из …
\ n Строка, соответсвующая n-му выражению \(…\)
r * Нуль или более вхождений r
r1 r2 За r1 следует r2

 

Примеры использования grep:

Вывести все файлы и директории, в которых встречается буква s: ls|grep s.

Вывести все файлы и директории, которые начинаются с буквы s: ls|grep ^s.

Вывести все файлы и директории, которые заканчиваются на букву s: ls|grep s$.

Различие между большими и малыми буквами в вышеприведенных примерах существует.

Чтобы снять различие между большими и малыми буквами используйте grep – i.

Например: Вывести все файлы и директории, которые начинаются с буквы S, или s:

ls|grep –i ^s.

Вывести список имен вложенных каталогов:

ls –l|grep ‘^d’

Вывести список файлов, доступных всем для чтения записи, выполнения:

ls –l|grep ‘^-……rwx’

Выяснить работает, ли указанный пользователь в системе:

who|grep student

Использование двойных кавычек: двойные кавычки требуются для размещения в шаблоне пробелов.

Найти все слова их 4-х букв, начинающихся с d:

grep “d…”

Найти все строки, начинающиеся с  с букв a,b,c,x,y,z:

grep “^[abcxyz]”.

Найти все слова из 4-х букв, не начинающиеся с D или d, в которых последние три буквы малые от a до z:

grep “[^Dd][a-z][a-z][a-z]”

Фигурные скобки задают количество повторений предыдущего знака:

Найти все слова из 4-х букв, не начинающиеся с D или d, в которых последние три буквы малые от a до z:

grep “[^Dd][a-z]{3}”

Найти все слова, содержащие от 3, до 5-ти малых букв:

grep “[a-z]”{3,5}

 

Выполнение сортировки.

sort - сортировка и/или слияние файлов

Синтаксис:

   sort [-c] [-m] [-u] [-o выходной_файл] [-yкилобайт] [-zдлина]

       [-d] [-f] [-i] [-M] [-n] [-r] [-b] [-tразделитель]

       [+позиция_1 [-позиция_2]] [файл ...]

Команда sort сортирует строки, входящие во все исходные файлы, и выдает результат на стандартный вывод. Если имена файлов не указаны, или в качестве файла указан -, исходная информация поступает со стандартного ввода.

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

    Следующие опции изменяют стандартный порядок работы:

   -c Проверить, является ли (единственный) исходный файл уже отсортированным. На стандартный вывод ничего не выдается. В стандартный протокол выводится         соответствующее сообщение только в случае нарушения упорядоченности строк.

   -m Только слияние исходных файлов, которые предполагаются отсортированными.

   -u Опция уникальности: из всех совпадающих строк выводить только одну.

   -o выходной_файл

        Результат направляется не на стандартный вывод, а в выходной_файл, который может совпадать с одним из исходных.

   Следующие опции позволяют выбрать нужный способ сравнения:

   -d "Словарный" порядок: при сравнении являются значимыми только буквы, цифры, пробелы и знаки табуляции.

   -f Преобразовывать малые буквы в большие.

   -i При нечисловых сравнениях игнорировать символы с (восьмеричными) кодами, не лежащими в пределах 040-0176.

 

   -M Сравнивать как месяца. Первые три символа, отличные от пробела, сравниваются таким образом, что "JAN" < "FEB" < ... < "DEC" (малые буквы преобразуются в большие). Остальные трехсимвольные сочетания считаются меньшими, чем "JAN". Эта опция включает опцию -b (см. ниже).

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

   -r Заменить результат сравнения на противоположный.

   Если опции, задающие способ сравнения, указаны до ограничений на ключи сортировки, то они применяются глобально ко всем ключам. Если же соответствующие флаги ассоциированы с определенными ключами сортировки (см.    ниже), они воздействуют только на "свои" ключи.

  Полем называется минимальная последовательность символов, за которой следует разделитель полей или перевод строки. По умолчанию символом-разделителем считается пробел или символ табуляции. Пробелы и табуляции сразу вслед за разделителем (если они есть) принадлежат следующему полю. Все пробелы в начале строки входят в первое поле. На трактовку разделителей влияют следующие опции:

   -b Игнорировать начальные пробелы при определении начала и конца ключей сортировки. Если опция -b указана перед первым аргументом +позиция_1, она         действует на все ключи с наложенными ограничениями. Флаг b можно связать и с отдельными ключами сортировки (см. ниже).

  -t разделитель - Использовать заданный символ как разделитель полей.

       Разделитель не является частью поля (хотя и может входить в ключ сортировки). Каждое вхождение разделителя является значимым, то есть два рядом стоящих разделителя ограничивают пустое поле.

   При наложении ограничения на ключ сортировки указывается позиция начала ключа (+позиция_1) и позиция сразу за концом ключа (-позиция_2). Если опция -позиция_2 

отсутствует, ключ занимает весь остаток строки.

   Позиция_1 и позиция_2 задаются как пара m.n, возможно, с последующими флагами bdfiMnr. Начальная позиция задается как +m.n, что означает (n+1)-ый символ в (m+1)-ом    поле (поля и символы нумеруются с единицы). Отсутствие n означает .0, то есть первый символ (m+1)-го поля.

   Если указан флаг b, то n отсчитывается от первого непробела в (m+1)-ом поле; +m.0b означает первый непробел в (m+1)-ом поле.

   Позиция за концом ключа записывается как -m.n, что означает (n+1)-ый символ (включая разделители) после последнего символа m-го поля. Если .n опущено, то подразумевается .0, то есть разделитель после m-го поля. Если указан флаг b, то n отсчитывается от первого непробела в (m+1)-ом поле.

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

Примеры использования sort:

Допустим, есть некий файл file1, содержащий имя, фамилию, и какое-то числовое значение:

Vasiliy Ivanov         100

Ivan Vasil’ev           200

Aleksandr Petrov     300

sort file1 – записи сортируются по первой букве имени.

    Можно отсортировать файл по фамилии, т.е. по второму полю:

    sort +1 file1

    Сортировка по третьему полю с игнорированием лидирующих пробелов выполняется с использованием ключа –b(blank):

    sort –b +2 file1

    Для сохранения результата сортировки в файле используется ключ –о:

    sort –o file2 +1 file1;

    sort можно использовать не только для сортировки файлов.

Например:

ls|sort –f – сортировка имен файлов в алфавитном порядке;

ls –l|sort –n – сортировка в порядке возрастания размеров файлов;

ls -l|sort –nr – сортировка в порядке убывания размеров файлов.

 

wc - подсчет количества символов, слов и строк в файле

    синтаксис:

   wc [-l] [-w] [-c] [файл ...]

Команда wc подсчитывает строки, слова и символы, читая    их из указанных файлов или со стандартного ввода, если файлы не заданы. Подсчитывается также общий итог для всех указанных файлов.

Слово - это максимальная цепочка символов, не содержащая пробелов, табуляций и переводов строк.

Опциям команды wc приписан следующий смысл:

   -l Подсчет числа строк.

   -w Подсчет числа слов.

   -c Подсчет числа символов.

Можно задавать любую комбинацию этих опций. По умолчанию используется набор -lwc.

Если в командной строке указаны имена файлов, то они выводятся после соответствующих сумм.

Например:

Подсчет числа активных пользователей:

who|wc –l;

 

awk - сопоставление с шаблонами и преобразование текста

Синтаксис: awk [-Fсимвол] [[-f] программа] [аргумент ...] [файл ...]

Команда awk сопоставляет строки исходных файлов с шаблонами, определенными в программе. Шаблоны можно задать либо непосредственно в командной строке, либо поместить в файл с именем программа и воспользоваться опцией -f. Если шаблоны указаны в командной строке, их следует заключить в одинарные кавычки ('), чтобы избежать интерпретации shell'ом.

За более подробной информацией по awk обращаться к страницам руководства.

Простейший пример использования awk:

who|awk ‘{print $1,$2}’

Команда who показывает, кто в настоящий момент есть в системе. Вывести только пользователей и терминал, можно с помощью выше приведенного примера, где $1 – первое поле – пользователь, $2 – второе поле – терминал.

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 236.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...