УПРАВЛЕНИЕ ПРОЦЕССАМИ В ОС LINUX
ЛАБОРАТОРНАЯ РАБОТА №3
ТЕРМИНАЛ И КОМАНДНАЯ ОБОЛОЧКА ОС LINUX
УПРАВЛЕНИЕ ПРОЦЕССАМИ В ОС LINUX
Цель работы:приобрести опыт работы с командной строкой ОС Linux, изучить основные команды; ознакомиться на практике с понятием процесса в ОС Linux; приобрести практические навыки управления процессами в ОС Linux Ubuntu.
Оборудование:
Аппаратная часть: персональный компьютер с правами администратора.
Программная часть: программаVirtualBox, виртуальная машина с установленной ОС Linux Ubuntu,текстовый процессорMicrosoftWord.
Краткие теоретические сведения:
Стандартные команды в Linux отличаются от команд DOS и Windows, обычно они короче. При работе с командной строкой мигающий курсор обозначает позицию ввода текста, командная строка начинается с текущего пути и имени компьютера, за которым следует символ $, % или #. Последний означает, что команды будут выполняться от имени суперпользователя root. Символ ~ означает путь к текущей домашней директории пользователя.
Большинство команд в Linux, не требующих вывода информации пользователю, в случае успешного завершения вообще ничего не выводят на экран. Выводятся только ошибки и предупреждения в случае нарушения нормального выполнения команды. То есть в Linux действует общий принцип «молчит, значит работает».
В любом терминале Linux стрелками вверх/вниз на клавиатуре можно листать историю команд, которая сохраняется между сеансами работы и различается для разных пользователей и хостов. Набранная частично команда или имя файла или каталога в текущей директории может быть автоматически дописано клавишей TAB. Если найдено более одного варианта и однозначно продолжить команду по TAB невозможно, то выводятся все подходящие варианты.
При работе в графической среде удобны эмуляторы терминала. Как правило они поддерживают закладки – несколько терминалов в одном окне, поддерживают цветовые схемы. Наиболее распространены эмуляторы терминала Gnome Terminal, Konsole, XFCE Terminal.
Терминал – эмулятор консоли. Именно в терминале мы будем работать с CLI (интерфейсом командной строки). Терминал часто также называют консолью или шеллом (от англ. shell – оболочка).
Многие пользователи и в особенности администраторы серверов под Linux в работе используют именно консоль, а не графическую оболочку. Это связано с тем, что настройка и конфигурация Linux в основном заключается в редактировании текстовых конфигурационных файлов. Даже если вы являетесь простым пользователем ОС Linux, большинство инструкций по настройке написаны с использованием консоли и знать основные команды жизненно необходимо.
Стоит обратить внимание на системные каталоги ОС, в которых находятся файлы, необходимые для управления и сопровождения системы, а также стандартные программы. Их имена, расположение и содержание почти одинаковы почти во всех ОС Linux, поэтому эти каталоги называют также стандартными.
Краткое описание основных каталогов ОС Linux сведено в таблицу 1.
Таблица 1 – Назначение основных каталогов ОС Linux
Каталог | Назначение |
/bin | Основные программы, необходимые для работы в системе: командные оболочки, файловые утилиты и т.п. |
/sbin | Команды для системного администрирования, а также программы, выполняемые в ходе загрузки |
/boot | Файлы, необходимые для загрузки системы (образ ядра) |
/home | Домашние каталоги пользователей, кроме root |
/dev | Файлы устройств |
/etc | Файлы настроек: стартовые сценарии, конфигурационные файлы графической системы и различных приложений |
/lib | Системные библиотеки, необходимые для основных программ, и модули ядра |
/lost+found | Восстановленные после аварийного размонтирования части файловой системы |
/media | Сюда обычно монтируются съемные носители: компакт-диски, flash-накопители |
/mnt | Временные точки монтирования жестких дисков. Использовать этот каталог необязательно, подмонтировать файловую систему можно к любому другому каталогу |
/opt | Дополнительные пакеты программ. Если программа, установленная сюда, больше не нужна, то достаточно удалить ее каталог без обычной процедуры деинсталляции |
/proc | Виртуальная файловая система, дающая доступ к информации ядра (например, выведите на экран файл /proc/cpuinfo). Другие файлы в этом каталоге в каждый момент времени содержат информацию о выполняющихся в этот момент программах |
/root | Домашний каталог суперпользователя. Домашние каталоги всех остальных могут находиться на отдельном разделе, но /root должен быть в корневой файловой системе, чтобы администратор всегда мог войти в систему для ремонтных работ |
/tmp | Временные файлы |
/var | Часто меняющиеся данные: системные журналы и протоколы приложений, замки, почтовые ящики, очереди печати и т.п. |
/usr | Практически все остальное: программы, исходные коды, документация. Сюда по умолчанию устанавливаются новые программы |
С точки зрения UNIX-подобных ОС, файл представляет собой поток или последовательность байтов. Такой подход позволяет распространить понятие файла на множество ресурсов не только локального компьютера, но и удаленного, связанного с локальной сетью любого рода. Доступ к любому такому ресурсу осуществляется через универсальный интерфейс, благодаря чему запись данных в файл отправка их на физическое устройство или обмен ими с другой работающей программой происходит аналогично. Это очень упрощает организацию данных и обмен ими.
В ОС Linux можно выделить следующие типы файлов:
- обычные файлы – последовательность байтов (текстовые документы, исполняемые программы, библиотеки и т.п.);
- каталоги – именованные наборы ссылок на другие файлы;
- файлы физических устройств, подразделяющихся на:
а) файлы блочных устройств;
б) символические ссылки (symlink, symbolic link);
в) именованные каналы (named pipes);
г) гнезда (sockets).
С точки зрения ядра ОС Linux процесс представляет собой запись в таблице процессов. Эта запись содержит сведения о состоянии процесса и данные, существующие в течение всего времени его жизни. Размер таблицы процессов позволяет запускать несколько сотен процессов одновременно. Запись в таблице процессов и пространство процесса вместе составляют контекст, или окружение, процесса. В него входят:
- PID – идентификатор процесса. Он принудительно назначается планировщиком при запуске процесса.
- PPID – идентификатор родительского процесса.
- TTY – имя управляющего терминала – терминала, с которого запущен процесс.
- WD – текущий каталог процесса, от которого отсчитываются относительные пути.
- RID, RGID – реальные ID и групповой ID пользователя, запустившего процесс.
- EUID, EGID – эффективные ID и GID.
- NICE – показатель уступчивости. Процессы выполняются в режиме разделения времени, то есть время центрального процессора делится между готовыми к выполнению процессами с учетом их приоритета. Чем выше показатель уступчивости, тем ниже приоритет.
- Переменные окружения.
Запустить сценарий на исполнение можно командой: sh имя_сценария
Для того чтобы запустить процесс сценария параллельно, достаточно добавить в конец командной строки символ "&": sh имя_сценария&
Процесс, запускаемый параллельно, называется фоновым. Фоновый процесс – процесс, не имеющий возможности вводить данные с терминала. Пользователь может запустить любое, но не превосходящее заранее заданного в системе, число фоновых процессов.
Активный процесс – процесс, имеющий возможность вводить данные с терминала. В каждый момент у каждого терминала может быть не более одного активного процесса.
Моментальный снимок протекающих в системе процессов можно посмотреть с помощью команды ps. Список возможных ключей команды можно получить по команде ps --help.
Представление о динамике процессов дает команда top. Она выводит список процессов, отсортированный по количеству занятой памяти или использованного процессорного времени, и обновляет его через указанные промежутки времени.
Последний процесс, запущенный из оболочки в фоне, можно из этой оболочки сделать активным при помощи команды fg
Команда bg запускает в фоне последний остановленный процесс.
Командой kill можно передать процессу сигнал. Команда имеет два параметра – номер сигнала и идентификатор процесса, которому передается сигнал:
kill -номер_сигнала PID
Ход работы: