Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


РАБОТА ПОЛЬЗОВАТЕЛЯ В ОПЕРАЦИОННОЙ СИСТЕМЕ



РАБОТА ПОЛЬЗОВАТЕЛЯ В ОПЕРАЦИОННОЙ СИСТЕМЕ

LINUX

 

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

 

к лабораторному практикуму по курсу

" Операционные системы"

для студентов специальностей 220200 –

Автоматизированные системы обработки

информации и управления и 351400 –

Прикладная информатика в экономике

 

 

Уфа 2005

 

Составители: О.Д. Лянцев, Р.Р. Еникеев, А.А. Колесников, П.И. Тарарако

 

УДК 681.3

 

Работа пользователя в операционной системе LINUX: Методические указания к лабораторному практикуму по курсу " Операционные системы" для студентов специальностей 220200 – Автоматизированные системы обработки информации и управления и 351400 – Прикладная информатика в экономике /Уфимск. гос. авиац. техн. ун-т; Сост.: О.Д. Лянцев, Р.Р. Еникеев, А.А. Колесников, П.И. Тарарако - Уфа, 2005. - 56 с.

 

 

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

 

Библиогр.: 7 назв.

Рецензенты: Ю.Б. Головкин, Р.В. Насыров

 

СОДЕРЖАНИЕ

 

Введение.....................................................................................................4

1. Лабораторная работа № 1

Основные принципы функционирования операционной

системы LINUX...................................................................................5

2. Лабораторная работа №2

Изучение файловой системы и функций по обработке

и управления данными......................................................................13

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

Создание и выполнение командных файлов в

пользовательской среде ОС LINUX ….............................................18

4. Лабораторная работа № 4

Формирование гибкого системного диска ОС LINUX..................26

5. Лабораторная работа № 5

Изучение графической оболочки KDE............................................30

6. Лабораторная работа № 6

Файловый менеджер Konqueror Web Browser..................................40

 

Список литературы............................................................................50

Приложение...……………………………………………………….51

 

 

Введение

ОС Linux - это многопользовательская, многозадачная, многотерминальная операционная система (OC) из семейства UNIX, под управлением которой могут одновременно выполняться несколько задач. Она предназначена для работы на серверах и рабочих станциях, обеспечивает подключение дополнительных терминалов и допускает этом режиме использование графических оболочек.

UNIX-сеpвеpы предназначены для хранения и обработки больших объемов информации. Особенно эффективно использование UNIX-серверов при распределенной обработке данных. Для этого разработаны системы распределенных вычислений в соответствии со стандартом CORBA. К таким системам относятся системы управления базами данных (СУБД типа Oracle, Informix), файл-серверы, FTP-серверы, WWW-серверы и др., которые поддерживаются ОС Linux. В распределенных системах информация может находиться на различных рабочих станциях, различных дисках, программные модули могут функционировать на различных компьютерах, но система работает таким образом, что это составляет единое целое. При обработке больших объемов информации используется технология клиент - сервер, при которой пользователь работает только с той информацией, которая ему необходима. Развитием технологии клиент - сервер является технология интеллектуальных агентов.

ОС Linux является сетевой операционной системой для 32-х или 64-х разрядных платформ. Она обеспечивает маштабируемость в диапазоне от игровых приставок (Sony Play Station) до кластерных серверов Internet.

ОС Linux не связана с конкретной моделью компьютеров. Её ядро реализовано на языке высокого уровня (языке СИ), что позволяет достаточно легко переносить эту систему с одной платформы на другую. Система распространяется по лицензии GNU либо подобным свободным лицензиям, обеспечивается как коммерческое, так и свободное сопровождение через Internet. Поставка исходных модулей системы обеспечивает возможность адаптации прикладных программ в случае перехода на другую платформу и дает возможность контроля кодов, реализующих несанкционированный доступ. В разработке системы приняло участие большое количество специалистов, зарегистрировавших свои авторские права, что дает гарантии ее немонополизации.

Подключение персональных компьютеров (ПК) в вычислительную сеть с UNIX - серверами может осуществляться по протоколу TCP/IP, при этом пользователи получают следующие возможности:

1) использование UNIX-сервера, как файл - сервера;

2) эмуляция на ПК удаленного терминала (режим TELNET);

3) организация системы клиент - сервер (рабочая станция формирует SQL - запросы, сервер их обрабатывает);

4) непосредственный обмен файлами между ПК по протоколу FTP;

5) организация распределенных вычислений по стандарту CORBA.

Все действия в ОС UNIX оформлены как процессы. Процесс представляет собой совокупность выполняемых программ или одну выполняемую программу, которые вызываются при исполнении системной команды. Процесс может породить один или несколько других процессов, которые могут выполняться параллельно. ОС Linux поддерживает многопроцессорную архитектуру для параллельного выполнения процессов.

ЛАБОРАТОРНАЯ РАБОТА № 1

 

ОСНОВНЫЕ ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ LINUX

 

Цель работы

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

 

Теоретическая часть

Система включает следующие основные компоненты.

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

Диспетчер процессов Init. Активизирует процессы, необходимые для нормальной работы системы и производит их начальную инициализацию. Обеспечивает завершение работы системы, организует сеансы работы пользователей, в том числе, для удаленных терминалов.

Интерпретатор команд Shell. Анализирует команды, вводимые с терминала либо из командного файла, и передает их для выполнения в ядро системы. Команды обычно имеют аргументы и параметры, которые обеспечивают модернизацию выполняемых действий. Shell является также языком программирования, на котором можно создавать командные файлы (shell-файлы). При входе в ОС пользователь получает копию интерпретатора shell в качестве родительского процесса. Далее, после ввода команды пользователем создается порожденный процесс, называемый процессом-потомком. Т.е. после запуска ОС каждый новый процесс функционирует только как процесс - потомок уже существующего процесса. В ОС Linux имеется возможность динамического порождения и управления процессами.

Shell - интерпретатор в соответствии с требованиями стандарта POSIX поддерживает графический экранный интерфейс, реализованный средствами языка программирования Tcl/Tk.

Обязательным в системе является интерпретатор Bash, полностью соответствующий стандарту POSIX. В качестве Shell может быть использована оболочка mc с интерфейсом, подобным Norton Commander.

Сетевой графический интерфейс X-сервер (X-Windows). Обеспечивает поддержку графических оболочек.

Графические оболочки KDE, Gnome. Отличительными свойствами KDE являются: минимальные требования к аппаратуре, высокая надежность, интернационализация. Базовые библиотеки KDE (qt, kde-libs) признаны одними из лучших продуктов по созданию графического интерфейса, обеспечивают простое написание программ с использованием передовых технологий. Gnome имеет развитые графические возможности, но более требователен к аппаратным средствам.

Сетевая поддержка NFS, SMB, TCP/IP. NFS - программный комплекс РС-NFS (Network File System) для выполнения сетевых функций. РС-NFS ориентирован для конкретной ОС персонального компьютера (PC) и включает драйверы для работы в сети и дополнительные утилиты. SMB - сетевая файловая система, совместимая с Windows NT. TCP/IP - протокол контроля передачи данных (Transfer Control Protocol/Internet Protocol). Сеть по протоколам TCP/IP является неотъемлемой частью ОС семейства UNIX. Поддерживаются любые сети, от локальных до Internet, с использованием только встроенных сетевых средств.

Инструментальные средства программирования. Основой средств программирования является компилятор GCC или его экспериментальные версии EGCS и PGCC для языков С и С++; модули поддержки других языков программирования (Obective C, Фортран, Паскаль, Modula-3, Ада, Java и др.); интегрированные среды и средства визуального проектирования: Kdevelop, Xwpe; средства адаптации привязки программ AUTOCONFIG, AUTOMAKE.

 

Выход из системы

exit - окончание сеанса пользователя.

Выполнение простых команд

Формат команд в ОС LINUX следующий:

имя команды [аргументы] [параметры] [метасимволы]

Имя команды может содержать любое допустимое имя файла; аргументы - одна или несколько букв со знаком минус (-); параметры - передаваемые значения для обработки; метасимволы интерпретируются как специальные операции. В квадратных скобках указываются необязательные части команд.

Введите команду echo, которая выдает на экран свои аргументы:

Echo good morning

и нажмите клавишу Enter. На экране появится приветствие " good morning" – аргумент команды echo. Командный интерпретатор shell вызвал команду echo, реализованную в виде программы на языке СИ, и передал ей аргументы. После этого интерпретатор команд вывел знак-приглашение. Синтаксис команды echo:

echo [-n] [arg1] [arg2] [arg3]...

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

who [am i] - получение информации о работающих пользователях.

В квадратных скобках указываются аргументы команды, которые можно опустить. Ответ представляется в виде таблицы, которая содержит следующую информацию:

- идентификатор пользователя;

- идентификатор терминала;

- дата подключения;

- время подключения.

date - вывод на экран текущей даты и текущего времени.

cal [[месяц]год] - календарь; если календарь не помещается на одном экране, то используется команда cal год | more и клавишей пробела производится постраничный вывод информации.

man < название команды> - вызов электронного справочника об указанной команде. Выход из справочника - нажатие клавиши Q.

Команда man man сообщает информацию о том, как пользоваться справочником.

tty - сообщение имени специального файла стандартного вывода, соответствующего терминалу пользователя.

cat < имя файла> - вывод содержимого файла на экран. Команда cat > text.1 создает новый файл с именем text.1, который можно заполнить символьными строками, вводя их с клавиатуры. Нажатие клавиши Enter создает новую строку. Завершение ввода - нажатие Ctrl - d. Команда cat text.1 > text.2 пересылает содержимое файла text.1 в файл text.2. Слияние файлов осуществляется командой cat text.1 text.2 > text.3.

ls [-alrstu] [имя] - вывод содержимого каталога на экран. Если аргумент не указан, выдается содержимое текущего каталога.

Аргументы команды:

-a - выводит список всех файлов и каталогов, в том числе и скрытых;

-l - выводит список файлов в расширенном формате, показывая тип каждого элемента, полномочия, владельца, размер и дату последней модификации;

- r - выводит список в порядке, обратном заданному;

- s - выводит размеры каждого файла;

- t - перечисляет файлы и каталоги в соответствии с датой их последней модификации;

- u - перечисляет файлы и каталоги в порядке, обратном их последней модификации.

rm < имя файла> - удаление файла (файлов). Команда rm text.1 text.2 text.3 удаляет файлы text.1, text.2, text.3. Другие варианты этой команды - rm text.[123] или rm text.[1-3].

wc [имя файла] - вывод числа строк, слов и символов в файле.

clear - очистка экрана.

 

Группирование команд

Группы команд или сложные команды могут формироваться с помощью специальных символов (метасимволов):

& - процесс выполняется в фоновом режиме, не дожидаясь окончания предыдущих процессов;

? - шаблон, распространяется только на один символ;

* - шаблон, распространяется на все оставшиеся символы;

| - программный канал - стандартный вывод одного процесса является стандартным вводом другого;

> - переадресация вывода в файл;

< - переадресация ввода из файла;

; - если в списке команд команды отделяются друг от друга точкой с запятой, то они выполняются друг за другом;

& & - эта конструкция между командами означает, что последующая команда выполняется только при нормальном завершении предыдущей команды ( код возврата 0 );

|| - последующая команда выполняется только, если не выполнилась предыдущая команда ( код возврата 1 );

() - группирование команд в скобки;

{ } - группирование команд с объединенным выводом;

[] - указание диапазона или явное перечисление ( без запятых);

> > - добавление содержимого файла в конец другого файла.

 

Примеры.

who | wc - подсчет количества работающих пользователей командой (word count - счет слов);

cat text.1 > text.2 - содержимое файла text.1 пересылается в файл text.2;

mail student < file.txt - электронная почта передает файл file.txt всем пользователям, перечисленным в командной строке;

cat text.1, text.2 - просматриваются файлы text.1 и text.2;

cat text.1 > > text.2 - добавление файла text.1 в конец файла text.2;

cc primer.c & - трансляция СИ - программы в фоновом режиме. Имя выполняемой программы по умолчанию a.out.

cc -o primer.o primer.c - трансляция СИ-программы с образованием файла выполняемой программы с именем primer.o;

rm text.* - удаление всех файлов с именем text;

{cat text.1; cat text.2} | lpr - пpосмотp файлов text.1 и text.2 и вывод их на печать;

ps [al] [number] - команда для вывода информации о процессах:

-a - вывод информации обо всех активных процессах, запущенных с вашего терминала;

-l - полная информация о процессах;

number - номер процесса.

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

 

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

 

1 S 200 210 7 0 2 20 80 30 703a 03 0: 07 cc

1 R 12 419 7 11 5 20 56 20 03 0: 12 ps

 

F - флаг процесса (1 - в оперативной памяти, 2 - системный процесс, 4 - заблокирован в ОЗУ, 20 - находится под управлением другого процесса, 10 - подвергнут свопингу);

S - состояние процесса (O - выполняется процессором, S - задержан, R - готов к выполнению, I - создается);

UID - идентификатор пользователя;

PID - идентификатор процесса;

PPID - номер родительского процесса;

C - степень загруженности процессора;

PRI - приоритет процесса, вычисляется по значению переменной NICE и чем больше число, тем меньше его приоритет;

NI - значение переменной NICE для вычисления динамического приоритета, принимает величины от 0 до 39;

ADDR - адрес процесса в памяти;

SZ - объем ОЗУ, занимаемый процессом;

WCHAN - имя события, до которого процесс задержан, для активного процесса - пробел;

TTY - номер управляющего терминала для процесса;

TIME - время выполнения процесса;

CMD - команда, которая породила процесс.

nice [-приращение приоритета] команда[аргументы] - команда изменения приоритета. Каждое запущенное задание (процесс) имеет номер приоритета в диапазоне от 0 до 39, на основе которого ядро вычисляет фактический приоритет, используемый для планирования процесса. Значение 0 представляет наивысший приоритет, а 39 - самый низший. Увеличение номера приоритета приводит к понижению приоритета, присвоенного процессу. Команда nice -10 ls -l увеличивает номер приоритета, присвоенный процессу ls -l на 10.

renice 5 1836 - команда устанавливает значение номера приоритета процесса с идентификатором 1836 равным 5. Увеличить приоритет процесса может только администратор системы.

kill [-sig] < идентификатор процесса> - прекращение процесса до его программного завершения. sig - номер сигнала. Sig = -15 означает программное (нормальное) завершение процесса, номер сигнала = -9 - уничтожение процесса. По умолчанию sig= -9. Вывести себя из системы можно командой kill -9 0. Пользователь с низким приоритетом может прервать процессы, связанные только с его терминалом.

mc - вызов файлового менеджера (программы - оболочки) Midnight Commander, аналогичного Norton Commander.

sort [-dr] - сортировка входных файлов и вывод результата на экран.

Порядок выполнения работы

1. Ознакомиться с теоретической частью к лабораторной работе.

2. Зарегистрироваться в системе LINUX.

3. Определить день недели, в который Вы родились.

4. Получить подробную информацию обо всех активных процессах.

5. Используя редактор VI (см. приложение), создать два текстовых файла (с расширением TXT) и командой САТ просмотреть их на экране.

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

7. Объединить текстовые файлы в единый файл и посмотреть его на экране.

8. Посмотреть приоритет своего процесса и уменьшить скорость его выполнение за счет повышения номера приоритета.

9. Используя редактор VI, написать программу на языке СИ и запустить ее на трансляцию в фоновом режиме.

10. Показать преподавателю исходный текст программы на языке СИ, текстовый файл, файл с сохранением количества пользователей.

11. Продемонстрировать выполнение СИ - программы.

12. Удалить свои файлы и выйти из системы.

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

1. Перечислите основные функции и назначение многопользовательской многозадачной операционной системы LINUX и ее отличительные особенности от однопрограммной системы DOS.

2. Какое назначение имеет ядро системы и интерпретатор команд?

3. В чем заключается понятие " процесс" и какие операции можно выполнить над процессами?

4. Как задаются и выполняются простые и сложные команды?

5. Какие функции выполняет командный интерпретатор Shell?

 

 

ЛАБОРАТОРНАЯ РАБОТА № 2

 

Цель работы

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

 

Теоретическая часть

Порядок выполнения работы

1. Ознакомиться с файловой структурой ОС LINUX. Изучить команды работы с файлами.

2. Используя команды ОС LINUX, создать два текстовых файла.

3. Полученные файлы объединить в один файл и его содержимое просмотреть на экране.

4. Создать новую директорию и переместить в нее полученные файлы.

5. Вывести полную информацию обо всех файлах и проанализировать уровни доступа.

6. Добавить для всех трех файлов право выполнения членам группы и остальным пользователям.

7. Просмотреть атрибуты файлов.

8. Создать еще один каталог.

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

10. Создать символическую связь.

11. Сделать текущим новый каталог и вывести на экран расширенный список информации о его файлах.

12. Произвести поиск заданной последовательности символов в файлах текущей директории и получить перечень соответствующих файлов.

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

14. Сдать отчет о работе и удалить свои файлы и каталоги.

15. Выйти из системы.

 

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

1. Что считается файлами в OC LINUX?

2. Объясните назначение связей с файлами и способы их создания.

3. Что определяет атрибуты файлов и каким образом их можно просмотреть и изменить?

4. Какие методы создания и удаления файлов, каталогов Вы знаете?

5. В чем заключается поиск по шаблону?

6. Какой командой можно получить список работающих пользователей и сохранить его в файле?

 

ЛАБОРАТОРНАЯ РАБОТА № 3

 

В СРЕДЕ ОС LINUX

 

Цель работы

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

Теоретическая часть

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

 

Арифметические операции

Команда expr (express -- выражать) вычисляет выражение expression и записывает результат в стандартный вывод. Элементы выражения разделяются пробелами; символы, имеющие специальный смысл в командном языке, нужно экранировать. Строки, содержащие специальные символы, заключают в апострофы. Используя команду expr, можно выполнять сложение, вычитание, умножение, деление, взятие остатка, сопоставление символов и т. д.

Пример. Сложение, вычитание:

b=190

a=` expr 200 - $b`

где ` - обратная кавычка (левая верхняя клавиша). Умножение *, деление /, взятие остатка %:

d=` expr $a + 125 " *" 10`

c=` expr $d % 13`

Здесь знак умножения заключается в двойные кавычки, чтобы интерпретатор не воспринимал его как метасимвол. Во второй строке переменной с присваивается значение остатка от деления переменной d на 13.

Сопоставление символов с указанием числа совпадающих символов:

concur=` expr " abcdefgh" : " abcde" `

echo $concur

ответ 5.

Операция сопоставления обозначается двоеточием (: ). Результат - переменная соncur.

Подсчет числа символов в цепочках символов. Операция выполняется с использованием функции length в команде expr:

chain=" The program is written in Assembler"

str=` expr length " $chain" `

Echo $str

ответ 35. Здесь результат подсчета обозначен переменной str.

 

Встроенные команды

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

cd [dir] - назначение текущего каталога;

exec [cmd [arg...]] < имя файла> - выполнение команды, заданной аргументами cmd и arg, путем вызова соответствующего выполняемого файла.

umask [ -o | -s] [nnn] - устанавливает маску создания файла (маску режимов доступа создаваемого файла, равную восьмеричному числу nnn: 3 восьмеричных цифры для пользователя, группы и других). Если аргумент nnn отсутствует, то команда сообщает текущее значение маски. При наличии флага -o маска выводится в восьмеричном виде, при наличии флага -s - в символьном представлении;

set, unset - режим работы интерпретатора, присваивание значений параметрам;

eval [ -arg] - вычисление и выполнение команды;

sh < filename.sh> выполнение командного файла filename.sh;

exit [n] - приводит к прекращению выполнения программы, возвращает код возврата, равный нулю, в вызывающую программу;

trap [cmd] [cond] - перехват сигналов прерывания, где: cmd - выполняемая команда; cond=0 или EXIT - в этом случае команда cmd выполняется при завершении интерпретатора; cond=ERR - команда cmd выполняется при обнаружении ошибки; cond - символьное или числовое обозначение сигнала, в этом случае команда cmd выполняется при приходе этого сигнала;

export [name [=word]...] - включение в среду. Команда export объявляет, что переменные name будут включаться в среду всех вызываемых впоследствии команд;

wait [n] - ожидание завершения процесса. Команда без аргументов ожидает завершения процессов, запущенных синхронно. Если указан числовой аргумент n, то wait ожидает фоновый процесс с номером n;

read name - команда вводит строку со стандартного ввода и присваивает прочитанные слова переменным, заданным аргументами name.

Пример. Пусть имеется shell-файл data, содержащий две команды:

echo -n " Please write down your name: "

Read name

Если вызвать файл на выполнение, введя его имя, то на экране появится сообщение:

Please write down your name:

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

 

Управление программами

Команды true и false служат для установления требуемого кода завершения пpоцесса: true - успешное завершение, код завершения 0; false - неуспешное завершение, код может иметь несколько значений, с помощью которых определяется причина неуспешного завершения. Коды завершения команд используются для принятия решения о дальнейших действиях в операторах цикла while и until и в условном операторе if. Многие команды LINUX вырабатывают код завершения только для поддержки этих операторов.

Условный оператор if проверяет значение выражения. Если оно равно true, Shell выполняет следующий за if оператор, если false, то следующий оператор пропускается. Формат оператора if:

if < условие>

Then

List1

Else

List2

fi

Команда test (проверить) используется с условным оператором if и операторами циклов. Действия при этом зависят от кода возврата test. Test проводит анализ файлов, числовых значений, цепочек символов. Нулевой код выдается, если при проверке результат положителен, ненулевой код при отрицательном результате проверки.

В случае анализа файлов синтаксис команды следующий:

test [ -rwfds] file

где

-r – файл существует и его можно прочитать (код завершения 0);

-w – файл существует и в него можно записывать;

-f – файл существует и не является каталогом;

-d – файл существует и является каталогом;

-s – размер файла отличен от нуля.

При анализе числовых значений команда test проверяет, истинно ли данное отношение, например, равны ли А и В. Сравнение выполняется в формате:

-eq А = В

-ne А < > B

test A -ge B эквивалентно А > = В

-le А < = В

-gt А > В

-lt А < В

Отношения слева используются для числовых данных, справа – для символов.

Кроме команды test имеются еще некоторые средства для проверки:

! - операция отрицания инвертирует значение выражения, например, выражение if test true эквивалентно выражению if test! false;

o - двуместная операция " ИЛИ" (or) дает значение true, если один из операндов имеет значение true;

a - двуместная операция " И" (and) дает значение true, если оба операнда имеют значение true.

 

Циклы

Оператор цикла с условием while true и while false. Команда while (пока) формирует циклы, которые выполняются до тех пор, пока команда while определяет значение следующего за ним выражения как true или false. Фоpмат оператора цикла с условием while true:

While list1

do

List2

Done

Здесь list1 и list2 - списки команд. While проверяет код возврата списка команд, стоящих после while, и если его значение равно 0, то выполняются команды, стоящие между do и done. Оператор цикла с условием while false имеет формат:

Until list1

do

List2

Done

В отличие от предыдущего случая условием выполнения команд между do и done является ненулевое значение возврата. Программный цикл может быть размещен внутри другого цикла (вложенный цикл). Оператор break прерывает ближайший к нему цикл. Если в программу ввести оператор break с уровнем 2 ( break 2 ), то это обеспечит выход за пределы двух циклов и завершение программы.

Оператор continue передает управление ближайшему в цикле оператору while.

Оператор цикла с перечислением for:

 

for name in [wordlist]

do

List

Done

где name - переменная; wordlist - последовательность слов; list - список команд. Переменная name получает значение первого слова последовательности wordlist, после этого выполняется список команд, стоящий между do и done. Затем name получает значение второго слова wordlist и снова выполняется список list. Выполнение прекращается после того, как кончится список wordlist.

Ветвление по многим направлениям case. Команда case обеспечивает ветвление по многим направлениям в зависимости от значений аргументов команды. Формат:

case < string> in

s1) < list1>;;

s2) < list2>;;

.

.

.

sn) < listn>;;

*) < list>

Esac

 

3десь list1, list2... listn - список команд. Производится сравнение шаблона string с шаблонами s1, s2... sk... sn. При совпадении выполняется список команд, стоящий между текущим шаблоном sk и соответствующими знаками;;. Пример:

echo -n 'Please, write down your age'

Read age

case $age in

test $age -le 20) echo 'you are so young';;

test $age -le 40) echo 'you are still young';;

test $age -le 70) echo 'you are too young';;

*)echo 'Please, write down once more'

Esac

В конце текста помещена звездочка * на случай неправильного ввода числа.

 

Порядок выполнения работы

Составьте и выполните shell - программы, включающей следующие действия:

1. Вывод на экран списка параметров командной строки с указанием номера каждого параметра.

2. Присвоение переменным А, В и С значений 10, 100 и 200, вычисление и вывод результатов по формуле D=(A*2 + B/3)*C.

3. Формирование файла со списком файлов в домашнем каталоге, вывод на экран этого списка в алфавитном порядке и общего количества файлов.

4. Переход в другой каталог, формирование файла с листингом каталога и возвращение в исходный каталог.

5. Запрос и ввод имени пользователя, сравнение с текущим логическим именем пользователя и вывод сообщения: верно/неверно.

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

7. Циклическое чтение системного времени и очистка экрана в заданный момент.

8. Циклический просмотр списка файлов и выдача сообщения при появлении заданного имени в списке.

 

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

1. Какое назначение имеют shell - файлы?

2. Как создать shell - файл и сделать его выполняемым?

3. Какие типы переменных используются в shell - файлах?

4. В чем заключается анализ цепочки символов?

5. Какие встроенные команды используются в shell - файлах?

6. Как производится управление программами?

7. Назовите операторы создания циклов.

 

ЛАБОРАТОРНАЯ РАБОТА № 4

Цель работы

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

 

Теоретическая часть

Mount /dev/sd0a /users

монтирует файловую систему, находящуюся на устройстве /dev/sd0a, под именем users. После монтирования с помощью команды ls /users можно посмотреть, что содержит эта файловая система.

Таким образом, в системе LINUX вся файловая система представлена как единое дерево каталогов. Аналогично монтируется сетевая файловая система. Например:

Umount /users

Подключение диска CD-ROM к системе выполняется командой

Mount /cdrom

Для снятия диска его необходимо размонтировать командой

Umount /cdrom

Формат функции mount может включать ключ t со знаком минус (-t), за которым следует параметр, определяющий тип файловой системы и может принимать следующие значения:

vfat либо msdos - файловая система на основе FAT;

ext2 – файловая система типа UNIX;

minix – файловая система, соответствующая стандарту POSIX для взаимодействия между различными платформами;

qnx – тип файловой системы QNX, поддерживается только для чтения;

ufs – файловая система BSD, только для чтения;

ntfs – файловая система Windows NT, но только для чтения.

Поддерживается также ряд экспериментальных файловых систем, например, ext3 - журнальная файловая система, extfs - файловая система с криптографической защитой и т.д. Например, монтирование дискеты, отформатированной в DOS, к каталогу /media/floppy:

Mount /media/floppy

где /dev/fd0 - системное имя файла-устройства на гибких дисках.

 

Дискета, отформатированная в LINUX-системе, может быть смонтирована следующим образом

Форматирование дисков

Форматирование дисков выполняется в два этапа. На первом этапе непосредственно производится форматирование (несмонтированного) диска. Форматирование можно выполнить командой fdformat (на 1, 44 Мбайт) с проверкой

Fdformat /dev/fd0u1440

На втором этапе создается корневая файловая система с использованием системной функции mke2fs (mkfs) с аргументами:

Mke2fs -m ext2 /dev/fd0

Создание файловой системы в стиле MS DOS можно выполнить командой mformat без проверки (приставка m позволяет выполнять DOS - команды в среде Linux: mdir, mcopy и др.)

mformat a:

При форматировании и создании файловой системы диск должен быть размонтирован.

 

Загрузка системы с дискет

Сформированная на дискетах система не поддерживает многопользовательский режим работы. Загрузка системы начинается с диска, содержащего образ bootdisk. На сообщение системы о загрузке Linux выбрать в меню пункт manual installation, нажать клавишу Enter для инсталляции системы с последующей загрузкой. При формировании запросов в возникающих диалоговых окнах последовательно заменять дискеты в дисководе. Загрузка завершается появлением значка-приглашения системы #.

 

Порядок выполнения работы

1. Отформатировать в системе Linux три гибких диска.

2. Создать на дискете файловую систему MS DOS.

3. Смонтировать дискету на каталог /media/floppy.

4. Проверить результат монтирования командой df.


Поделиться:



Последнее изменение этой страницы: 2017-04-12; Просмотров: 1320; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.247 с.)
Главная | Случайная страница | Обратная связь