- •Оглавление
- •Введение
- •Лабораторная работа 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 условие
- •Библиографический список
Vim topfile
и наберите три строки произвольного текста. Сохраните файл. На другом виртуальном терминале исполните
top –b –n1 | grep vim
Определите характеристики процесса vim., а затем завершите работу всех сеансов пользователей, кроме одного.
В пособии уже много раз упоминалась команда ps. Система помощи man содержит много информации об этой команде с богатыми возможностями. До настоящего времени утилите давались разные опции, позволяющие ограничить (или расширить) список выводимых процессов (строк вывода). Для каждой из них выводился свой стандартный набор атрибутов (столбцов вывода). Но эта утилита обладает и другими возможностями. Можно сформировать по своему желанию список атрибутов процессов, которые будут выводиться. Приведем параметры вызова утилиты, позволяющие задавать список атрибутов:
cmd – полное имя исполнимого файла;
fname – имя исполнимого файла;
pid – идентификатор;
stat – состояние;
pri – приоритет;
ni – число nice.
Полный их список содержит man по утилите ps. Приведем пример, в котором выводится список из пяти значений атрибутов.
ps -е -o pid,stat,ni,pri,fname --sort ni
Вывод будет содержать следующие столбцы PID STAT NI PRI COMMAND, отсортированные по числу nice (опция --sort ni ).
Если дать такую команду
ps а -о pid,stat,ni,pri,fname --sort pid
то будет выведено следующее (приведено только несколько строк).
PID STAT NI PRI COMMAND
2723 Ss+ 0 19 mingetty
2724 Ss+ 0 19 mingetty
2726 Ss+ 0 19 mingetty
2727 Ss+ 0 19 mingetty
2728 Ss+ 0 19 mingetty
2788 Rs+ 0 19 Xorg
3985 Ss 0 19 bash
4016 S+ 0 19 mc
4022 Ss+ 0 19 bash
6379 Ss 0 19 bash
6443 S+ 0 19 mc
6445 Ss 0 19 bash
6973 R+ 0 19 ps
Задание 34.
Зарегистрируйте сеанс asplinux. Выполните команду
ps e -o pid,stat,ni,pri,fname --sort ni
Сделайте вывод о диапазоне изменения значений числа nice. Проверьте свой вывод в справочном руководстве man по команде nice.
4.4. Рассмотрим работу в фоновом режиме
В Linux развиты средства одновременной работы многих приложений, даже на одном персональном компьютере. Поэтому такие операционные системы, следуя своим предшественникам UNIX, позволяют пользователю выполнять одновременно несколько программ. Только одна из запущенных на выбранном виртуальном терминале работает в диалоговом режиме. Остальные «не мешают» диалогу. Про такие программы говорят, что они работают в фоновом режиме, в противоположность программам, выполняемым на переднем плане. Если в системе есть процессы, запущенные в фоновом режиме, то для них используют термин работа. Для того, чтобы вывести все программы, запущенные в фоновом режиме, используют команду jobs.
В появлении фонового режима выполнения возможно «повинны» те программы, которые работают долгое время, но не имеют при этом внешних проявлений. К ним можно отнести, например, сжатие больших файлов. Пока выполняется такая работа, можно в диалоге заниматься другой, например, набирать текст.
Работы, выполняемые в фоновом режиме, могут быть приостановлены. Однако это не означает их завершения. Они продолжают выполнение с того состояния, при котором были остановлены. Временно приостановить такую программу можно комбинацией <Сtrl+S>, а запустить вновь – <Сtrl+Q>.
Для изучения фонового исполнения программ, перейдите на первый виртуальный терминал и откройте сеанс пользователя root. Изучим процедуру управления работами. Будем исполнять действия, совпадающие с теми, что были описаны в материале по операционной системе Linux по адресу http://eugene.mplik.ru.
В системах UNIX есть команда, которая посылает в выходной поток один символ y. Это происходит бесконечно (в режиме «зацикленной» программы). Запускается программа командой
yes
На первом виртуальном терминал дадим эту команду. Зарегистрируем на втором виртуальном терминале сеанс root, далее дадим такую же команду
yes
Так как первый и второй виртуальные терминалы не доступны, на свободном (например, третьем) виртуальном терминале в сеансе asplinux выполним сначала
ps # on tty3
а затем
ps –a # on tty3
Первая из них даст такой результат
PID TTY TIME CMD
3932 tty3 00:00:00 bash
3973 tty3 00:00:00 ps
вторая же несколько отличный
PID TTY STAT TIME COMMAND
3891 tty1 R+ 0:20 yes
3929 tty2 R+ 0:17 yes
3976 tty3 R+ 0:00 ps a
Теперь перейдем на четвертый виртуальный терминал и откроем сеанс пользователя root и выполним
ps –r # on tty4
она даст следующий вывод
PID TTY STAT TIME COMMAND
3891 tty1 R+ 1:13 yes
3929 tty2 R+ 1:06 yes
4090 tty4 R+ 0:00 ps r
Задание 35.
В сеансе пользователя asplinux выполните на четвертом виртуальном терминале команды из пункта 4.4 выполненные ранее и сравните их с результатом таких же команд в сеансе пользователя root.
Завершим все выполняемые программы и оставим активным только сеанс на первом виртуальном терминале.
Следующим действием перенаправим ввод команды yes в специальный файл /dev/null (черная дыра)
yes > /dev/null
Теперь на экране не будет выводиться сплошной поток символов y. Но клавиатура все же занята. Если набирать на ней символы, они отображаются на экране. Но новую команду выполнить не удается. Пререм выполнение программы <Ctrl+С> и запустим ее уже в фоновом режиме, добавив символ &
yes > /dev/null &
В ответ на экране будет выведено, например следующее
[1] 3211
Цифра в квадратных скобках означает номер работы, а число за ней – идентификатор процесса, связанного с ней. После выполнения программы, на экране вновь появилась строка приглашения. Теперь можно исполнять другие программы. Они могут работать, как в фоновом, так и в режиме переднего плана. Запустим еще один экземпляр программы
yes > /dev/null &
со следующим результатом
[2] 3112
Подтверждение выполнения программы yes в двух экземплярах получим по команде
jobs
со следующим результатом
[1]- Running yes > /dev/null &
[2]+ Running yes > /dev/null &
или
ps -r
после выполнения которой будет выведено
PID TTY STAT TIME COMMAND
3211 tty1 R+ 0:13 yes
3112 tty1 R+ 1:06 yes
3687 tty1 R+ 0:00 ps r
Прекратить выполнения таких команд можно по-разному. Например, первую - следующей командой
kill %1
а вторую - так
kill 3929
[1]- Завершено yes > /dev/null &
Из этого следует, что к работам можно «обратиться», используя форму %n, где n –номер работы, или по числовому идентификатору процесса. Запустим два новых экземпляра команды yes (напомним, что это легко сделать, возвратив команду нажимая ↑).
Если программа запущена в режиме переднего плана, то ее можно перевести в «фон» следующим образом. Сначала остановим ее командой <Ctrl+Z>, а затем надо использовать специальную команду bg (от back ground). Выполним это.
Сначала запустим команду
yes> /dev/null &
Далее остановим ее (<Ctrl+Z>)
[3]3686
[2]- Завершено yes > /dev/null &
и дадим команду bg. Она приведет к такому результату
[3]+ yes > /dev/null &
Отметим, что запуск программы в режиме переднего плана возможен и по команде fg. Ею можно перевести выполнение программы из фонового режима в обычный. Для этого используется запись следующего вида
fg %n
где n – номер работы.
Проделаем следующее. Выполним в фоновом режиме команду
find / -name a* > /dev/null &
и еще одну
yes> /dev/null &
Выполнив jobs, увидим приблизительно следующее
[1]- Running yes > find / -name a* > /dev/null &
[2]+ Running yes > /dev/null &
Любую из работ можно перевести в передний план командой fg с указанием номера. Если выполнить такую команду
fg %2
на экране будет следующее сообщение
yes > /dev/null
Но строки приглашения при этом не возникает. Прекратите выполнение yes.
Отметим, что команды jobs, fg и bg являются внутренними командами оболочки и им не соответствуют исполнимые файлы.
Такая команда.
find / -name fg
не найдет исполнимого файла.
Задание 36.
Выполните такую последовательность действий.
1. Дайте команду yes.
2. Остановите ее (<Ctrl+Z>).
3. Выполните bg. Убедитесь, что снять работу комбинацией <Ctrl+C> не удется.
4. На другом виртуальном терминале снимите процесс, запущенный в п.1.
5. Дважды запустите в фоновом режиме программу такой командой
yes> /dev/null &.
6. Выполните fg, а далее остановите процесс (<Ctrl+Z>,) выполнив jobs и определите какой из двух запущенных в п. 5 процессов переведен в режим переднего плана.