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

Презентация:



Advertisements
Похожие презентации
Введение в параллельные вычисления. Технология программирования MPI (день первый) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Advertisements

1. Определить последовательность проезда перекрестка
Практическое занятие Вводное занятие Преподаватели: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ»
Операционные системы Файловые системы (часть 2). Организация ФС UNIX. Виды файлов Обычный файл (regular file) Каталог (directory) Специальный файл устройств.
Презентация на тему: Белгород Белгород2006 «Не графические Операционные системы» Выполнил: Пойманов В.Н.
Файловые архивы Internet Файловые архивы Internet Протокол FTP Протокол FTP Режимы обмена данными Режимы обмена данными Программное обеспечение доступа.
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ Работа с ОС GNU/Linux в терминальных классах Кафедры ВС Старший преподаватель Кафедры ВС, к.т.н. Поляков Артем.
UnixЭто: Семейство операционных систем Семейство операционных системФункция: Работа с большим количеством данных (вычисления). Работа с большим количеством.
Введение в команды UNIX. UNIX Shell UNIX Shell - командный интерпретатор, используемый в операционных системах семейства UNIX, посредник между пользователем.
Скриптовые языки на примере Perl. Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования.
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.

Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Команды MS-DOS Диалог пользователя с DOS осуществляется в форме команд (программ на машинном языке), предусматривающих то или иное действие для ОС.
Урок повторения по теме: «Сила». Задание 1 Задание 2.
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
Вопрос 1 Какой объект находится на верхнем уровне иерархии в операционной системе Windows?. ОТВЕТ: Рабочий стол.
Текстовые файлы Вербицкая Ольга Владимировна, Заозерная школа 16.
1 Знаток математики Тренажер Таблица умножения 2 класс Школа 21 века ®м®м.
Г. Москва, тел.: +7 (495) , Internet: Слайды курса «Администрирование работы на сервере.
Транксрипт:

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

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

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

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

Введение в ОС LINUX 5 Организация файловой системы Файловая система ОС LINUX имеет иерархическую (древовидную) структуру. корневой каталог(/) каталог 4 каталог 1 каталог 2 каталог 3 каталог 5 каталог 6 файл 1 файл 3 файл 4 файл 2 файл 7 файл 5 файл 6

Введение в ОС LINUX 6 Физическая файловая система Имя Индекс file file dir Каталог Атрибуты файла Указатели блоков памяти = = = = = = = = = A 1 A 2... A 12 A 13 A 14 A 15 Таблица индексных дескрипторов ДДДУУ УУ... Д ДД Д Д Д

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

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

Введение в ОС LINUX 9 Имена файлов LINUX В качестве имени файла может использоваться последовательность из букв, цифр, знака подчеркивания и точки (POSIX). Длина имени файла колеблется от 14 до 256 символ в зависимости от системы. В ОС LINUX прописные и строчные символы в именах файлов воспринимаются как различные, поэтому file, File, FILE – это три различных файла. Файлы, начинающиеся с символа. считаются скрытыми и зачастую не отображаются при просмотре каталога без особой команды. Для указания группы файлов могут быть использованы символы шаблона.

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

Введение в ОС LINUX 11 Шаблоны имен файлов Символы шаблона: * - заменяет любое количество произвольных символов, в том числе и отсутствие символов: 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 afile, bfile, …, zfile [!0-9]* afile3, rc,.file но не 4ac, 999, 7sht

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

Введение в ОС LINUX 13 Пользовательский интерфейс LINUX LINUX поддерживает два типа пользовательских интерфейсов. 1. Базовый тип командный интерпретатор shell, использующий текстовый алфавитно-цифровой терминал. Тип интерфейса – командная строка. sh – Bourne shell csh – C-shell ksh – Korn-shell bash – Bourne Again shell 2. Графический интерфейс – x Window. Типы графических оболочек: Gnome, KDE.

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

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

Введение в ОС LINUX 16 Работа с каталогами Показать текущий каталог (pwd) pwd Изменить текущий каталог (cd) cd [имя_каталога] $ cd $ pwd /u/u01 $ cd pic $ pwd /u/u01/pic / u u01 picfile prog $ cd.. $ pwd /u/u01 $ cd /etc $ pwd /etc

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

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

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

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

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

Введение в ОС LINUX 23 Удаление файла rm [-iv] файл [файл…] -i – вывод запроса на удаление файлов -v – вывод списка удаленных файлов $ rm file1 file2 file3 $ rm –i file? $ rm –i ~/*.o

Введение в ОС LINUX 24 Копирование файлов и каталогов Копирование файлов в текущем каталоге 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 25 Перемещение и переименование файлов и каталогов Переименование файла mv [-ключи] файл 1 файл 2 $ mv file1 file3 Перемещение файла в другой каталог mv [-ключи] файл [файл…] каталог $ mv file3 dir Переименование каталога mv [-ключи] каталог 1 каталог 2 $ mv dir katalog Перемещение каталога в другой каталог mv [-ключи] каталог 1 каталог 2 $ mv –r dir katalog

Введение в ОС LINUX 26 Жесткие ссылки (hard link) ln /u/user1/filec /u/user2/filec link /u/user1/filec /u/user2/filec u user1user2 file1 Inode=0333 filec Inode=1077 file1 Inode=1451

Введение в ОС LINUX 27 Символические ссылки (symbolic link) ln –s /home/user1/filec /home/user2/filec home user1user2 file1 Inode=0333 filec Inode=1077 file1 Inode=1451 filec Inode=1946 /u/user1/filec

Введение в ОС LINUX 28 Выборка столбцов файла сut –c список файл $ cat tabl1 1 Ivan 578 moscow 2 Peter 435 newyork 3 Sasha 734 orel $ cut –c 1, 3, 4, 5, tabl1 1Ivamoscow 2Petnewyork 3Sasorel

Введение в ОС LINUX 29 Поиск контекста в файле grep [-ключи] шаблон [файл] egrep [-ключи] шаблон [файл] -c - вывести количество найденных строк -v - вывести строки, не удовлетворяющие условию -i - игнорировать различие между прописными и строчными символами $ grep linux docs.txt $ grep –ci Red Hat Linux docs.txt $ grep get|put|print|write docs.txt

Введение в ОС LINUX 30 Поиск контекста в файле Специальные символы шаблона:. – любой произвольный символ * – предыдущий символ повторить любое число раз.* – любая последовательность символов ^шаблон – привязка шаблона к началу строки шаблон$ – привязка шаблона к концу строки [символы] – взять ровно один символ из списка $ grep ^a.*z$ docs.txt $ grep ^[aA]$ docs.txt $ grep \$1\.00 price

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

Введение в ОС LINUX 32 Стандартные потоки ввода-вывода Стандартный входной поток stdin (дескриптор 0) Стандартный выходной поток stdout (дескриптор 1) Стандартный выходной поток ошибок stderr (дескриптор 2) программа (команда) stdin(fd0) stderr(fd2) stdout(fd1) экран клавиатура

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

Введение в ОС LINUX 34 Перенаправление ввода-вывода Перенаправление вывода $ 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

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

Введение в ОС LINUX 36 Управление доступом к файлам UIDGIDSetUIDSetUID SetGIDSetGID StickySticky rwxrwxrwx Владелец ГруппаПрочие SetUID – разрешение выполнять файл от имени владельца SetGID – разрешение выполнять файл от имени группы владельца Sticky – разрешение записи в каталог без возможности удаления и переименования файлов r – разрешение на чтение w– разрешение на запись x – разрешение на выполнение

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

Введение в ОС LINUX 38 Просмотр текущих атрибутов доступа $ 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 – установлен Sticky и право на выполнение T – установлен Sticky без права на выполнение

Введение в ОС LINUX 39 Установка атрибутов доступа с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 40 Изменение владельца и группы Изменить владельца сhown имя файл [файл…] chown user01 file1 file2 Изменить группу владельца сhgrp группа файл [файл…] chgrp is file1 file2 Получить права другого пользователя su

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

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

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

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

Введение в ОС LINUX 45 Работа с переменными Присваивание значения переменной переменная=значение переменная=значение (если значение содержит пробелы) переменная=`команда` (присвоить вывод команды) Взять значение переменной : $переменная Создать глобальную переменную: 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 z pwd /u/user01

Введение в ОС LINUX 46 Настройка пользовательской среды export PS1=$LOGNAME:$PWD:> export PATH=$PATH:$HOME:. export LANG=Ru_RU export LC_ALL=Ru_RU export TZ=EST1EDT export ENV=$HOME/.setup /etc/rc /etc/ profile $HOME /. profile $ENV $HOME/.profile $HOME/$ENV alias lsl=ls -l

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

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

Введение в ОС LINUX 49 Условные выражения (продолжение) Условия проверки строк: test -z строка – имеет ли строка нулевую длину test -n строка – имеет ли строка ненулевую длину test стр 1 = стр 2 – совпадают ли строки test стр 1 != стр 2 – строки не совпадают Условия сравнения чисел: test A –eq B – A=B test A –ne B – A B test A –lt B – AB test A –ge B – A B

Введение в ОС LINUX 50 Команда проверки условий if условие then команда … команда [else команда … команда] fi Примеры: 1. if test -s $MAIL then then echo Вам письмо echo Вам письмо fi fi 2. x=5 if test $x –lt 5 if test $x –lt 5 then then echo x меньше 5 echo x меньше 5 else else echo x не меньше 5 echo x не меньше 5 fi fi

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

Введение в ОС LINUX 52 Циклы for (продолжение) break - досрочный выход из цикла exit – завершение выполнения текущей программы 1. for dir in /tmp /user/tmp /home/tmp do find $dir ! –type d –exec rm { } /; done Примеры: 2. for file in *.bak do rm –i $file done 3. for f in `find. –name *.c –print` do echo $f; c89 –c $f done

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

Введение в ОС LINUX 54 Циклы: until Формат: until условие do команда … команда done Выполняется до тех пор, пока условие ложно. Можно обеспечить выход из цикла командой break.

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

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

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

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

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

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

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

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

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

Введение в ОС LINUX 64 Пример создания дочернего процесса shell PID = 745 PPID = 1 shell PID = 882 PPID = 745 ls PID = 882 PPID = 745 shell PID = 745 PPID = 1 fork() wait() exit( ) exec(/usr/bin/ls)

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