Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Прекращение выполнения процессов: команда 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 (в порядке убывания приоритета)
Примеры использования 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 не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |