Инфоурок Другое Другие методич. материалыКомплект лабораторных работ по работе с ОС Linux

Комплект лабораторных работ по работе с ОС Linux

Скачать материал

Выберите документ из архива для просмотра:

Выбранный для просмотра документ Лабораторная работа 1.pdf

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

 

ЗНАКОМСТВО С ОПЕРАЦИОННОЙ СИСТЕМОЙ LINUX

 

Цель работы

 

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

 

1. Теоретические сведения

 

1.1. Интерфейс пользователя Linux

 

Пользователю при работе с операционной системой Linux доступны два типа интерфейса: графический интерфейс пользователя (graphical user interface, GUI) и интерфейс командной строки (command line interface, CLI).

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

При использовании интерфейса командной строки, команды пользователя, введенные с клавиатуры, обрабатываются специальной программой – командным интерпретатором (оболочка, shell) и передаются на выполнение операционной системе.  

Существует множество различных командных интерпретаторов, но наиболее часто используемым в дистрибутивах Linux является bash (Bourne Again SHell). Оболочка представляет собой мощный инструмент администратора и программиста со своими встроенными командами, позволяющими писать сценарии оболочки. Командный интерпретатор определяет собственный набор переменных оболочки, управляющих текущим сеансом работы в командной строке.

Для одновременной работы нескольких пользователей в системе реализован механизм виртуальных терминалов (консолей). Для переключения между ними необходимо использовать сочетания клавиш CTRL + ALT + F(1-7). Как правило одна из консолей использует графический режим, остальные – текстовый.

Работа с системой начинается с процедуры регистрации. Для этого необходимо ввести имя пользователя (login), а затем его пароль (password). При наборе пароля символы могут не отображаться на экране. Для завершения текущего сеанса работы используется команда logout.

 

1.2. Основы работы с командным интерпретатором bash

 

В графическом режиме доступ к командному интерпретатору можно получить, запустив специальную программу – эмулятор терминала. Для этого необходимо в пользовательском меню на рабочем столе найти и запустить программу Terminal.

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

(shell prompt).  

 

[username@hostname ~] $

 

Строка приглашения как правило содержит имя пользователя (username), имя компьютера (hostname), текущий рабочий каталог (~). Завершается приглашение символом доллар ($). Появление приглашения оболочки свидетельствует о готовности принять на вход новую команду.  

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

 

команда [опции] [аргументы]

 

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

 

$ man команда

 

Закрыть страницу руководства можно нажатием клавиши «q».

Для автоматического завершения названия команды используется клавиша TAB.

Для последовательного выполнения нескольких команд их необходимо разделять символом «;». Если необходимо выполнить команду при успешном завершении предыдущей (статус завершения команды равен 0) между ними ставится оператор &&. Если команда должна быть выполнена при ошибочном завершении предыдущей команды (статус завершения больше 0) используется оператор ||.

 

$ echo SYSTEM DATE ; date

 

С каждой выполняемой программой в Linux связано как минимум три канала: поток ввода, поток вывода и поток вывода ошибок.  По умолчанию, эти потоки связаны с терминалом. Перенаправление ввода и вывода осуществляется с помощью последовательностей: >, >>, <<, <<.

Для перенаправления вывода команды в файл используется символ «>». Если файл отсутствует, он будет создан. Если файл уже существует, содержащаяся в нем информация будет удалена. Если необходимо добавить данные в файл, применяется последовательность «>>».

 

$ date >> date.log && cat date.log

 

Перенаправление стандартного вывода одной команды на стандартный ввод другой команды выполняется с помощью символа «|».

 

Таблица 1. Примеры команд 

 

Команда

Описание

man

Вывод страницы руководства

info

Вывод страницы руководства в формате GNU textinfo

echo

Вывод текстовой строки

pwd

Вывод текущего рабочего каталога пользователя

date

Вывод текущей системной даты и времени

who

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

ls

Вывод содержимого какого-либо каталога

cat

Вывод содержимого файла(-ов)

 

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

 

1.     Прочитайте теоретический материал по лабораторной работе.

2.     Авторизуйтесь в системе, запустите эмулятор терминала и измените пароль пользователя.

3.     Ознакомьтесь с работой команд, приведенных в Таблице 1. 

4.     Получите для содержащихся в Таблице 1 команд страницы справочного руководства. Попробуйте выполнить команду ls с ключами -l и -a . Посмотрите в справочном руководстве значение этих опций.

5.     Авторизуйтесь под одним или несколькими пользователями в различных виртуальных консолях.

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

7.     Поместите в созданный ранее файл название вашей учебной группы.

 

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

 

1.     Что такое командный интерпретатор?

2.     Какие сведения содержатся в приглашении командной строки вашей учетной записи?

3.     Что такое команда? Из чего она состоит?

4.     Какими способами можно получить справочную информацию о командах?

5.     Как можно перенаправить вывод команды в файл?

 

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Комплект лабораторных работ по работе с ОС Linux"

Методические разработки к Вашему уроку:

Получите новую специальность за 6 месяцев

Ректор

Получите профессию

Секретарь-администратор

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ Лабораторная работа 2.pdf

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

 

ФАЙЛОВАЯ СИСТЕМА. РАБОТА С ФАЙЛАМИ.

 

Цель работы

 

Изучить иерархическую структуру файловой системы. Познакомиться с основными возможностями системы по управлению файлами.

 

1. Теоретические сведения

 

1.1. Структура файловой системы

 

Файловая система представляет собой иерархическую структуру, вершиной которой является каталог /, называемый корневым каталогом (Рисунок 1). Для унификации местонахождения файлов и каталогов в UNIXсистемах принят стандарт FHS (Filesystem Hierarchy Standard).

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

      Обычный файл (regular file).

      Специальный файл устройства (special device file)

      Файлы взаимодействия между процессами 

      Ссылки (link)

 

Для создания файла можно использовать команду touch.

 

$ touch имя_файла

 

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

 

Для создания каталога можно использовать команду mkdir.

 

$ mkdir имя_каталога

 

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

Путь от основания дерева файловой системы (корня), начинающийся с символа « / », называется полным или абсолютным. Путь, начало которого находится в каталоги отличающемся от корневого, называется относительным

Для указания в относительном пути текущего или родительского каталога используются символы «.» (точка) и «..» (две точки) соответственно.

После авторизации пользователя в системе, его работа как правило начинается с личного каталога пользователя - домашнего каталога. Для указания абсолютного пути файла, находящегося внутри домашнего каталога пользователя, можно использовать специальный символ «~» (тильда).

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

Для перемещения между каталогами файловой системы применяется команда cd.

 

$ cd путь_к_директории

 

 

 

Рисунок 1. Дерево каталогов файловой системы

 

1.2. Операции над файлами. Универсализация файловых имен. 

  

Имя файла представляет собой последовательность символов определенной длины, которая являясь частью пути, идентифицирует объект в файловой системе.

Длина имени ограничена 255 символами. Имя не может включать в себя символ с кодом 0 и символ слеш « / ». Хоть это и допускается, но использование специальных символов, таких как пробел, звездочка (*), процент (%) и т.п., является нежелательным. Для их использования, перед ними в имени файла необходимо поставить символ обратный слеш « \ ».

Если в имени файла присутствует точка, то часть имени, следующая после неѐ, называется расширением. Точка в начале имени файла указывает на его специальное назначение, например файл конфигурации.

При работе с оболочкой возможно применение символов расширения. Имена, содержащие эти символы, преобразуются оболочкой в список имен.

Этот процесс называется универсализацией файловых имен.

К таким символам относятся:

      Символ «*» соответствует любой строке, включая строку нулевой длины.

      Символ «?» соответствует ровно одному любому символу.

      Квадратные скобки «[ ]» используются для указания одного любого символа из множества. Между скобками указываются необходимые символы или их диапазон (с использованием символа «-» (тире)).

      Фигурные скобки «{ }» используются для указания каждого символа из множества. Между скобками указываются необходимые символы или их диапазон (с использованием конструкции «..» (две точки)).

 

Операционная система Linux позволяет создавать ссылки на файлы или каталоги, которые позволяют одним и тем же файлам иметь несколько имѐн. Ссылки бывают двух типов: жѐсткие и символические. Жѐсткие ссылки, по сути, являются именем файла или каталога. Пока существует хотя бы одна жѐсткая ссылка, существует и сам файл или каталог. При создании файла для него обязательно создаѐтся одна жѐсткая ссылка. Символьная ссылка является файлом, который содержит лишь путь, указывающий на другой файл или каталог. Если удалить символьную ссылку, то файл, на который она указывает, останется нетронутым. И обратно, если удалить файл, на который указывает символьная ссылка, то она останется, но будет «неразрешѐнной».

Для создания символической ссылки необходимо воспользоваться командой ln c опцией -s.

 

$ ln -s  имя_файла имя_ссылки

 

Следующие команды являются базовыми при работе с файлами и каталогами в ОС Linux.

 

Таблица 1. Примеры команд 

 

Команда

Описание

cd

Изменение текущего рабочего каталога

touch

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

rm

Удаление файлов или каталогов

mkdir

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

rmdir

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

cp

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

mv

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

tree

Вывести содержимое каталога в виде дерева

ln

Создание ярлыков ссылок на файл или каталог

 

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

 

1.     Прочитайте теоретический материал по лабораторной работе.

2.     Авторизуйтесь в системе, запустите эмулятор терминала.

3.     Ознакомьтесь с работой команд, приведенных в Таблице 1. 

4.     Используя команды оболочки, создайте в домашнем каталоге дерево каталогов согласно схеме, приведѐнной ниже: в домашнем каталоге – cat1, содержащий каталоги cat2 и cat3. Каталог cat1/cat2 содержит каталог cat3. Каталог cat1/cat3 содержит каталог cat4. Каталог cat1/cat2 содержит каталог cat5. Каталог cat1/cat2/cat3 содержит cat6 и cat7. Каталог cat1/cat8 содержит символическую ссылку на каталог cat1/cat2/cat3/cat6. Каталог cat1 содержит каталог cat8.

5.     Удалить каталоги с дублирующимися именами.

6.     Удалить неразрешѐнную ссылку cat6.

7.     Создать каталог dir. В файл dir/date поместить текущую дату.

8.     В домашней директории создать символическую ссылку link1 на файл dir/date.

9.     Нарисовать граф, соответствующий созданной файловой системе.

10. Переименовать файл dir/date в файл dir/current_date.

11. Cкопировать файл dir/current_date в домашнюю директорию

12. Вывести содержимое всех каталогов, начиная с самого верхнего для задания (использовать только одну команду и один раз).

 

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

 

1.     Что такое файл? Что такое каталог?

2.     Что такое путь файла? Абсолютный и относительный путь?

3.     Ссылки. Типы ссылок. Команда создания ссылки.

4.     Команда изменения текущего каталога.

5.     Создание и удаление файлов и каталогов.

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

 

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Комплект лабораторных работ по работе с ОС Linux"

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ Лабораторная работа 3.pdf

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

 

ОБРАБОТКА ТЕКСТОВЫХ ДАННЫХ. ПОЛЬЗОВАТЕЛЬСКОЕ

ОКУРУЖЕНИЕ

 

Цель работы

 

Познакомиться с инструментами работы с текстовыми данными доступными в ОС Linux. Получить представление о пользовательском окружении.

 

1. Теоретические сведения

 

1.1. Обработка текстовых данных

 

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

Для объединения содержимого нескольких файлов и вывод его в стандартный канал вывода или в файл, используется команда cat. Опция -n производит нумерацию строк при выводе.

 

 $ cat file1 file2 > file3

 

Команда less позволяет организовать постраничную работу с большим набором данных.

 

$ less file1 

 

Утилита split выполняет разделение исходного файла. Например на файлы содержащие определенное количество байт (опция -b), строк (опция l).  Утилита sort выполняет сортировку поступающих ей на вход данных. Использование дополнительных опций позволяет провести сортировку по одному из полей сгруппированных данных.

 

$ ls -l ~ | sort -n -k 5

 

Приведенная выше команда производит числовую (опция -n) сортировку полученных от команды ls данных по пятому столбцу (опция -k).

 Утилита cut выполняет фильтрацию текста по столбцам. В качестве опций команда принимает номер поля (-f), разделитель (-d) и др.

 

$ cut -d : -f 1 file1

 

Приведенная выше команда из множества столбцов разделенных символом «:» в файле file1 выбирает первый.

Утилита uniq удаляет соседние повторяющиеся строки в файле. Опции команды позволяют также найти неуникальные строки и подсчитать количество вхождений каждой строки. Утилиту uniq часто используют совместно с утилитой sort.

 

$ cat filename | sort | uniq

 

Команды head и tail используются для отображения выбранного числа строк в начале или в конце файла. По умолчанию число строк равно 10. Изменить количество выводимых строк можно с помощью опции -n.

 

$ tail -n 3 file1

 

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

Утилита diff производит построчное сравнение файлов переданных в качестве аргументов.

 

$ diff file1 file2

 

Помимо утилит командной строки пользователям Linix доступно большое количество текстовых редакторов. Существуют как консольные (vi, nano, mcedit) редакторы, так и редакторы, используемые в графическом режиме (gedit, kate). Функциональность некоторых из них можно расширить установкой дополнительных модулей-плагинов.

 

Таблица 1. Примеры команд 

 

Команда

Описание

cat

Вывод объединенного содержимого файла(-ов).

less

Постраничный вывод файла

split

Деление файла на части

sort

Сортировка и/или слияние файлов

cut

Выборка отдельных полей из строк файла

uniq

Выдача информации о повторяющихся строках файла

head

Вывод начальных строк файла

tail

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

diff

Выявление различий между файлами

wc

Подсчет количества символов, слов и строк в файле

 

 

1.2. Среда окружения

 

При работе с командной оболочкой определен набор переменных, описывающих текущий сеанс взаимодействия пользователя с системой, называемый окружением (environment).  

Переменные окружения доступны одновременно нескольким процессам. 

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

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

Установка новых и изменение значения существующих переменных среды окружения осуществляется путем экспортирования (помещения в среду):

 

$ export переменная=значение

 

Узнать значение конкретной переменной можно также при помощи команды: 

$ echo $переменная

Чтобы удалить переменную, используется команда unset.

 

Таблица 2. Некоторые стандартные переменные среды окружения

 

Имя

Значение

UID

Содержит числовой идентификатор текущего пользователя. Инициализируется при запуске оболочки.

HOME

Домашний каталог текущего пользователя.

PATH

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

PS1

Формат строки-приглашения

PWD

Текущий каталог.

TERM

Тип используемого терминала.

HOSTNAME

Сетевое имя компьютера.

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

 

1.     Прочитайте теоретический материал по лабораторной работе.

2.     Ознакомьтесь с работой команд, приведенных в Таблице 1. Изучите для содержащихся в Таблице 1 команд страницы справочного руководства.

3.     Отсортируйте вывод команды ls -l по дате изменения содержимого по месяцам.

4.     Из файла passwd_example получите имена всех пользователей, содержащихся в первом поле каждой строки, и поместите отсортированный в обратном порядке результат в файл cut_result.

5.     С помощью текстового редактора (gedit, nano) измените имена нескольких пользователей в этом файле и сохраните результат в новый файл cut_result2.

6.     Сравните содержимое файлов с именами пользователей с помощью программы diff.

7.     Добавьте    к        содержимому       файла          cut_result    содержимое           файла cut_result2.

8.     С помощью команды uniq избавьтесь от дубликатов в файле cut_result.

9.     С помощью одной команды получите домашний каталог пользователя user из файла   passwd_example. 10. Выведите на экран значения всех переменных среды окружения. Проанализируйте полученные результаты и объясните значения известных вам переменных окружения.

11.   Определите тип используемого терминала. 

12.   Измените содержимое переменной PS1 так, чтобы в приглашении в качестве скобок использовались символы «< >».

13.   Выполните команду PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] ".

 

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

 

1.     Какие утилиты для работы с текстом вы знаете?

2.     Какая опция используется для изменения порядка сортировки sort?

3.     Что такое переменные окружения?

4.     Как задать значение переменной окружения и как вывести его на экран?

5.     Как изменить значения переменных окружения, удалить переменную?

 

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Комплект лабораторных работ по работе с ОС Linux"

Получите профессию

Копирайтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ Лабораторная работа 4.pdf

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

 

АРХИВАЦИЯ И ПОИСК

 

Цель работы

 

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

 

1. Теоретические сведения

 

1.1. Поиск файлов

 

Несмотря на то, что существуют соглашения по организации файловой системы для *nix-подобных операционных систем, поиск необходимого файла может быть достаточно трудоемким.

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

Команда find осуществляет рекурсивный обход дерева файловой системы, и производит поиск файла, основываясь на одном или нескольких атрибутах.

 

Таблица 1. Примеры опций команды find

 

Опция

Описание

-name

Имя файла

-type

Тип файла

-newer

Файлы с меньшей датой модификации чем у заданного файла

-mtime

Дата модификации файла

-size

Размер файла

-exec

Выополнение       над    найденными           файлами указанной команды

-delete

Удаление найденных файлов

 

Некоторые опции могут принимать аргумент n со знаком. +n для значений больше n, -n для значений меньше n.

 

$ find ~ -name "*.txt" -type f -mtime -3

Приведенная выше команда произведет поиск всех обычных файлов в домашнем каталоге пользователя, с расширением txt и датой модификации меньше 3-х дней.

Команда find также поддерживает объединение шаблонов поиска в логические выражение с помощью опций-операторов -or, -and и -not.

 

$ find ~ \( -size +100M \) -and \( -not -type d \)

 

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

Альтернативным способом найти интересующий вас файл по имени является использование команды locate.

 

$ locate имя_файла

 

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

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

 

$ whereis команда

 

Команда which выполняет поиск пути к исполняемому файлу для определенной команды на основе содержимого переменной PATH.

 

$ which команда

 

Для поиска строк в файле содержащих определенный шаблон можно использовать команду grep. Если команде не передается список входных файлов, то поиск осуществляется в стандартном входном потоке.

 

$ cat /var/log/mylog | grep ‘warning’

 

Таблица 2. Примеры опций команды grep.

 

Опция

Описание

-n

Вывод номера строки, содержащей шаблон

-c

Вывод         количества строк,           содержащих образец

-i

Игнорировать регистр символов

-v

Вывод всех строк, не содержащих шаблон

 

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

Команда xargs преобразует поступающие ей на вход строки в аргументы для заданной команды.

 

$ find ~/mydir -type f -name filename | xargs ls -l

 

1.2. Архивация

 

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

Утилита gzip предназначена для сжатия одного или нескольких файлов. При упаковке оригинальные файлы заменяются файлами с расширением .gz. Перенаправить закодированную информацию на стандартный вывод с сохранением исходного файла можно с помощью опции .

 

$ gzip file1 file2 file3

 

Распаковка файлов может осуществляться c использованием опции –d или утилитой gunip. Получить информацию о степени сжатия файла можно с помощью опции -l. С помощью числовых опций -[1-9] можно регулировать степень сжатия.

 

$ gzip -l file1.gz

 

Существует похожая на gzip утилита, использующая для сжатия преобразование Барроуза — Уилера, bzip2. Она имеет схожий синтаксис и опции. Сжатые файлы в этом случае имеют расширение .bz2.

Одновременно со сжатием, при работе с файлами применяется операция объединения нескольких файлов в один архив. Архивация часто применяется при создании резервных копий.

Утилита tar предназначена для упаковки множества файлов в архив, и их извлечения. В качестве аргументов команда принимает архивируемые файлы.

 

 

 

 

 

Таблица 3. Примеры опций команды tar.

 

Опция

Описание

-r

Добавление файлов к архиву

-c

Создание нового архива

--delete

Удаление файлов из архива

-t

Вывод содержимого архива

-x

Извлечение файлов из архива

-f

Использование архивного файла

-v

Вывод списка обрабатываемых файлов

 

Создание нового архивного файла:

 

$ tar -cvf myarchive.tar file1 file2 file3

 

Просмотр содержимого архивного файла:

 

$ tar -lf myarchive.tar

 

Утилита zip выполняет одновременно функции сжатия и архивации. Итоговый файл будет иметь расширение .zip. Для помещения в архив директорий вместе с вложенными файлами используется флаг -r.

 

$ zip -r archive.zip имя_директории

 

Для распаковки архива используется утилита unzip. Для получения дополнительной информации об извлекаемых файлах используется опция -l.

 

$ unzip -l archive.zip путь_для_распаковки

 

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

 

1.     Прочитайте теоретический материал по лабораторной работе.

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

3.     С помощью утилит find и wc получите информацию о количестве файлов в домашнем каталоге пользователя.

4.     Получите имена всех файлов, не являющихся символическими ссылками или каталогами, и поместите их в файл filelist1.txt.

5.     С помощью команд find, xargs и ls получите полную информацию об атрибутах файлов домашнего каталога размер которых превышает 5 Килобайт и поместите результат в файл filelist2.txt.

6.     С помощью команды locate получите список имен файлов содержащих в названии строку “bash”.

7.     Для команд, используемых в предыдущих подпунктах, получите расположения файлов справочных руководств.

8.     Из файла passwd_example c помощью утилиты grep, получите записи пользователей с домашними каталогами в папке home, c указанием номеров строк. Поместите результат в файл filelist3.txt.

9.     Сожмите файл filelist1.txt с сохранением исходного файла, утилитой gzip c различными степенями сжатия. Для получившихся файлов узнайте процент коэффициента сжатия.

10. Сожмите файл filelist1.txt с сохранением исходного файла, утилитой bzip2 c различными степенями сжатия. 

11. Сравните результаты для утилит gzip и bzip2.

12. Создайте архив tar содержащий файлы filelist1.txt. filelist2.txt filelist3.txt.

13. Добавьте к созданному архиву файл passwd_example.

14. Создайте архив zip содержащий файлы filelist1.txt. filelist2.txt. filelist3.txt и passwd_example.

15. Сравните размеры получившихся архивов.

16. Распакуйте архив blackbox.tar.gz и запустите находящийся в нем скрипт.

 

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

 

1.     Какие утилиты для поиска файлов вы знаете?

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

3.     Где производит поиск файлов команда locate?

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

5.     Как добавить файлы к архиву tar, получить список файлов в архиве? 6. Как извлечь файлы из архива tar, zip?

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Комплект лабораторных работ по работе с ОС Linux"

Получите профессию

Методист-разработчик онлайн-курсов

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ Лабораторная работа 5.pdf

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

 

ЗНАКОМСТВО С ПРОЦЕССАМИ

 

Цель работы

 

Познакомиться с понятием процесса. Научиться получать список имеющихся в системе процессов и управлять их состоянием.   

 

1. Теоретические сведения

 

1.1. Понятие процесса

 

Операционная система Linux является многозадачной (мультизадачной). Это значит, что одновременно в системе может присутствовать множество процессов, каждому из которых доступно определенное количество процессорного времени. Для пользователя создается «иллюзия» одновременного выполнения процессов.

Процесс – выполняемая программа с еѐ данными и контекстом.  

Каждый процесс имеет уникальный в любой момент времени номер в системе – PID. Первый запускающийся в системе процесс init, имеет pid = 1.

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

Каждый процесс в системе Linux запускается каким-либо процессом. Запускающий процесс – родительский, новый процесс - дочерний. Процессы, выполняющие одну задачу, объединяются в группы, имеющие собственный идентификатор. Процесс внутри группы, идентификатор которого совпадает с идентификатором группы процессов, считается лидером группы процессов.

Все запущенные процессы условно (в зависимости от выполняемой ими функции) можно разделить на три типа:

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

Процессы-демоныэто неинтерактивные  процессы, которые выполняются в фоновом режиме.

К прикладным относятся все остальные процессы, выполняющиеся в системе.

Интерактивные процессы связаны с определѐнным терминалом и через него взаимодействуют с пользователем. Фоновые процессы   выполняются независимо от пользователя и (псевдо)параллельно.

Каждый процесс в операционной системе Linux может находиться в одном из четырѐх состояний: работоспособный, спящий (или ожидающий), остановленный и завершившийся.

 

1.2. Дополнительные утилиты

 

 Для получения информации о запущенных процессах часто используется команда ps. Вывод запущенной без аргументов команды содержит: информацию о процессах текущего пользователя и ассоциированных с текущим терминалом, процессорное время, занятое этим процессом, и имя исполняемого файла. Управлять форматом вывода можно с помощью дополнительных опций (Таблица 1).

 

$ ps

 

Таблица 1. Примеры опций команды ps  

 

Ключ

Описание

-a

Выдать все процессы системы, включая лидеров сеансов.

-d

Выдать все процессы системы, исключая лидеров сеансов.

-e

Выдать все процессы системы.

-x

Выдать процессы системы, не имеющие контрольного терминала.

-o

Определяет формат вывода в виде списка полей, разделенных символом «,».

-u

Выдать процессы, принадлежащие указанному пользователю.

 

Например, можно получить выборочную информацию обо всех процессах в системе:

           

 $ ps -eo s,pid,tty,command  

 

Альтернативным способом узнать о состоянии процессов в реальном времени является использование команды top. Выводом команды можно управлять с помощью специальных комбинаций клавиш. Справочную информацию можно получить, нажав клавишу «h».

Чтобы получить информацию о запущенных в системе процессах в виде дерева, можно использовать утилиту pstree.  

 

 

 

 

 

2 Управление процессами

 

Чтобы запустить программу достаточно ввести ее имя в командной строке и нажать «Enter». Однако не все команды запускают единственный процесс.

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

 

$ firefox csc.sibsutis.ru

 

Работу некоторых запущенных в терминале программ можно прервать с помощью сочетания клавиш «Ctrl + c» в окне терминала. В этот момент программе посылается сигнал INT (Interrupt).

Чтобы запустить программу в фоновом режиме необходимо завершить команду символом амперсанд «&». После этого в терминал выводится информация о запущенном процессе включая номер задания терминала, и приглашения пользователю на ввод новой команды.

 

$ top &

 

Используя команду jobs мы можем получить список заданий которые запущены через терминал. 

 

$ jobs

 

Чтобы вернуть запущенный в фоне процесс на передний план используется командa fg  с указанием номера задания из списка заданий.

 

$ fg %2

 

Если мы хотим перевести процесс в сосотояние остановленный, используется сочетание клавиш «Ctrl + z». В этот момент программе посылается сигнал TSTP (Terminal Stop).

После этого мы можем либо переместить задание на передний план командой fg, либо продолжить его выполнение в фоновом режиме командой bg.

 

$ bg %2

 

Еще одним способом управлять выполнением процессов является использование утилиты kill. Данная команды позволяет послать определенный сигнал процессу. Возможно завершение процесса как по имени, так и по номеру задания или по идентификатору PID процесса.

 

$kill -SIGINT 124672

 

Получить список сигналов можно с помощью опции -l.

 

$ kill -l

 

Послать сигнал нескольким процессам можно с помощью команды killall.

 

$ kilall gedit

 

Приведенная выше команда завершит все процессы текущего пользователя с именем gedit. По умолчанию команда отправляет сигнал TERM (software termination signal).

 

 

Таблица 2. Примеры команд  

 

Команда

Описание

ps

Выдать снимок имеющихся в системе процессов.

top

Выдать информацию о процессах системы в интерактивной форме.

pstree

Вывод дерева процессов в системе

jobs

Выдать список заданий в текущей сессии оболочки.

fg

Переместить задание из текущей сессии на передний план.

bg

Переместить задание из текущей сессии в фон.

kill

Завершить процесс, отправить сигнал процессу.

killall

Завершить группу процессов, отправить сигнал группе процессов.

 

 

 

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

 

1.     Прочитайте теоретический материал по лабораторной работе.

2.     Ознакомьтесь с работой команд, приведенных в Таблице 2. Изучите для содержащихся в Таблице 2 команд страницы справочного руководства.

3.     Создайте файл proc1, содержащий список процессов пользователя root, отсортированный по идентификатору родительского процесса.

Используйте команду ps и изученные ранее утилиты.

4.     Получите информацию о процессах вашего пользователя, имеющих статус работоспособный

5.     Добавьте к файлу proc1 сведения о процессе в данный момент потребляющий больший процесс ресурсов центрального процессора. 

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

7.     Ознакомьтесь со справочной информацией утилиты top. Изучите действия, выполняемые по нажатию на клавиши, «u», «f», «R», «d», «L». Настройте вывод утилиты top в соответствии с заданием 3, с периодом обновления 1с.

8.     В окне терминала запустите программу firefox. Используя команду pstree получите информацию о дереве процессов и их идентификаторах. Найдите поддерево для процесса firefox, изучите список составляющих его процессов.

9.     В новом окне терминала запустите программу firefox. Затем два раза запустите утилиту gedit фоновом режиме. 

10. Получите список заданий текущей сессии терминала.

11. Используя команды fg и bg и сочетания клавиш «Ctrl + z» и «Ctrl + с» научитесь перемещать задачи из фона на передний план и наоборот.

12. Получите список сигналов для команды kill. Завершите запущенные процессы с помощью команды kill с помощью сигналов SIGKILL и SIGTERM. 13. Выполните команду killall -u имя_текущего_пользователя.

 

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

 

1.     Какие способы получения информации о процессах в системе вы знаете?

2.     Как можно управлять выводом утилиты top?

3.     Какие сигналы отправляются сочетаниями клавиш «Ctrl + z» и  «Ctrl + с»?

4.     Какой процесс в системе запускается первым?

5.     Какие типы процессов вы знаете?

6.     Что такое дескриптор процесса?

 

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Комплект лабораторных работ по работе с ОС Linux"

Получите профессию

Методист-разработчик онлайн-курсов

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ Лабораторная работа 6.pdf

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

 

КОНТРОЛЬ РЕСУРСОВ. ПЛАНИРОВАНИЕ ЗАДАЧ.

 

Цель работы

 

Познакомиться с утилитами предоставляющими информацию о состоянии системы. Научиться создавать запланированные задания.   

 

1. Теоретические сведения

 

1.1. Получение информации о системе

 

Многие утилиты, позволяющие осуществлять контроль над ресурсами системы, получают свою информацию из файлов, содержащихся в каталоге виртуальной файловой системы /proc. Ядро помещает в данный каталог данные о процессах, имеющихся в системе, статистические сведения, генерируемые ядром, настраиваемые параметры ядра и т.д. Некоторые ключевые файлы перечислены в Таблице 1.

 

Таблица 1. Некоторые источники информации о системе в каталоге /proc

 

Файл

Описание

/proc/cpuinfo

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

/proc/meminfo

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

/рrос/diskstats

Дисковые устройства и статистика их использования

/рrос/version

Версия ядра

/рrос/mounts

Информация о смонтированных файловых системах.

 

 

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

 

$ vmstat 2 8

 

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

 

Информацию о средней загруженности системы за период 5с, 10с и 15с, а также время непрерывной работы системы, можно получить с помощью утилиты uptime.

 

$ uptime

 

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

 

Чтобы определить размер области подкачки можно использовать команду swapon с опцией -s.

 

$ swapon -s

 

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

 

$ free -h

 

Получить информацию об использовании дискового пространства в системе можно с помощью утилиты df. Вывод команды содержит данные по всем смонтированным на данный момент файловым системам с указанием процента использованного пространства и точки монтирования каждой из них. Опция -h выполняет приводит форматирование вывода к удобному для пользователя виду.

 

$ df -h

 

Чтобы узнать размер не всего размера в целом, а какой-либо директории можно применить утилиту du. Первоначальный вывод команды содержит размеры всех вложенных директорий, имеется возможность управлять глубиной вложенности. Также, как и в случае с командой df может применятся опция -h.

 

$ du -sh

 

 

2 Планирование повторяющихся задач

 

Для большинства задач, стоящих перед системными администраторами характерно периодическое выполнение. Для удобства составления расписания пользовательских задач в операционной системе имеется служба cron

Задания планировщика cron построчно перечислены в специальном crontab файле. Записи в файле имеют следующий формат:

 

10 15 * * * /home/user/my_script.sh 

 

Где пять полей, разделенных пробелами, означают числовые представления минут, часов, дней месяца, месяца в году и дня недели соответственно. Символ «*» соответствует любому значению. Символ «/» служит для указания дополнительной периодичности задания. Например, «*/3» в первом поле означает «каждые 3 минуты». В приведенном выше примере пользовательский скрипт my_script.sh будет выполняться каждый день в 15 часов 10 минут.

Каждый пользователь может иметь свой файл crontab, чтобы сообщить системе имя файла необходимо выполнить команду:

 

$ crontab filename

 

Вывод имеющихся заданий выполняется данной утилитой с опцией -l. Очистка списка заданий выполняется командой crontab с опцией -r. Редактирование имеющегося файла заданий возможно текстовым редактором с использованием опции -e, например:

 

$ crontab -e

 

После добавления файла задания или изменения имеющегося файла происходит проверка синтаксиса.

 

 

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

 

1.     Прочитайте теоретический материал по лабораторной работе.

2.     Ознакомьтесь с содержимым файлов, приведенных в Таблице 1. Изучите для упомянутых в тексте работы команд страницы справочного руководства.

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

4.     С помощью команды vmstat, в течении 30с с интервалом в 3с, собирайте статистику об использовании ресурсов системы. Посчитайте среднее количество переключений контекста ядра в секунду на заданном интервале времени.

5.     Получите информацию о средней загруженности процессора в течении последних 15с. 

6.     Опишите текущее состояние страниц памяти, доступных в вашей системе.

7.     Опишите текущее состояние разделов жестких дисков, доступных в вашей системе.

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

9.     Создайте задание для cron, согласно которому каждую минуту в файл ~/memory/stat будет добавляться информация о текущем состоянии памяти, без учета размера подкачки и заголовка.

10. Создайте задание для cron, согласно которому каждые 3 минуты файл ~/memory/stat будет упаковываться в архив. 

11. После выполнения работы удалите все записи из crontab файла.

 

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

 

1.     Как получить информацию о состоянии памяти?

2.     Как получить информацию о доступном дисковом пространстве?

3.     Как происходит работа с файлами заданий планировщика cron?

4.     Какая информация содержится в директории /proc?

 

 

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Комплект лабораторных работ по работе с ОС Linux"

Получите профессию

Няня

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ Лабораторная работа 7.pdf

Лабораторная работа 7

 

ОСНОВЫ НАПИСАНИЯ СКРИПТОВ НА BASH

 

Цель работы

 

Получить начальные практические навыки написания сценариев оболочки.

 

1. Теоретические сведения

 

1.1. Группирование команд. Скрипты

 

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

Скрипт – это обычный текстовый файл, содержащий команды оболочке.

Такой файл может быть запущен на исполнение следующим образом:

$bash имя_файла

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

Другой вариант запуска скрипта – просто указать его имя в командной оболочке (т.е. сделав из него некий вид программы). Для этого надо в параметрах доступа определить файл как исполняемый, и в первых строках этого файла явно указать оболочку, для которой предназначен этот скрипт, следующим образом:

#!оболочка

В общем случае символ «#» в скрипте означает комментарий, требующий игнорировать строку. Однако если он является первым символом файла и за ним следует символ «!», то это означает «магическую комбинацию», за которой указывается путь к файлу, использующемуся в качестве интерпретатора скрипта (например, /bin/bash, /bin/perl, /bin/sh и т.д). Встретив такую комбинацию символов, командная оболочка запустит соответствующий файл и передаст ему его имя в качестве аргумента.

Скрипт, в свою очередь, может содержать все конструкции, описанные ранее (в том числе и функции).  

Выполнение скрипта происходит построчно. При этом если конструкция включает в себя несколько команд, то они могут располагаться на нескольких строках, и указывать символ «\» в конце неоконченной строки нет необходимости. Например:

 

Любому скрипту, точно так же, как и функции, могут быть переданы аргументы (так, как это делается при запуске любой команды). Передаются аргументы в виде специальных переменных (таблица 1).

Таблица 1. Специальные переменные, используемые в скриптах.

 

Переменная

Описание

$0

Имя выполняемой команды. Для скрипта – это путь, указанный при его вызове. Для функции – имя оболочки.

$n

Переменные, соответствующие аргументам, заданным при вызове сценария. Здесь n – десятичное число, соответствующее номеру аргумента. (Первый аргумент – $1, второй – $2 и т.д.).

$#

Число аргументов, указанных при вызове сценария. 

$*

Строка аргументов, заключённая в двойные кавычки.

$@

Все аргументы, каждый заключён в двойные кавычки.

$?

Статус завершения последней выполненной команды.

$;

Номер процесса, соответствующего текущей оболочке.

$!

Номер процесса, соответствующий команде, запущенной в фоновом режиме.

 

 

 

 

 

 

 

 

 

Последовательно просмотреть аргументы командной строки можно, используя следующую конструкцию:

 

#!/bin/bash while [ -n “$1” ] ; do echo “Имеется аргумент – ”$1 shift

done

 

 

Аргументы просматриваются в цикле while, условием выполнения которого является результат команды test с параметрами, требующими, чтобы длина строки в аргументе $1 была отлична от нуля. В строку подставляется значение первого аргумента. Если аргумент не указан, то переменная $1 имеет пустое значение, соответственно строка будет иметь нулевую длину, и цикл сразу же прекратится. Если аргумент указан, то он выводится в теле цикла, и затем выполняется команда shift, которая изменяет переменные $n, сдвигая их на одну влево (т.е. $1=$2, $2=$3 и т.д.). Значение первого аргумента при этом теряется. Когда сдвигается последний аргумент, то переменной $1 присваивается пустое значение (так как следующей за ней переменной не существует). В качестве параметра команды shift можно указать, на сколько позиций требуется сдвинуть строку аргументов. Например, shift 2 приведёт к следующему изменению: $1=$3, $2=$4 и т.п.

 

2 Переменные

 

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

Значение переменной присваивается следующим образом: переменная=значение (т.е. без процедуры экспортирования). Например, X=1, или X=а, или X=”f” и т.п.

Обратите внимание, что до и после знака «=» нет пробелов!!! Если поставить пробелы, например, так x = 1, то командная оболочка будет считать, что введена команда x, и она имеет два параметра: = и 1.

Если в командной оболочке создать переменную с тем же именем, что и переменная среды окружения, то в командной оболочке будет использоваться значение этой переменной, а в запускаемых программах – старое значение переменной среды окружения. Получить список всех переменных можно с использованием команды declare.

Удалить значение переменной или массива можно также с использованием команды unset.

 

3 Подстановка переменных, команд и арифметических выражений

 

Командная оболочка BASH позволяет формировать команды с использованием значений переменных, результатов работы других команд и т.п. Такое формирование называется подстановкой. Т.е. в команду «подставляется» что-либо (переменная, вывод другой команды и т.п.). Для подстановки используется либо символ «$», либо выражение, заключённое в обратные апострофы (`выражение`).

Если в тексте команды встречается символ «$», то следующий за ним текст до пробела или конца команды интерпретируется как имя переменной, значение которой подставляется в текст команды. Например:

 

 

[student@wp1 student]$FRUIT=Апельсин<Enter>

[student@wp1 student]$echo “Фрукт ”$FRUIT<Enter>

Фрукт Апельсин [student@wp1 student]$_

 

В примере создаётся одна переменная командной оболочки (FRUIT), которой присваивается значение «Апельсин». Затем выполняется команда echo, которая должна выдать на экран текст, указанный ей в качестве параметра. В данном случае параметром является строка “Фрукт “$FRUIT, в которой присутствует символ «$». Поэтому прежде чем выполнить команду echo, командная оболочка «подставит» в её аргумент значение переменной FRUIT, сформировав тем самым текст “Фрукт Апельсин”.

Обратите внимание, что при присваивании переменной значения её имя указывается без знака доллара. Т.е. если Вы напишите $FRUIT=apple, командная оболочка выдаст ошибку: -bash Апельсин=apple:command not found. Так как прежде чем выполнить команду, командная оболочка подставит в неё значение переменной FRUIT, а затем только попытается её выполнить. И если Вы напишите echo FRUIT, то на экран будет выведено слово FRUIT, а не значение переменной с таким именем.

Подстановку можно использовать также и в случае, если требуется в команде использовать то, что некоторая программа помещает в поток вывода. В этом случае программа заключается в обратные апострофы. Прежде чем выполнить команду, командная оболочка выполнит программу, заключённую в обратные апострофы, затем всё, что она поместит в поток вывода, будет подставлено в командную строку, и только затем команда будет выполнена. Например:

 

[student@wp1 student]$DATE=`date`<Enter>

[student@wp1 student]$echo $DATE Ср. нояб. 30 13:32:23 NOVT 2011

[student@wp1 student]$_

 

Переменной DATE присваивается текст, который должна была вывести на экран команда date, т.е. текущую системную дату. Затем на экран выводится значение переменной DATE.

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

 

 

[student@wp1 student]$foo=$((((5+3*2)–4)/2))<Enter>

[student@wp1 student]$echo $foo

 3

[student@wp1 student]$_                                 

переменной foo будет присвоено значение, равное 3.

 

4 Получение информации от пользователя

 

При необходимости командная оболочка позволяет сформировать значение некоторой переменной, «спросив» его у пользователя. Для этого используется команда read, которой в качестве аргумента передаётся имя требуемой переменной.

 

[student@wp1 student]$read CHOICE Привет !!!<Enter>

[student@wp1 student]$echo “Вы ввели ”${CHOICE} Привет !!!

[student@wp1 student]$_

 

 

Чтобы указать, какое приглашение должно быть выведено в строке для ввода, можно использовать параметр -p. Например:

 

$ read -p “Введите X” X.

 

Время ожидания (в секундах) ввода задаётся или при помощи переменной TMOUT, или при помощи параметра -t. Если переменная TMOUT не определена или её значение равно 0, и не указан параметр -t, то время ожидания считается бесконечным. Обратите внимание, что значение переменной TMOUT также влияет на время ожидания командной оболочкой очередной команды!!!

Используя параметр -s, можно запретить отображение вводимых символов на экране. Это удобно, например, при вводе паролей.

 

 

5 Условный оператор if-fi

 

Выражение if записывается следующим образом:

 

 

В приведённой выше команде if сначала выполняется выражение1. Если код завершения выражения1 равен 0 (что интерпретируется как его истинность), то выполняется выражение2, и команда if заканчивается. В противном случае выполняется выражение3, и проверяется код его завершения. Если выражение3 возвращает значение, равное 0, то выполняется выражение4 и команда if. Если выражение3 возвращает ненулевое значение, то выполняется выражение5. Наличие операторов elif и else необязательно. В блоке if-fi может содержаться несколько elif.

Часто в блоке if-fi в качестве выражений, результаты которых проверяются, используется команда test, которая имеет две формы записи: test параметры или [ параметры ]. После интерпретации параметров (таблица 2) как логического выражения команда test возвращает значение 0 – истина либо 1 – ложь.

Если команда не помещается в командную строку, то её можно продолжить на следующей строке, для чего текущую строку надо завершить символом «\» (обратный слеш) и нажать Enter. Командная оболочка после нажатия Enter определит, что последним символом в команде был символ «обратный слеш», и будет ожидать продолжения команды на новой строке. Точно так же можно завершить вторую, третью и последующие строки.

 

 

 

 

 

 

 

 

Таблица 2. Специальные переменные, используемые в скриптах.

Выражение

Значение

-d файл

существует ли файл и является ли он каталогом?

-e файл

существует ли указанный файл?

-f файл

существует ли файл и является ли он обычным файлом?

-L файл

существует ли файл и символьная ли он ссылка?

-r файл

существует ли файл и разрешено ли его чтение?

-s файл

существует ли файл и имеет ли он нулевой размер?

-w файл

существует ли файл и разрешена ли в него запись?

-x файл

существует ли файл и является ли он исполняемым?

-O файл

существует ли файл и принадлежит ли он текущему поль- зователю?

файл1 -nt файл2

был ли файл1 последний раз модифицирован позже, чем файл2?

-z строка

указанная строка имеет нулевую длину?

-n строка

указанная строка имеет ненулевую длину?

стр1 == стр2

указанные строки совпадают?

! выражение

указанное выражение false?(содержит не нуль)

выр1 -a выр2

логическое И двух выражений

выр1 -o выр2

логическое ИЛИ двух выражений

выр1 -eq выр2

выр1 равно выр2?

выр1 -ne выр2

выр1 неравно выр2?

выр1 -lt выр2

выр1 меньше (в арифметическом смысле) выр2?

выр1 -le выр2

выр1 меньше либо равно выр2?

выр1 -gt выр2

выр1 больше выр2?

выр1 -ge выр2

выр1 больше либо равно выр2?

 

В следующем примере проверяется, существует ли каталог

$HOME/bin, и, если он существует, то он добавляется к переменной PATH.

                                                 

$if [ -d $HOME/bin ] ; then \

>PATH="$PATH:$HOME/bin" ; fi                             

 

6 Оператор множественного выбора case-esac

 

Блок case-esac аналогичен оператору if-fi со множеством elfi и предназначен для проверки одной переменной на несколько возможных значений. Блок case-esac записывается следующим образом:

 

 

 

В данном случае значение – это строка символов, сравниваемая с шаблоном до тех пор, пока она не совпадёт с ним. Список команд, следующий за шаблоном, которому удовлетворяет значение, запускается на выполнение. За списком следует команда «;;», которая завершает работу блока case-esac. Если значение не удовлетворяет ни одному из шаблонов, выражение case завершается. Если необходимо выполнить какие-то действия по умолчанию, следует включить в выражение шаблон «*», которому удовлетворяет любое значение.

В выражении case-esac должен присутствовать, по крайней мере, один шаблон. Максимальное число шаблонов не ограничено.

Шаблон формируется по правилам, аналогичным именам файлов и каталогов (с учётом символов расширения), а также используется оператор дизъюнкции «|» (операция ИЛИ). Ниже приведён пример использования блока case-esac.

 

$case “$TERM” in \ >*term) \

>TERM = xterm \

>;; \

>network | dialup | unknown | vt[0-9]*) \

>TERM=vt100 \

>;; \ >esac

 

 

7 Цикл for

 

Цикл for предназначен для выполнения определённых действий над несколькими данными. Формат записи цикла следующий:

 

 

$for имя_переменной in список_значений ; \ >do \

>команда1 ; команда2 ...\

>done

 

 

В цикле for переменной с указанным именем последовательно присваиваются все значения из списка_значений, и для каждого из этих значений выполняется список_команд. Значения в списке_значений перечисляются через пробел. Например, следующая команда выдаст на экран десять строк: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10:

 

$for i in 1 2 3 4 5 6 7 8 9 10 ; \ >do \

>echo $i ; \

>done

 

 

8 Цикл while

 

Если необходимо выполнять какие-либо действия до тех пор, пока некоторое выражение истинно, то следует использовать цикл while, который записывается следующим образом:

 

 

 

 

На каждой итерации этого цикла выполняется выражение и до тех пор, пока оно возвращает значение 0, выполняется список_команд. Если в качестве выражения указать команду /bin/true, то цикл будет бесконечным и завершить его можно только, используя оператор break. Пропустить какуюлибо часть цикла и перейти на следующую его итерацию можно, используя в списке_команд команду continue.

Например, вывод последовательности цифр от 1 до 9 можно организовать следующим образом:

 

 

 

 

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

 

1.     Прочитайте теоретический материал по лабораторной работе.

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

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

 

 

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

 

1.     Что такое скрипт?

2.     Что означает символ «\», введённый в командной строке перед нажатием Enter?

3.     Команда read.

4.     Условный оператор if-fi. Команда test.

5.     Циклические конструкции.

 

 

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Комплект лабораторных работ по работе с ОС Linux"

Получите профессию

Бухгалтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Получите профессию

Экскурсовод (гид)

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 609 833 материала в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 24.11.2016 7278
    • RAR 2.1 мбайт
    • 329 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Плаксо Виктор Александрович. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Плаксо Виктор Александрович
    Плаксо Виктор Александрович
    • На сайте: 9 лет и 4 месяца
    • Подписчики: 0
    • Всего просмотров: 116955
    • Всего материалов: 32

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Методист-разработчик онлайн-курсов

Методист-разработчик онлайн-курсов

500/1000 ч.

Подать заявку О курсе
  • Сейчас обучается 29 человек из 18 регионов

Курс повышения квалификации

Специалист в области охраны труда

72/180 ч.

от 1750 руб. от 1050 руб.
Подать заявку О курсе

Курс профессиональной переподготовки

Организация деятельности библиотекаря в профессиональном образовании

Библиотекарь

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 279 человек из 66 регионов

Курс профессиональной переподготовки

Руководство электронной службой архивов, библиотек и информационно-библиотечных центров

Начальник отдела (заведующий отделом) архива

600 ч.

4920 руб. 2950 руб.
Подать заявку О курсе

Мини-курс

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

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Управление проектами: от планирования до реализации

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 20 человек из 14 регионов

Мини-курс

Реклама для роста бизнеса: эффективные стратегии и инструменты

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 24 человека из 12 регионов