- •Оглавление
- •Введение
- •Лабораторная работа 1 Операционная система Linux в графическом режиме
- •1.1. Изучим элементы рабочего стола gnome
- •1.2. Познакомимся с авторами интегрированной среды gnome и других программ
- •1.3. Создадим панель и изучим порядок изменения ее свойств
- •1.4. Освоим порядок изменения свойств программы Наутилус
- •1.5. Изучим управление свойствами окна в графической среде gnome
- •1.6. Сохраним в виде графического файла содержимое экрана
- •1.7. Освоим программу создания архивов в графическом режиме
- •1.8. Используем простой текстовый редактор для подготовки командного файла – сценария
- •1.9. Изучим действия, позволяющие ассоциировать документ с приложением
- •Лабораторная работа 2 Основы использования командной строки
- •2.1. Выполним первые действия в командном режиме
- •2.2. Изучим команды, сообщающие информацию о программно-аппаратном комплексе компьютера
- •2.3. Познакомимся с командой echo, и переменными оболочки
- •2.4. Изучим систему помощи в командном режиме семейства unix/Linux
- •2.5. Изучим, что такое команда
- •2.5.1. Рассмотрим типы и количество команд
- •2.5.2. Рассмотрим параметры командной строки
- •2.5.3. Рассмотрим использование нескольких опций одной команды
- •2.6. Рассмотрим использование специальных символов оболочки
- •2.7. Изучим историю набранных команд и средства редактирования командной строки
- •2.8. Рассмотрим простейшее использование текстового редактора VI
- •VI file_one
- •2.9. Ознакомимся с основами работы с программой Midnight Commander
- •Лабораторная работа 3 файловая система
- •3.1. Изучим иерархическую файловую систему
- •3.2. Рассмотрим права доступа к файлам
- •3.3. Рассмотрим типы файлов
- •3.4. Рассмотрим примеры файлов разного типа
- •3.5. Рассмотрим команды работы с каталогами
- •3.5.1. Научимся создавать каталоги
- •VI script3
- •VI script4
- •3.5.2. Научимся удалять каталоги
- •3.5.3. Научимся копировать и перемещать файлы и каталоги
- •3.5.4. Изучим возможность выполнять разные операции над каталогами с разными правами доступа
- •3.6. Рассмотрим использование ссылочных файлов
- •3.7. Изучим понятие таблицы иноде (inode)
- •3.8. Расширим понимание и умение использовать команды less и more
- •3.9. Рассмотрим сортировку содержимого файлов
- •3.10. Познакомимся с командой grep
- •3.11. Познакомимся с командой diff
- •3.12. Познакомимся с командой find
- •1) Find / -name echo
- •4.1. Рассмотрим классификацию процессов Linux
- •4.2. Изучим команды получения информации о загруженности системы и активных пользователях
- •VI working
- •4.3. Познакомимся с командами top и ps
- •Vim topfile
- •4.4. Рассмотрим работу в фоновом режиме
- •4.5. Рассмотрим управление приоритетами процессов
- •4.6. Изучим простые возможности обмена информацией между пользователями
- •4.7. Рассмотрим средства управление ресурсами пользователя
- •Лабораторная работа 5 Сценарии в операционной системе Linux
- •If условие
- •If условие
- •If условие
- •Библиографический список
If условие
then
команды 1
elif
команды 2
else
команды 3
fi
В условных конструкциях сценариев можно использовать конструкцию test. Он может быть записан в формате test выражение или [выражение]. Последнее является конструкцией, в которой записывается операция сравнения с использованием приведенных выше обозначений. Приведем пример использования test
Текст сценария scr7 |
РЕЗУЛЬТАТЫ и пояснения |
#!/bin/bash
# 7 clear echo
a=test b=TEST c=test
test $a = $b echo " test 1 run cod " $?
test $a = $c echo " test 2 run cod " $?
C1=234 C2=234
[ $C1 -eq $C2 ] echo " test 3 eq " $?
[ $C1 = $C2 ] echo " test 4 = " $?
let d=$C1
[ $d = 234 ] echo " test 5 = " $?
[ $d -eq 234 ] echo " test 6 eq " $?
echo press key read q |
Если сценарий вызвать следующим образом, scr7 то получим следующие результаты.
test 1 run cod 1
test 2 run cod 0
test 3 eq 0
test 4 = 0
test 5 = 0
test 6 eq 0
press key
|
В языке сценариев оболочки используются операторы цикла. Они бывают трех типов. Первый из них записывается следующим образом:
whilе условие
do
команды
done
Пример записи оператора цикла в форме whilе для решения задачи вычисления факториала числа 5 может выглядеть так.
Текст сценария scr8 |
РЕЗУЛЬТАТЫ и пояснения |
#!/bin/bash
let p=5 let i=1 let f=1 while [ $i -le $p ] do let f=f*i let i=i+1 done echo " $p $f" echo echo press key read q |
Если сценарий вызвать следующим образом, scr8 то получим следующие результаты.
5 120
press key
|
Другая форма записи оператора цикла такая
until условие
do
команды
done
Приведем пример сценария, также реализующего задачу вычисления факториала с использованием until. Обращаем внимание на условие выполнения оператора цикла (-le) в первом случае и условия окончания (-gt) – во втором.
Текст сценария scr9 |
РЕЗУЛЬТАТЫ и пояснения |
#!/bin/bash
let p=5 let i=1 let f=1 until [ $i -gt $p ] do let f=f*i let i=i+1 done echo " $p $f" echo echo press key read q |
Если сценарий вызвать следующим образом, scr9 то получим следующие результаты.
5 120
press key
|
Последний вид оператора цикла имеет такой формат записи.
for var in список
do
команды
done
При такой записи оператора цикла переменная var последовательно приобретает значения из списка. Цикл выполняется столько раз, сколько элементов в списке. Вместо списка может быть записан шаблон имени файла. Тогда будут перебираться все файлы из текущего каталога, имя которых совпадает с шаблоном. Например, если после in записана *, то цикл выполнится столько раз, сколько файлов в текущем каталоге, а значения переменной var будет последовательно равно именам всех таких файлов
Приведем примеры сценариев с оператором for.
Текст сценария scr10 |
РЕЗУЛЬТАТЫ и пояснения |
#!/bin/bash
clear echo echo echo "= for 1 =" let l=0 for x in p q r do let l=l+1
echo " $l $x" done echo echo " = for 2 =" echo let l=1 for p in * do echo " $l $p" l=l+1 done echo echo " = for 3 =" echo let l=1 for p in * do if [ -f $p ]; then echo " $l $p" let l=l+1 fi done
echo press key read q |
Если сценарий вызвать следующим образом, scr10 то получим следующие результаты.
= for 1 = Список состоит из трех элементов и будет выполнен три раза. Параметр цикла х приобретет значения из этого списка. 1 p 2 q 3 r
= for 2 =
1 scr10
= for 3 =
2 scr10
press key
|
Следующая управляющая конструкция реализует структуру множественного выбора. Она записывается следующим образом
case слово in
шаблон 1)
команды
. . .
; ;
шаблон 2)
команды
. . .
; ;
*)
команды
. . .
; ;
esac
При совпадении значения слово с одним из шаблонов выполняются операторы до двойных символов «; ;». Далее сценарий продолжает выполнение со строки после ключевого слова esac.
Текст сценария scr11 |
РЕЗУЛЬТАТЫ и пояснения |
#!/bin/bash
clear echo case $1 in 0) echo Null ;; [1-9]) echo Anoder ;; [a|A]) echo a or A ;; *) echo NO !!! ;; esac
echo press key read q |
Если сценарий вызвать следующим образом, scr11 С то получим следующие результаты, зависящий от введенного С
С => 0 Null C 1 2...9 Anoter C a (A) a or A Другие случаи NO !!!
press key
|
Задание 39.
1. Создать командный файл, который при выполнении должен получить не менее двух параметров. Если количество переданных сценарию параметров ровно два, то на экране появляются их значения, в противном случае – вывести имя сценария и требование задать два параметра.
2. Создать сценарий, который проверяет наличие строки пользователя (имя пользователя вводится с клавиатуры – команда read) в файле /ets/passwrd.
3. Создать сценарий, в котором в специально созданную директорию /usr/temp (создать команду mkdir), копируется файл. Предварительно этот файл создается с клавиатуры командой cat. После создания директории высветить ее содержимое и сделать то же самое после копирования.
4. Создать командный файл, который считывает с клавиатуры имя файла и каталог, а затем копирует указанный файл в заданный каталог.
5. Создать сценарий, который спрашивает имя файла и определяет: имеется ли файл с таким именем в домашнем каталоге пользователя - /home/<имя пользователя>.
6. Создать командный файл, в котором над двумя заданными числами осуществляются следующие действия: эти числа складываются и перемножаются. Затем в цикле на экране распечатывается строки со словом Hello!. Количество строк равно минимальному из заданных чисел.
7. Создать командный файл, который по команде read запрашивает имя каталога и выдает его полное содержимое.
8. Создать командный файл, который по команде read запрашивает имя пользователя и выдает список, запущенных им процессов (вывести такие атрибуты процесса - PID, STAT, COMMAND, TIME, PRI, NI).