УПРАВЛЕНИЕ ПРОЦЕССАМИ В ОС 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

Ход работы: