Основы Linux - Кафедра АСУ МИИТ

Download Report

Transcript Основы Linux - Кафедра АСУ МИИТ

Введение в ОС LINUX

© Варфоломеев В.А., МИИТ, кафедра АСУ

Linus Torvalds

Введение в ОС LINUX 2

Мир ОС Unix

AIX (IBM) HP-UX (HP) IRIX (SGI) Solaris (Sun) SunOS (Sun) SCO UNIX (Microsoft) Linux Free BSD Клоны: System V (Sun), OSF1 (IBM, HP), BSD Стандарты POSIX  x Open (XPG) : • Унификация требований к интерфейсу пользователя shell • Унификация системных вызовов (язык С/C++) Введение в ОС LINUX 3

Мир ОС Linux

Ubuntu openSUSE Red Hat Mandriva Slackware Debian ) Fedora ALTLinux, ASPLinux, Runto, Linux XP, … GNU General Public License ( Универсальная общественная лицензия GNU ) — лицензия на свободное программное обеспечение Предоставляет пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы, а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права. Введение в ОС LINUX 4

Организация файловой системы

Файловая система ОС LINUX имеет иерархическую (древовидную) структуру.

корневой каталог(/) каталог1 каталог2 файл1 каталог3 каталог4 каталог5 файл2 файл3 файл4 каталог6 файл5 файл6 файл7 Введение в ОС LINUX 5

Физическая файловая система

Таблица индексных дескрипторов Атрибуты файла Указатели блоков памяти

= = = = = = = = = A 1 A 2 ... A 12 A 13 A 14 A 15

Каталог Имя Индекс file1 1234 file2 2345 dir1 0256 Д Д Д У Д ...

Д У У ...

У ...

Д ...

Д Д ...

Д Введение в ОС LINUX 6

Типы файлов LINUX

• • • • Обычный файл (-) Каталог (d) • Файл – устройство • Символьное (c) • Блочное (b) Именованный канал FIFO (p) Сокет (s) Ссылка (l) Введение в ОС LINUX 7

Системные каталоги LINUX

/

bin dev etc lib mnt sbin tmp boot usr home - корневой каталог команды и утилиты LINUX - специальные файлы, представляющие устройства ввода-вывода - утилиты администратора системы и конфигурационные файлы - важнейшие библиотеки программ - подключаемые (или монтируемые) файловые системы - важные системные программы, используемые для администрирования - временные файлы - файлы загрузки операционной системы - каталоги и обычные файлы, содержащие информацию, привлекаемую при решении задач пользователя - домашние каталоги зарегистрированных пользователей Введение в ОС LINUX 8

Имена файлов LINUX

• • • • В качестве имени файла может использоваться последовательность из букв, цифр, знака подчеркивания и точки (POSIX).

Длина имени файла колеблется от 14 до 256 символ в зависимости от системы.

В ОС LINUX прописные и строчные символы в именах файлов воспринимаются как различные, поэтому file, File, FILE – это три различных файла.

Файлы, начинающиеся с символа “ команды.

.

” считаются скрытыми и зачастую не отображаются при просмотре каталога без особой • Для указания группы файлов могут быть использованы символы шаблона.

Введение в ОС LINUX 9

Абсолютные и относительные имена файлов

pismo doc u01 u

/

u02 / – корневой каталог . – текущий (рабочий) каталог (PWD) .. – родительский каталог ~ – домашний каталог (HOME) Абсолютное имя файла (до 1023 символов): /u/u01/doc/pismo Относительное имя файла: pismo ($PWD=/u/u01/doc/) doc/pismo ($PWD=/u/u01/) ../u01/doc/pismo ($PWD=/u/u02/) ~/doc/pismo Введение в ОС LINUX 10

Шаблоны имен файлов

Символы шаблона: * - заменяет любое количество произвольных символов, в том числе и отсутствие символов: b*  b, bob, b805, b.txt

*/*.c

 prg/hello.c,prg/calc.c, lib/win.c

?

– заменяет один любой символ: b?

 b1, bb, bx, b# ???/.*  usr/.sh_history, etc/.profile

[…] – определяет множество символов, из которых может быть выбран только один: a[cChH]  ac или aC или ah или aH [a-z]file [!0-9]*   afile, bfile, … , zfile afile3, rc, .file но не 4ac, 999, 7sht Введение в ОС LINUX 11

Пользователи системы LINUX

• • • • • Все пользователи должны быть зарегистрированы в системе и для них установлены определенные права. Каждый пользователь имеет: уникальное регистрационное имя ( идентификатор пользователя ( пароль ( password ) домашний каталог ( UID user directory ) ) login name ) командный интерпретатор для поддержки сеанса работы ( shell ) Все пользователи объединяются в группы. Каждая группа имеет: • • уникальное имя ( group name идентификатор группы ( GID ) ) /etc/passwd /etc/group - сведения обо всех зарегистрированных пользователях - сведения обо всех зарегистрированных группах Введение в ОС LINUX 12

Пользовательский интерфейс LINUX

• • • LINUX поддерживает два типа пользовательских интерфейсов.

1.

Базовый тип командный интерпретатор shell, использующий текстовый алфавитно-цифровой терминал. Тип интерфейса – командная строка.

• sh – Bourne shell csh – C-shell ksh – Korn-shell bash – Bourne Again shell 2.

Графический интерфейс – x Window. Типы графических оболочек: Gnome, KDE.

Введение в ОС LINUX 13

Пользовательская среда shell

• • В рамках любого из интерпретаторов можно: • использовать набор команд (встроенные и внешние) • создавать и исполнять командные процедуры – скрипты запускать на выполнение любые программы осуществлять настройку терминала и параметров среды (окружения) пользователя Каждый раз, когда открывается пользовательский сеанс, автоматически запускаются два файла: • profile • bashes Введение в ОС LINUX 14

Обобщенный формат команд shell

имя_команды [-ключи] [аргументы…] имя_команды cd, cat, find, set ключ (опция) аргументы – ключевое слово, определяющее действие команды: – символ, задающий режим или способ выполнения команды (предваряется знаком “-”): -l, -E, -alEgF – список параметров, указывающих на обрабатываемые объекты или задающих исходные данные При необходимости разделить ключи и аргументы следует указать «двойной минус» - man – команда вывода страниц руководства по командам shell Введение в ОС LINUX 15

Работа с каталогами

Показать текущий каталог (pwd)

pwd

Изменить текущий каталог (cd)

cd [имя_каталога] file

/

u u01 pic prog $ cd $ pwd /u/u01 $ cd pic $ pwd /u/u01/pic $ cd ..

$ pwd /u/u01 $ cd /etc $ pwd /etc Введение в ОС LINUX 16

Создание каталога

mkdir имя_каталога1 [имя_каталога2 …] $ mkdir dir - создание каталога, с именем dir в текущем каталоге $ mkdir –m 750 dir создание каталога с установленными правами доступа (код 750) $ mkdir dir1 dir2 dir3 $ mkdir /home/stud/tst - создание нескольких каталогов

-

создание каталога с абсолютным именем Введение в ОС LINUX 17

Просмотр содержимого каталога

ls [-ключи] [имя_каталога] Список файлов текущего каталога $ ls file1 file2 dir1 Список файлов указанного каталога /u/user01 $ ls -F /u/user01 file1 file2* dir1/ / * - программы (исполнимые файлы) - каталоги @, & - ссылки на другие файлы | - FIFO файл пробел - простой файл Введение в ОС LINUX 18

Просмотр содержимого каталога

Расширенный вывод каталога /home/stud $ ls –l /home/stud -rwxr-xr-x 1 user01 is 512 Apr 16 10:46 file1 -rw-r--r-x 1 user01 is 1320 Apr 11 17:02 file2 drw-r--r-x 1 user01 is 8096 Apr 11 17:02 dir1 Тип файла Число ссылок Имя группы Дата и время Права доступа Имя пользователя Размер Имя файла Введение в ОС LINUX 19

Удаление каталога

rmdir [-p] каталог Удаляет пустые каталоги или деревья (-p) $ rmdir /abc $ rmdir –p /int/mom/tmp rm [-irv] каталог Удаляет файлы из указанных каталогов и сами каталоги -i – вывод запроса на удаление файлов -r -v – удаление всех подкаталогов (рекурсивное удаление) – вывод списка удаленных файлов $ rm -r /temp Введение в ОС LINUX 20

Создание и редактирование файлов

ed [файл] – встроенный текстовый редактор shell vi [файл] – встроенный текстовый редактор shell сat > файл – ввод с консоли (Ctrl-D – завершить ввод) Введение в ОС LINUX 21

Вывод текстовых файлов

сat файл [файл …] - для просмотра файлов из нескольких строк Управляющие действия: Ctrl-s – приостановка, Ctrl-q - возобновление вывода more файл Enter b h q Пробел - постраничный просмотр больших файлов Управляющие действия: - переход на следующую страницу - сдвиг вперед на одну строку - возврат на предыдущую страницу - обращение за подсказкой или Ctrl-c - выход в режим командной строки Введение в ОС LINUX 22

Удаление файла

rm [-iv] файл [файл…] -i – вывод запроса на удаление файлов -v – вывод списка удаленных файлов $ rm file1 file2 file3 $ rm –i file?

$ rm –i ~/*.o

Введение в ОС LINUX 23

Копирование файлов и каталогов

Копирование файлов в текущем каталоге cp [-ключи] файл1 файл2 $ cp file1 file2 Копирование файлов в другой каталог cp [-ключи] файл [файл…] каталог $ cp file1 file2 ~/dir $ cp –i file1 /dir overwrite dir/file1? n Копирование каталога в другой каталог cp [-ключи] каталог1 каталог2 $ cp –r ~/dir /tmp Введение в ОС LINUX 24

Перемещение и переименование файлов и каталогов

Переименование файла mv [-ключи] файл1 файл2 $ mv file1 file3 Перемещение файла в другой каталог mv [-ключи] файл [файл…] каталог $ mv file3 dir Переименование каталога mv [-ключи] каталог1 каталог2 $ mv dir katalog Перемещение каталога в другой каталог mv [-ключи] каталог1 каталог2 $ mv –r dir katalog Введение в ОС LINUX 25

Жесткие ссылки (hard link)

ln /u/user1/filec /u/user2/filec link /u/user1/filec /u/user2/filec u user1 file1 Inode=0333 filec Inode=1077 user2 file1 Inode=1451 Введение в ОС LINUX 26

Символические ссылки (symbolic link)

ln –s /home/user1/filec /home/user2/filec home file1 Inode=0333 user1 filec Inode=1077 user2 filec Inode=1946 /u/user1/filec file1 Inode=1451 Введение в ОС LINUX 27

Выборка столбцов файла

сut –c список файл $ cat tabl1 1 Ivan 578 mosсow 2 Peter 435 newyork 3 Sasha 734 orel $ cut –c 1, 3, 4, 5, 16-22 tabl1 1Ivamoscow 2Petnewyork 3Sasorel Введение в ОС LINUX 28

Поиск контекста в файле

grep [-ключи] шаблон [файл] egrep [-ключи] шаблон [файл] -c -v -i - вывести количество найденных строк - вывести строки, не удовлетворяющие условию - игнорировать различие между прописными и строчными символами $ grep linux docs.txt

$ grep –ci ’Red Hat Linux’ docs.txt

$ grep ’get|put|print|write’ docs.txt

Введение в ОС LINUX 29

Поиск контекста в файле

Специальные символы шаблона: .

* – любой произвольный символ – предыдущий символ повторить любое число раз .* – любая последовательность символов ^шаблон – привязка шаблона к началу строки шаблон$ – привязка шаблона к концу строки [символы] – взять ровно один символ из списка $ grep ’^a.*z$’ docs.txt

$ grep ’^[aA]$’ docs.txt

$ grep ’\$1\.00’ price Введение в ОС LINUX 30

Поиск файлов по запросу

find каталог ключи-условия [ключи-действия] Ключи-условия: -name шаблон - шаблон имени файла -type f - брать только обыкновенные файлы ( -size +500 d - только каталоги) - файлы размером более 500*512 байт -mtime –3 -atime +3 – файл изменен менее трех дней назад – последний доступ к файлу более трех дней назад -user имя -group имя - файлы, принадлежащие указанному пользователю -maxdepth 1 - файлы, принадлежащие пользователям указанной группы – ограничить глубину поиска по вложенным каталогам Ключи-действия: -exec команда {} \ ; - выполнить заданную команду над найденными файлами $ find / -name ’*.c’ $ find /tmp –type f –atime+30 –exec rm {} \; Введение в ОС LINUX 31

Стандартные потоки ввода-вывода

• • • Стандартный входной поток stdin (дескриптор 0) Стандартный выходной поток stdout (дескриптор 1) Стандартный выходной поток ошибок stderr (дескриптор 2) клавиатура

stdin(fd0) программа stdout(fd1) (команда) stderr(fd2)

экран Введение в ОС LINUX 32

Перенаправление ввода-вывода

Перенаправление ввода-вывода входных и выходных потоков и привязка к определенным устройствам или файлам – это изменение стандартных > 2> - переназначение стандартного вывода >> - переназначение стандартного потока сообщений об ошибках - переназначение вывода, добавление вывода команды в конец существующего файла < - изменение (назначение) нестандартного входного устройства << - считывать стандартный ввод, пока не встретится указанный текст Введение в ОС LINUX 33

Перенаправление ввода-вывода

Перенаправление вывода $ ls > file – вывод данных не на экран, а в файл $ cat f1 f2 f3 > f4 – слияние нескольких файлов в один $ cat > newfile – ввод данных с клавиатуры (Ctrl-D-завершить) $ cat file1 >> file2 – к существующему файлу file2 добавить информацию из файла file1 $ sort myfile > /dev/null – подавление вывода $ find / -mtime +30 2> errfile – переназначение потока ошибок Перенаправление ввода $ mailx user02 < mymessage $ cat >hello.c <

Конвейеры команд

команда1 | команда2 | команда3…

stdin программа1 stdout stdin программа2 stdout

$ ls –l | more – постраничный вывод текущего каталога $ ls –l | cut –c1 | grep –c “^d” – поиск и вывод на экран информации о количестве каталогов, входящих в текущий каталог Введение в ОС LINUX 35

Управление доступом к файлам

UID GID S e I t U D S e I t G D i c k y S t Владелец r w x r Группа w x r Прочие w x 1 0 1 1 1 1 1 1 0 1 0 0 5764 8 SetUID SetGID – разрешение выполнять файл от имени владельца – разрешение выполнять файл от имени группы владельца Sticky – разрешение записи в каталог без возможности удаления и переименования файлов r – разрешение на чтение w – разрешение на запись x – разрешение на выполнение Введение в ОС LINUX 36

Право Чтение r Запись w Выпол нение x

Права доступа к файлу и каталогу

Файл Разрешен просмотр и копирование Разрешено удаление, редактирование и переименование Разрешено выполнение (скрипты и программы) Каталог Разрешен просмотр списка входящих файлов (ls) Разрешено создавать, удалять и переименовывать файлы Разрешен вход (cd) Отсутствие права x для каталога означает запрет на выполнение любых операций с данным каталогом и входящими в него файлами, независимо от того, какие атрибуты имеют файлы каталога. Право r для каталога (совместно с x) дает возможность выполнять команду просмотра содержимого каталога ls. Каталоги с отсутствующим атрибутом r называют "темными", так как нет никакого прямого способа узнать, какие файлы в нем размещены.

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

Введение в ОС LINUX 37

Просмотр текущих атрибутов доступа

$ ls -l drw-r--r-t 1 user1 is 8132 Apr 11 17:02 dir1 -rwsr--r-x 1 user1 is 1320 Apr 01 16:35 file1 -rw-r-S--x 1 user1 is 5078 Apr 11 00:02 file2 s – установлен SetGID (SetUID) и право на выполнение S – установлен SetGID (SetUID) без права на выполнение t T – установлен Sticky и право на выполнение – установлен Sticky без права на выполнение Введение в ОС LINUX 38

Установка атрибутов доступа

сhmod атрибуты файл [файл…] u владелец, g группа, o прочие, a все Предоставление права на запись в файл ~/file членам группы (остальные атрибуты не меняются) chmod g+w file Лишение всех прав на доступ для каталога dir chmod a-rwx dir Избирательная установка указанных атрибутов со сбросом остальных chmod u=rws,g=r,o=rt file1 chmod 5744 file2 chmod 750 file1 file3 Введение в ОС LINUX 39

Изменение владельца и группы

Изменить владельца

сhown имя файл [файл…] chown user01 file1 file2

Изменить группу владельца

сhgrp группа файл [файл…] chgrp is file1 file2

Получить права другого пользователя

su Введение в ОС LINUX 40

Информация о системе и пользователях

Вывод параметров идентификации пользователя: id , whoami Вывод информации о системе: uname -a Вывод информации о подключенных пользователях: who –a Вывод информации о файловых системах: df [-v] Вывод текущей даты и времени: date Введение в ОС LINUX 41

Командные процедуры (скрипты)

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

Файл myscript #комментарий Команда1 Команда2 . . .

КомандаN !!! Файл скрипта обязательно должен иметь атрибут доступа x (т.е. исполнимый) ./myscript – запуск скрипта на выполнение из текущего каталога Введение в ОС LINUX 42

Переменные

Системные Переменные Пользовательские Определены в момент открытия пользовательского сеанса Могут иметь произвольные имена, состоящие из букв (латинских), цифр и знака подчеркивания. Имя должно начинаться с буквы. Все переменные Linux – строковые .

Введение в ОС LINUX 43

Системные переменные

HOME PWD – имя домашнего каталога пользователя – имя текущего каталога PATH PS1 – пути поиска программных файлов – формат приглашения в начале командной строки LOGNAME MAIL – имя пользователя – имя почтового ящика пользователя Значения устанавливаются при инициализации сеанса (/etc/profile , /$HOME/. profile ) и могут быть выведены с помощью команд echo, pritenv, env echo $PATH /bin:/usr/bin Введение в ОС LINUX 44

Работа с переменными

Присваивание значения переменной переменная=значение переменная=’значение’ (если значение содержит пробелы) переменная=`команда` (присвоить вывод команды) Взять значение переменной : $переменная Создать глобальную переменную: export переменная x=/u/user01; z=88; y=$z; u=z p1=’pwd’; p2=`pwd` echo $x x $z $y $u $p1 $p2 $p3 /u/user01 x 88 88 z pwd /u/user01 Введение в ОС LINUX 45

Настройка пользовательской среды

/etc/rc /etc/ profile $HOME /.

profile $ENV

$HOME/.profile

export PS1=’$LOGNAME’:’$PWD’:’>’ export PATH=$PATH:$HOME:.

export LANG=Ru_RU export LC_ALL=Ru_RU export TZ=EST1EDT export ENV=$HOME/.setup

$HOME/$ENV

alias lsl=”ls -l”

Введение в ОС LINUX 46

Арифметические выражения

Присваивание значения переменной let ” переменная=выражение” переменная=$((выражение)) Арифметические операции: * , / , % , + , (Только над целыми числами) i=1 j=$i+1 echo $j 1+1 i=1 let ”j=$i+1” echo $j 2 let ”i=1+2*3” j=$(((1+2)*3)) echo $i $j 7 9 Введение в ОС LINUX 47

Условные выражения

Условные выражения – true (0) или false (  0) – формируются в результате выполнения команд (код завершения) или специальными логическими конструкциями test или [ ] Условия, связанные с файлами: test -s файл – размер файла больше нуля test -r файл test -w файл test -x файл test -f файл – есть ли доступ на чтение – есть ли доступ на запись – есть ли право на выполнение – является ли файл обычным test -d файл test -e файл test -O файл – является ли файл каталогом – существует ли файл – принадлежит ли файл текущему пользователю Введение в ОС LINUX 48

Условные выражения (продолжение)

Условия проверки строк: test -z строка – имеет ли строка нулевую длину test -n строка – имеет ли строка ненулевую длину test стр1 = стр2 test стр1 != стр2 – совпадают ли строки – строки не совпадают Условия сравнения чисел: test A –eq B test A –ne B test A –lt B test A –le B test A –gt B test A –ge B – A = B – A  B – A < B – A  B – A > B – A  B Введение в ОС LINUX 49

Команда проверки условий

if условие then команда … команда [else команда … команда ] fi Примеры: 1.

if test -s $MAIL then echo ’Вам письмо’ fi 2.

x=5 if test $x –lt 5 then echo x меньше 5 else echo x не меньше 5 fi Введение в ОС LINUX 50

Циклы for

for переменная in множество_значений do команда . . .

команда done Переменная - играет роль параметра цикла, последовательно принимая значения из заданного множества_значений множество_значений • можно определить как: список значений (переменных) • • шаблон имен файлов вывод команды Unix Введение в ОС LINUX 51

Циклы for (продолжение)

Примеры: 1. for dir in /tmp /user/tmp /home/tmp do find $dir ! –type d –exec rm { } /; done 3. for f in `find . –name ”*.c” –print` do echo $f; c89 –c $f done 2. for file in *.bak

do rm –i $file done break - досрочный выход из цикла exit – завершение выполнения текущей программы Введение в ОС LINUX 52

Циклы: while

while условие do команда done … команда Цикл выполняется до тех пор, пока условие истинно Можно обеспечить выход из цикла командой break i=1 while test $i –lt 5 do echo $i let “i=$i+1” done Введение в ОС LINUX 53

Циклы: until

Формат: until условие do команда … команда done Выполняется до тех пор, пока условие ложно.

Можно обеспечить выход из цикла командой break .

Введение в ОС LINUX 54

Передача параметров в выполняемый скрипт

Формальные параметры (аргументы) задаются значками: $0 … $9 Фактические значения определяются в командной строке по позиции myscript echo это $0 echo $1 echo $3 $ myscript это myscript $0 $1 $2 $3 $ myscript aa bb ” cc dd” это myscript aa cc dd Введение в ОС LINUX 55

Встроенные переменные

Встроенные переменные:

$# $* $@ $?

количество параметров в командной строке строка, содержащая все параметры, переданные скрипту c разделителем - запятой: ”$1,$2,$3…” строка, содержащая все параметры, переданные скрипту c разделителем – пробелом: ” $1 $2 $3…” – код завершения последнего процесса, выполненного перед запуском скрипта Введение в ОС LINUX 56

Пример скрипта

Пример: подсчитать количество файлов в заданном каталоге .

if test -z $1 then echo Введите параметры: echo ’$1’- имя каталога exit fi if test -d $1 then i=0 for file in `ls $1` else do i=$(($i+1)) done echo В каталоге $1 - $i файлов echo Каталог не найден fi Введение в ОС LINUX 57

Процессы в LINUX

Типы процессов: Системные Процессы Пользовательские Демоны Режимы выполнения процессов: Режимы Интерактивные Фоновые (пакетные) Введение в ОС LINUX 58

Атрибуты процессов

• • • • • • • S R I Z Собственный идентификатор ( PID ) Идентификатор родительского процесса ( PPID ) Относительный приоритет процесса ( Nice Number ) Терминал, связанный с данным процессом ( TTY ) Идентификатор пользователя, запустившего процесс ( RID ) Идентификатор группы пользователя ( RGID ) Атрибуты состояния: О – выполняется в данный момент – блокирован (спит) – готов к работе – создается – зомби (завершил свое выполнение, потерял все ресурсы, но сведения о нем остались в системном реестре) Введение в ОС LINUX 59

Информация о процессах

ps [-Aelf] -A -e – все запущенные процессы – все доступные пользователю процессы -f – вывод расширенных атрибутов $ ps PID TTY TIME COMMAND 72098 ttyp0000 2:46 /bin/sh 6745 ttyp0000 0:37 ./myprog 19627 ttyp0000 1:51 /bin/ps Завершить («снять») интерактивный процесс: Приостановить интерактивный процесс: Ctrl-Z Ctrl-C Введение в ОС LINUX 60

Группирование и особые режимы выполнения процессов

Простая последовательность команд (группа процессов PGID) команда1; команда2; команда3 … $ cd mydir; ls -l Условная последовательность процессов команда1 && команда2 - выполнить 2, если 1 успешна команда1 || команда2 - выполнить 2, если 1 ошибочна Выполнение процесса в фоновом (background) режиме команда & Введение в ОС LINUX 61

Управление фоновыми процессами и группами процессов (заданиями)

Задание может содержать несколько процессов $ find / -type f –user u01 > file1 & [3] 76453 jobID=3, PID=PGID=76453 Вывод информации о состоянии заданий jobs [-l] Снять задание Завершить процесс kill –s KILL %3 Приостановить выполнение задания kill 76453 kill –s STOP %3 Возобновить выполнение задания: bg %3 wait %3; или fg %3 Ожидать завершения выполнения задания: print “Задание %3 завершено!” Введение в ОС LINUX 62

Создание процессов

Процессы создаются с помощью специального системного вызова: fork() fork() fork() fork() В LINUX все процессы родственные. На вершине иерархии стоит процесс init . Дочерние процессы наследуют свойства родителей.

Родительский процесс контролирует завершение потомков через cистемный вызов wait() или waited() Введение в ОС LINUX 63

Пример создания дочернего процесса

shell PID = 745 PPID = 1 fork() wait() shell PID = 745 PPID = 1 exit( ) shell PID = 882 PPID = 745 exec(/usr/bin/ls) ls PID = 882 PPID = 745 Введение в ОС LINUX 64

Пример создания дочернего процесса

#include #include main() { int pid; pid=fork(); if (pid==-1) { printf(“Ошибка \n”); } if (pid==0) { printf(“Потомок \n”) { } else printf(“Родитель \n”) } } Введение в ОС LINUX 65