Слайд 1Введение в ОС LINUX
© Варфоломеев В.А., МИИТ, кафедра АСУ
                                                            
                                                                    
                            							
														
						 
											
                            Слайд 2Введение в ОС LINUX
Linus Torvalds
                                                            
                                                                    
                            							
							
							
						 
											
                            Слайд 3Введение в ОС LINUX
Мир ОС 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
                                
 
                            							
														
						 
											
                            Слайд 4Введение в ОС LINUX
Мир ОС Linux
Ubuntu 
openSUSE
Red Hat
Mandriva
Slackware
Debian)
Fedora
ALTLinux, ASPLinux, Runto, Linux
                                                            
                                    XP, …
GNU General Public License (Универсальная общественная лицензия GNU) — лицензия на свободное программное обеспечение
Предоставляет пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы, а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права. 
                                
 
                            							
														
						 
											
                            Слайд 5Введение в ОС LINUX
Организация файловой системы
Файловая система ОС LINUX имеет иерархическую
                                                            
                                    (древовидную) 
структуру.
корневой каталог(/)
каталог4
каталог1
каталог2
каталог3
каталог5
каталог6
файл1
файл3
файл4
файл2
файл7
файл5
файл6
                                
 
                            							
														
						 
											
                            Слайд 6Введение в ОС LINUX
Физическая файловая система
Имя   Индекс
file1  
                                                            
                                     1234
file2    2345
dir1     0256
Каталог
Атрибуты файла Указатели блоков памяти
= = = = = = = = =  A1 A2  ... A12 A13 A14 A15
Таблица индексных дескрипторов
Д
Д
Д
У
У
У
У
...
Д
...
...
Д
Д
...
Д
Д
...
Д
                                
 
                            							
														
						 
											
                            Слайд 7Введение в ОС LINUX
Типы файлов LINUX
 Обычный файл (-)
 Каталог (d)
                                                            
                                    Файл – устройство
 Символьное (c)
 Блочное (b)
 Именованный канал FIFO (p)
 Сокет (s)
 Ссылка (l)
                                
                            							
														
						 
											
                            Слайд 8Введение в ОС LINUX
Системные каталоги LINUX
/
bin
dev
etc
lib
mnt
sbin
tmp
usr
boot
- корневой каталог
- команды и утилиты
                                                            
                                    LINUX
- специальные файлы, представляющие устройства ввода-вывода
- утилиты администратора системы и конфигурационные файлы
- важнейшие библиотеки программ
- подключаемые (или монтируемые) файловые системы
 важные системные программы, используемые для 
 администрирования
- временные файлы
- файлы загрузки операционной системы
 каталоги и обычные файлы, содержащие информацию,
 привлекаемую при решении задач пользователя
home
 домашние каталоги зарегистрированных пользователей
                                
 
                            							
														
						 
											
                            Слайд 9Введение в ОС LINUX
Имена файлов LINUX
 В качестве имени файла может
                                                            
                                    использоваться последовательность 
 из букв, цифр, знака подчеркивания и точки (POSIX).
 Длина имени файла колеблется от 14 до 256 символ в зависимости
  от системы.
 В ОС LINUX прописные и строчные символы в именах файлов 
  воспринимаются как различные, поэтому file, File, FILE – это три 
  различных файла.
 Файлы, начинающиеся с символа “.” считаются скрытыми и 
  зачастую не отображаются при просмотре каталога без особой 
  команды.
 Для указания группы файлов могут быть использованы символы шаблона.
                                
                            							
														
						 
											
                            Слайд 10Введение в ОС LINUX
Абсолютные и относительные имена файлов 
Абсолютное имя файла
                                                            
                                    (до 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)
                                
 
                            							
														
						 
											
                            Слайд 11Введение в ОС LINUX
Шаблоны имен файлов
Символы шаблона:
* - заменяет любое количество
                                                            
                                    произвольных символов, в том числе и отсутствие символов:
      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
                                
                            							
														
						 
											
                            Слайд 12Введение в ОС LINUX
Пользователи системы LINUX
Все пользователи должны быть зарегистрированы в
                                                            
                                    системе и для
них установлены определенные права. Каждый пользователь
имеет:
 уникальное регистрационное имя (login name)
 идентификатор пользователя (UID)
 пароль (password)
 домашний каталог (user directory)
 командный интерпретатор для поддержки сеанса работы (shell)
Все пользователи объединяются в группы. Каждая группа имеет:
 уникальное имя (group name)
 идентификатор группы (GID)
/etc/passwd - сведения обо всех зарегистрированных пользователях
/etc/group - сведения обо всех зарегистрированных группах
                                
                            							
														
						 
											
                            Слайд 13Введение в ОС LINUX
Пользовательский интерфейс LINUX
LINUX поддерживает два типа пользовательских интерфейсов.
Базовый
                                                            
                                    тип командный интерпретатор shell, использующий текстовый алфавитно-цифровой терминал. Тип интерфейса – командная строка.
sh – Bourne shell
csh – C-shell
ksh – Korn-shell
bash – Bourne Again shell
Графический интерфейс – x Window. 
	Типы графических оболочек: Gnome, KDE.
                                
                            							
														
						 
											
                            Слайд 14Введение в ОС LINUX
Пользовательская среда shell
В рамках любого из интерпретаторов можно:
                                                            
                                    использовать набор команд (встроенные и внешние)
 создавать и исполнять командные процедуры – скрипты
 запускать на выполнение любые программы
 осуществлять настройку терминала и параметров среды 
 (окружения) пользователя
Каждый раз, когда открывается пользовательский сеанс, 
автоматически запускаются два файла:
 profile
 bashes
                                
                            							
														
						 
											
                            Слайд 15Введение в ОС LINUX
Обобщенный формат команд shell
имя_команды – ключевое слово, определяющее
                                                            
                                    действие команды: 	cd, cat, find, set
ключ (опция) – символ, задающий режим или способ выполнения команды (предваряется знаком “-”):
	-l, -E, -alEgF
аргументы – список параметров, указывающих на обрабатываемые объекты или задающих исходные данные
При необходимости разделить ключи и аргументы следует указать «двойной минус» --
man – команда вывода страниц руководства по командам shell
имя_команды [-ключи] [аргументы…]
                                
 
                            							
														
						 
											
                            Слайд 16Введение в ОС LINUX
Работа с каталогами
Показать текущий каталог (pwd)
pwd  
Изменить
                                                            
                                    текущий каталог (cd) 
cd [имя_каталога]
$ cd
$ pwd
/u/u01
$ cd pic
$ pwd
/u/u01/pic
$ cd ..
$ pwd
/u/u01
$ cd /etc
$ pwd
/etc
                                
 
                            							
														
						 
											
                            Слайд 17Введение в ОС LINUX
Создание каталога
mkdir имя_каталога1 [имя_каталога2 …]
$ mkdir dir -
                                                            
                                    создание каталога, с именем dir в текущем каталоге 
$ mkdir –m 750 dir - создание каталога с установленными правами 
               доступа (код 750) 
$ mkdir dir1 dir2 dir3 - создание нескольких каталогов
$ mkdir /home/stud/tst - создание каталога с абсолютным именем
                                
                            							
														
						 
											
                            Слайд 18Введение в ОС LINUX
Просмотр содержимого каталога
Список файлов текущего каталога
$ ls
file1 
                                                            
                                    file2  dir1
Список файлов указанного каталога /u/user01 
$ ls -F /u/user01
file1  file2*  dir1/
   * - программы (исполнимые файлы)
   / - каталоги
  @, & - ссылки на другие файлы
   | - FIFO файл
   пробел - простой файл
ls [-ключи] [имя_каталога]
                                
 
                            							
														
						 
											
                            Слайд 19Введение в ОС LINUX
Просмотр содержимого каталога
Расширенный вывод каталога /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
Тип
файла
Число
ссылок
Имя
группы
Дата и
время
Права
доступа
Имя
пользователя
Размер
Имя
файла
                                
 
                            							
														
						 
											
                            Слайд 20Введение в ОС LINUX
Удаление каталога
rmdir [-p] каталог
Удаляет пустые каталоги или деревья
                                                            
                                    (-p)
$ rmdir /abc
$ rmdir –p /int/mom/tmp
rm [-irv] каталог
Удаляет файлы из указанных каталогов и сами каталоги
-i – вывод запроса на удаление файлов
-r – удаление всех подкаталогов (рекурсивное удаление)
-v – вывод списка удаленных файлов 
$ rm -r /temp
                                
                            							
														
						 
											
                            Слайд 21Введение в ОС LINUX
Создание и редактирование файлов
ed [файл] – встроенный текстовый
                                                            
                                    редактор shell
vi [файл] – встроенный текстовый редактор shell 
сat > файл – ввод с консоли (Ctrl-D – завершить ввод) 
                                
                            							
														
						 
											
                            Слайд 22Введение в ОС LINUX
Вывод текстовых файлов
сat файл [файл …] - для
                                                            
                                    просмотра файлов из нескольких строк
Управляющие действия: 
Ctrl-s – приостановка, Ctrl-q - возобновление вывода
more файл - постраничный просмотр больших файлов
Управляющие действия: 
Пробел - переход на следующую страницу
Enter - сдвиг вперед на одну строку
b - возврат на предыдущую страницу
h - обращение за подсказкой
q или Ctrl-c - выход в режим командной строки
                                
                            							
														
						 
											
                            Слайд 23Введение в ОС LINUX
Удаление файла
rm [-iv] файл [файл…]
-i – вывод запроса
                                                            
                                    на удаление файлов
-v – вывод списка удаленных файлов 
$ rm file1 file2 file3
$ rm –i file?
$ rm –i ~/*.o
 
                                
                            							
														
						 
											
                            Слайд 24Введение в ОС LINUX
Копирование файлов и каталогов
Копирование файлов в текущем каталоге
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
                                
                            							
														
						 
											
                            Слайд 25Введение в ОС LINUX
Перемещение и переименование файлов и каталогов
Переименование файла
mv [-ключи]
                                                            
                                    файл1 файл2
$ mv file1 file3
Перемещение файла в другой каталог
mv [-ключи] файл [файл…] каталог 
$ mv file3 dir
Переименование каталога
mv [-ключи] каталог1 каталог2
$ mv dir katalog
Перемещение каталога в другой каталог
mv [-ключи] каталог1 каталог2
$ mv –r dir katalog
                                
                            							
														
						 
											
                            Слайд 26Введение в ОС LINUX
Жесткие ссылки (hard link)
ln /u/user1/filec /u/user2/filec
link /u/user1/filec /u/user2/filec
u
user1
user2
file1
Inode=0333
filec
Inode=1077
file1
Inode=1451
                                                            
                                                                    
                            							
														
						 
											
                            Слайд 27Введение в ОС LINUX
Символические ссылки 
(symbolic link)
ln –s /home/user1/filec /home/user2/filec
home
user1
user2
file1
Inode=0333
filec
Inode=1077
file1
Inode=1451
filec
Inode=1946
/u/user1/filec
                                                            
                                                                    
                            							
														
						 
											
                            Слайд 28Введение в ОС LINUX
Выборка столбцов файла
с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
                                
                            							
														
						 
											
                            Слайд 29Введение в ОС LINUX
Поиск контекста в файле
grep [-ключи] шаблон [файл]
egrep [-ключи]
                                                            
                                    шаблон [файл]
-c - вывести количество найденных строк
-v - вывести строки, не удовлетворяющие условию
-i - игнорировать различие между прописными и строчными 
символами
$ grep linux docs.txt
$ grep –ci ’Red Hat Linux’ docs.txt
$ grep ’get|put|print|write’ docs.txt
                                
                            							
														
						 
											
                            Слайд 30Введение в ОС LINUX
Поиск контекста в файле
Специальные символы шаблона:
. – любой
                                                            
                                    произвольный символ 
* – предыдущий символ повторить любое число раз
.* – любая последовательность символов
^шаблон – привязка шаблона к началу строки
шаблон$ – привязка шаблона к концу строки
[символы] – взять ровно один символ из списка
$ grep ’^a.*z$’ docs.txt
$ grep ’^[aA]$’ docs.txt
$ grep ’\$1\.00’ price
                                
                            							
														
						 
											
                            Слайд 31Введение в ОС LINUX
Поиск файлов по запросу
	find каталог ключи-условия [ключи-действия]
Ключи-условия:
-name шаблон
                                                            
                                    - шаблон имени файла
-type f - брать только обыкновенные файлы ( d - только каталоги)
-size +500 - файлы размером более 500*512 байт
-mtime –3 – файл изменен менее трех дней назад
-atime +3 – последний доступ к файлу более трех дней назад
-user имя - файлы, принадлежащие указанному пользователю
-group имя - файлы, принадлежащие пользователям указанной группы
-maxdepth 1 – ограничить глубину поиска по вложенным каталогам
Ключи-действия:
-exec команда {} \; - выполнить заданную команду над найденными файлами
$ find / -name ’*.c’
$ find /tmp –type f –atime+30 –exec rm {} \;
                                
                            							
														
						 
											
                            Слайд 32Введение в ОС LINUX
Стандартные потоки ввода-вывода
 Стандартный входной поток stdin (дескриптор
                                                            
                                    0)
 Стандартный выходной поток stdout (дескриптор 1)
 Стандартный выходной поток ошибок stderr (дескриптор 2)
программа
(команда)
stdin(fd0)
stderr(fd2)
stdout(fd1)
экран
клавиатура
                                
 
                            							
														
						 
											
                            Слайд 33Введение в ОС LINUX
Перенаправление ввода-вывода
Перенаправление ввода-вывода – это изменение стандартных 
входных
                                                            
                                    и выходных потоков и привязка к определенным устройствам 
или файлам
> - переназначение стандартного вывода
2> - переназначение стандартного потока сообщений об ошибках
>> - переназначение вывода, добавление вывода команды в конец
    существующего файла
< - изменение (назначение) нестандартного входного устройства
<< - считывать стандартный ввод, пока не встретится указанный текст
                                
                            							
														
						 
											
                            Слайд 34Введение в ОС LINUX
Перенаправление ввода-вывода
Перенаправление вывода
$ 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 <                                
                            							
														
						 
											
                            Слайд 35Введение в ОС LINUX
Конвейеры команд
программа1
stdin
stdout
программа2
stdin
stdout
команда1 | команда2 | команда3…
$ ls –l
                                                            
                                    | more – постраничный вывод текущего каталога
$ ls –l | cut –c1 | grep –c “^d” – поиск и вывод на экран информации
                      о количестве каталогов, входящих в
                      текущий каталог
                                
                            							
														
						 
											
                            Слайд 36Введение в ОС LINUX
Управление доступом к файлам
Владелец
Группа
Прочие
SetUID – разрешение выполнять файл
                                                            
                                    от имени владельца
SetGID – разрешение выполнять файл от имени группы владельца
Sticky – разрешение записи в каталог без возможности удаления и переименования файлов 
r – разрешение на чтение
w– разрешение на запись
x – разрешение на выполнение
1  0  1  1  1  1   1  1  0  1   0  0    57648   
                                
 
                            							
														
						 
											
                            Слайд 37Введение в ОС LINUX
Права доступа к файлу и каталогу
Отсутствие права x
                                                            
                                    для каталога означает запрет на выполнение любых операций с данным каталогом и входящими в него файлами, независимо от того, какие атрибуты имеют файлы каталога. 
Право r для каталога (совместно с x) дает возможность выполнять команду просмотра содержимого каталога ls. Каталоги с отсутствующим атрибутом r называют "темными", так как нет никакого прямого способа узнать, какие файлы в нем размещены.
Право на запись в каталог w (совместно с x) разрешает добавлять в каталог новые файлы, а также удалять из каталога существующие файлы, причем независимо от того, какие атрибуты имеют сами файлы (т.е. приоритет отдается правам для каталога). В то же время ни один файл каталога не может быть удален, если у каталога нет права w.
                                
                            							
														
						 
											
                            Слайд 38Введение в ОС LINUX
Просмотр текущих атрибутов доступа
$ 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 без права на выполнение
                                
                            							
														
						 
											
                            Слайд 39Введение в ОС LINUX
Установка атрибутов доступа
с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
                                
                            							
														
						 
											
                            Слайд 40Введение в ОС LINUX
Изменение владельца и группы
Изменить владельца 
сhown имя файл
                                                            
                                    [файл…] 
chown user01 file1 file2
Изменить группу владельца
сhgrp группа файл [файл…]
chgrp is file1 file2
Получить права другого пользователя
su
                                
                            							
														
						 
											
                            Слайд 41Введение в ОС LINUX
Информация о системе и пользователях
Вывод параметров идентификации пользователя:
                                                            
                                    id , whoami
Вывод информации о системе: uname -a
Вывод информации о подключенных пользователях: who –a
Вывод информации о файловых системах:  df [-v]
Вывод текущей даты и времени:  date
                                
                            							
														
						 
											
                            Слайд 42Введение в ОС LINUX
Командные процедуры (скрипты)
Скрипты содержат последовательность команд LINUX, которую
                                                            
                                    можно сохранять на диске в виде файла и запускать на выполнение
при необходимости так же, как и обычные программы.
Файл myscript
#комментарий
Команда1
Команда2
. . .
КомандаN
./myscript – запуск скрипта на выполнение из текущего каталога
!!! Файл скрипта обязательно должен иметь
 атрибут доступа x (т.е. исполнимый)
                                
 
                            							
														
						 
											
                            Слайд 43Введение в ОС LINUX
Переменные 
Определены в 
момент открытия 
пользовательского 
сеанса
Могут иметь
                                                            
                                    произвольные 
имена, состоящие из букв 
(латинских), цифр и знака
подчеркивания. Имя должно
начинаться с буквы. 
Переменные
Системные
Пользовательские
Все переменные Linux – строковые.
                                
 
                            							
														
						 
											
                            Слайд 44Введение в ОС LINUX
Системные переменные
HOME – имя домашнего каталога пользователя
PWD –
                                                            
                                    имя текущего каталога
PATH – пути поиска программных файлов
PS1 – формат приглашения в начале командной строки
LOGNAME – имя пользователя
MAIL – имя почтового ящика пользователя
Значения устанавливаются при инициализации сеанса (/etc/profile, /$HOME/. profile) и могут быть выведены с помощью команд echo, pritenv, env
echo $PATH
/bin:/usr/bin
                                
                            							
														
						 
											
                            Слайд 45Введение в ОС LINUX
Работа с переменными
Присваивание значения переменной
переменная=значение
переменная=’значение’ (если значение содержит
                                                            
                                    пробелы)
переменная=`команда` (присвоить вывод команды)
Взять значение переменной:  $переменная
Создать глобальную переменную: 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
                                
 
                            							
														
						 
											
                            Слайд 46Введение в ОС LINUX
Настройка пользовательской среды
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”
                                
 
                            							
														
						 
											
                            Слайд 47Введение в ОС LINUX
Арифметические выражения
Присваивание значения переменной
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
                                
 
                            							
														
						 
											
                            Слайд 48Введение в ОС LINUX
Условные выражения
Условия, связанные с файлами:
   test
                                                            
                                    -s файл – размер файла больше нуля
test -r файл – есть ли доступ на чтение
test -w файл – есть ли доступ на запись
test -x файл – есть ли право на выполнение 
test -f файл – является ли файл обычным
test -d файл  – является ли файл каталогом
test -e файл – существует ли файл
test -O файл – принадлежит ли файл текущему пользователю
Условные выражения – true (0) или false (≠ 0) – формируются в результате выполнения команд (код завершения) или специальными логическими конструкциями test или [ ]
                                
 
                            							
														
						 
											
                            Слайд 49Введение в ОС LINUX
Условные выражения (продолжение)
Условия проверки строк:
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 	– A	test A –le B 	– A≤B
	test A –gt B 	– A>B
	test A –ge B 	– A≥B
                                
                            							
														
						 
											
                            Слайд 50Введение в ОС LINUX
Команда проверки условий
if условие
   then 
                                                            
                                        команда
     …
     команда
   [else 
     команда
     …
     команда]
fi
Примеры:
if test -s $MAIL 
     then
      echo ’Вам письмо’
   fi
2.  x=5
   if test $x –lt 5 
     then
      echo x меньше 5
     else
      echo x не меньше 5
   fi
                                
 
                            							
														
						 
											
                            Слайд 51Введение в ОС LINUX
Циклы for
for переменная
   in множество_значений
 
                                                            
                                     do
    команда
    . . .
    команда
   done
Переменная - играет роль параметра цикла, последовательно принимая значения из заданного множества_значений
множество_значений можно определить как:
 список значений (переменных)
 шаблон имен файлов
 вывод команды Unix
                                
                            							
														
						 
											
                            Слайд 52Введение в ОС LINUX
Циклы 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
                                
 
                            							
														
						 
											
                            Слайд 53Введение в ОС LINUX
Циклы: while
while условие
 do 
   команда
	…
                                                            
                                      команда
 done
Цикл выполняется до тех пор, пока условие истинно 
Можно обеспечить выход из цикла командой break 
i=1 
while test $i –lt 5 
 do 
   echo $i 
   let “i=$i+1” 
 done
                                
 
                            							
														
						 
											
                            Слайд 54Введение в ОС LINUX
Циклы: until
Формат:
 until условие
  do 
 
                                                            
                                      команда
	…
    команда	
  done
Выполняется до тех пор, пока условие ложно.
Можно обеспечить выход из цикла командой break.
                                
                            							
														
						 
											
                            Слайд 55Введение в ОС LINUX
Передача параметров в выполняемый скрипт
Формальные параметры (аргументы) задаются
                                                            
                                    значками: $0 … $9 
Фактические значения определяются в командной строке по позиции
myscript
echo это $0
echo $1
echo $3
$ myscript 
это myscript
$ myscript aa bb ” cc dd” 
это myscript
aa
cc dd
$0
$1
$2
$3
                                
 
                            							
														
						 
											
                            Слайд 56Введение в ОС LINUX
Встроенные переменные
Встроенные переменные:
$# - количество параметров в командной
                                                            
                                    строке
$* - строка, содержащая все параметры, переданные скрипту 
    c разделителем - запятой: ”$1,$2,$3…”
$@ - строка, содержащая все параметры, переданные скрипту 
    c разделителем – пробелом: ” $1 $2 $3…”
$? –код завершения последнего процесса, выполненного 
    перед запуском скрипта
                                
                            							
														
						 
											
                            Слайд 57Введение в ОС LINUX
Пример скрипта
if test -z $1
 then
  echo
                                                            
                                    Введите параметры:
  echo ’$1’- имя каталога
  exit
fi
if test -d $1
 then 
  i=0
  for file in `ls $1`
   do
	 i=$(($i+1))
   done
  echo В каталоге $1 - $i файлов
 else
  echo Каталог не найден
fi
Пример: подсчитать количество файлов в заданном каталоге.
                                
 
                            							
														
						 
											
                            Слайд 58Введение в ОС LINUX
Процессы в LINUX
Типы процессов:
Режимы выполнения процессов:
Процессы
Системные
Пользовательские
Демоны
Режимы
Интерактивные
Фоновые (пакетные)
                                                            
                                                                    
                            							
														
						 
											
                            Слайд 59Введение в ОС LINUX
Атрибуты процессов
Собственный идентификатор (PID)
Идентификатор родительского процесса (PPID)
Относительный приоритет
                                                            
                                    процесса (Nice Number)
Терминал, связанный с данным процессом (TTY)
Идентификатор пользователя, запустившего процесс (RID)
Идентификатор группы пользователя (RGID)
Атрибуты состояния:
 О – выполняется в данный момент
 S – блокирован (спит)
 R – готов к работе
 I – создается 
 Z – зомби (завершил свое выполнение, потерял все ресурсы, но 
    сведения о нем остались в системном реестре)
                                
                            							
														
						 
											
                            Слайд 60Введение в ОС LINUX
Информация о процессах
		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-C
Приостановить интерактивный процесс: Ctrl-Z
                                
                            							
														
						 
											
                            Слайд 61Введение в ОС LINUX
Группирование и особые режимы выполнения процессов
Простая последовательность команд
                                                            
                                    (группа процессов PGID)
команда1; команда2; команда3 …
$ cd mydir; ls -l
Условная последовательность процессов 
команда1 && команда2 - выполнить 2, если 1 успешна
команда1 || команда2 - выполнить 2, если 1 ошибочна
Выполнение процесса в фоновом (background) режиме
команда &
                                
 
                            							
														
						 
											
                            Слайд 62Введение в ОС LINUX
Управление фоновыми процессами и группами процессов (заданиями)
Задание может
                                                            
                                    содержать несколько процессов
$ 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      или       fg %3
Ожидать завершения выполнения задания:  
wait %3; print “Задание %3 завершено!”
                                
                            							
														
						 
											
                            Слайд 63Введение в ОС LINUX
Создание процессов
Процессы создаются с помощью специального системного вызова:
                                                            
                                    fork()
В LINUX все процессы родственные. На вершине иерархии стоит процесс init. Дочерние процессы наследуют свойства родителей.
Родительский процесс контролирует завершение потомков через
cистемный вызов wait() или waited()
fork()
fork()
fork()
                                
 
                            							
														
						 
											
                            Слайд 64Введение в ОС LINUX
Пример создания дочернего процесса
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)
                                
 
                            							
														
						 
											
                            Слайд 65Введение в ОС LINUX
Пример создания дочернего процесса
#include 
#include 
main()
{
  int
                                                            
                                    pid;
  pid=fork();
  if (pid==-1)
   {
      printf(“Ошибка \n”);
   }
  if (pid==0)
   {
      printf(“Потомок \n”) 
   }
  else 
   {
      printf(“Родитель \n”) 
   }
}