Методические указания по командам управления службами и журналами

Текстовые редакторы

Чаще всего аминистратору приходится править текстовые конфигурационные файлы, для чего подойдёт множество редакторов или средств командной строки. Здесь рассматриваются два текстовых редактора: маленький и простой joe и более распространённый универсальный редактор vi.

joe

Редактор joe обладает полноценным интерфейсом к консольном режиме. Для открытия файла на редактирования можно запустить команду joe имя_файла. Текущая (3-я) версия редактора имеет уже достаточно широкие возможности – это: подсветка синтаксиса, открытие для редактирования нескольких файлов, запуск внутренние команды, использование комбинации клавиш и т.д..

Интересной особенностью редактора является возможность запуска его в одном из «стилей» интерфейсов других распространённых редакторов, таких как emacs или pico. Для запуска редактора в этом случае нужно использовать команду jmacs или jpico соответственно. Далее будет рассматриваться работа редактора в его «оригинальном» стиле интерфейса.

Рабочий экран

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

  • состояние нажатых управляющих клавиш;
  • имя редактируемого файла;
  • информация об изменениях (например, «Read Only» или «Modified»);
  • положение курсора (строка и колонка);
  • текущее время;
  • руководство к помощи.

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

Основной объём экрана занимает рабочая область редактирования текста. Курсор может перемещаться с помощью стандартных клавиш: стрелок, PgUp / PgDn и т.п..

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

Управляющие клавиши

Большинство комбинаций построено на основе сочетания клавиш Ctrl-K. Например, для закрытия файла с сохранением – Ctrl-K-X. Для отмены операций и для выхода без сохранения используется Ctrl-C.

При нажатии Ctrl-K-H можно получить справку по существующим сочетаниям клавиш и командам.

Для выделения областей используются комбинации Ctrl-K-B и Ctrl-K-K. Выделенный текст можно копировать с помощью Ctrl-K-С.

Встроенные команды

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

Для вычисления простых математических функций и выражений используется встроенный калькулятор, вызываемый по нажатию ESC-M.

Настройка

Конфигурация редактора хранится в директории /etc/joe/ и включает в себя настройки редактора, клавиш управления, подсветки синтаксиса и т.д..

Редактор joe обладает полноценным интерфейсом к консольном режиме. Для открытия файла на редактирования можно запустить команду joe имя_файла. Текущая (3-я) версия редактора имеет уже достаточно широкие возможности – это: подсветка синтаксиса, открытие для редактирования нескольких файлов, запуск внутренние команды, использование комбинации клавиш и т.д..

Интересной особенностью редактора является возможность запуска его в одном из «стилей» интерфейсов других распространённых редакторов, таких как emacs или pico. Для запуска редактора в этом случае нужно использовать команду jmacs или jpico соответственно. Далее будет рассматриваться работа редактора в его «оригинальном» стиле интерфейса.

Рабочий экран

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

  • состояние нажатых управляющих клавиш;
  • имя редактируемого файла;
  • информация об изменениях (например, «Read Only» или «Modified»);
  • положение курсора (строка и колонка);
  • текущее время;
  • руководство к помощи.

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

Основной объём экрана занимает рабочая область редактирования текста. Курсор может перемещаться с помощью стандартных клавиш: стрелок, PgUp / PgDn и т.п..

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

Управляющие клавиши

Большинство комбинаций построено на основе сочетания клавиш Ctrl-K. Например, для закрытия файла с сохранением – Ctrl-K-X. Для отмены операций и для выхода без сохранения используется Ctrl-C.

При нажатии Ctrl-K-H можно получить справку по существующим сочетаниям клавиш и командам.

Для выделения областей используются комбинации Ctrl-K-B и Ctrl-K-K. Выделенный текст можно копировать с помощью Ctrl-K-С.

Встроенные команды

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

Для вычисления простых математических функций и выражений используется встроенный калькулятор, вызываемый по нажатию ESC-M.

Настройка

Конфигурация редактора хранится в директории /etc/joe/ и включает в себя настройки редактора, клавиш управления, подсветки синтаксиса и т.д..

vi

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

Как и с другими экранными редакторами, чтобы открыть файл, достаточно набрать vi имя_файла.

Режимы работы

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

В начале работы редактор находится в командном режиме, а для перехода в режим редактирования необходимо ввести команду i (insert) или a (append) – для вставки текста перед и после курсора соответственно. Для возвращения в командный режим используется клавиша ESC.

В командном режиме все нажатия клавиш воспринимаются как команды. Длинные команды удобно набирать в командной строке – в последней строке экране, куда можно перейти при нажатии «:».

Полезные команды

Для простейшей работы с редакторомv vi достаточно знать несколько команд.

Команда :w сохраняет текущие изменения в файле, при необходимости запрашивая имя файла. С помощью команды :q можно выйти из редактора, но только если файл не был изменён – иначе, придётся добавлять к команде специальный модификатор «!»: :q! – для выхода без сохранения.

Версии редактора

Существует несколько версий редактора vi. Одним из самых распространённых является редактор vim: «усовершенствованный» vi. Возможности его очень широки и включают разнообразные режимы редактирования для разных языков, подсветку синтаксиса и т.п..

Дополнительная информация

Текстовым редакторам vi и vim посвящено множество книг и материалов в сети Internet, рекомендуется обратить внимание на книги указанные в разделе «Дополнительные материалы».

Команды по управлению системой

init

Команда init служит для переключения уровня выполнения операционной системы (см. раздел «Системы, наследующие System V»). init – первая команда, запускаемая сдром операционной системы. Пользователь имеет возможность с помощью её запуска переключать уровень выполнения без перезагрузки. Для запуска этой команды необходимы права суперпользователя.

Команда init имеет следующий вид:

init [уровень]

Параметры загрузки системы на определённых уровнях зависят от конкретной UNIX-системы, и обычно задаются в файле /etc/inittab.

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

desktop test # init 1
...

После выполнения этой команды, система переключается в первый уровень выполнения, так называемый однопользовательский режим (single user mode).

В большинстве Linux-систем чаще всего используются 1-й, 3-й и 5-й уровни выполнения. Переключение между 3-м и 5-м уровнем используется при изменениии вида входа в систему – в текстовой консоли или в графической подсистеме соответственно. Первый уровень исполнения служит для конфигурации системы в ограниченном однопользовательском режиме. Команду init можно использовать также для выключения системы или перезагрузки – переведя её в 0-й или 6-й уровень выполнения соответственно, но чаще для этого используются специальные команды (см. ниже).

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

shutdown

Команда shutdown является универсальным интерфейсом для отсановки и перезапуска операционной системы. Команда имеет следующий вид:

shutdown [-t секунды] [-k | -r | -h] [-p] время [сообщение]

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

В UNIX-системах с уровнями выполнения команда shutdown в зависимости от параметров фактически переводит систему в один из трёх уровней исполнения:

-k
Не производить переключение или перезагрузку, а только отправить сообщение пользователям системы.
-r
Перезагружает систему (переключает в 6-й уровень выполнения).
-h
Останавливает систему (переключает в 0-й уровень выполнения). Вместе с этим параметром в некоторых системах может использоваться параметр -p, который указывает операционной системе необходимость выключения питания компьютера (с использованием APM или ACPI).
без указанных параметров
Система переключается в 1-й уровень выполнения (однопользовательский режим).

Еще одним возможным параметром выполнения команды является время (-t) в секундах, которое дожно пройти в процессе выключения или переагрузки системы между отправлением процессам сигналов SIGTERM и SIGKILL.

Обязательным параметром команды shutdown является время, в которое необходимо произвести данное выключение или перезагрузку. Если необходимо произвести её в данный момент, то вместо времени можно указать слово «now». Также можно указать сообщение, которое будет отправлено всем пользователям системы – для уведомления пользователей о предстоящей перезагрузке. Если сообщение явно не указывается, система отправит всем пользователям стандартное сообщение.

Рассмотрим примеры использования программы:

desktop test # shutdown -r 22:00 "The system will be rebooted in 30 minutes!"
...

Эта команда производит перезагрузку системы в 22:00.

desktop test # shutdown -ph now
...

Эта команда выключает систему сразу после выполнения команды.

halt, poweroff, reboot

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

Команды по управлению службами

crontab

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

Команда crontab может запускаться в одном из двух вариантов:

crontab [-u пользователь] файл
crontab [-u пользователь] [-l | -r | -e]

В первом случае, можно загрузить файл с конфигурацией планировщика (например, /etc/crontab). Во втором – посмотреть или изменить план запуска для указанного пользователя.

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

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

desktop test # cat /etc/crontab
*/5 * * * *      /usr/bin/vnstat -u
58  * * * *      rdate -s ptbtime1.ptb.de
desktop test # crontab /etc/crontab
14:37:13 installing file /etc/crontab for user root
Modifications will be taken into account right now.

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

-l
посмотреть текущую конфигурацию планировщика;
-e
отредактировать текущую конфигурацию планировщика, при этом запускается системный редактор (который задаётся переменной окружения EDITOR);
-r
удалить текущую конфигурацию планировщика.

Рассмотрим примеры использования команды crontab:

Текущая конфигурация планировщика может выглядеть например так:

user@desktop test $ crontab -l
15:23:04 listing user's fcrontab
0 3 */3 * *      backup.sh

...

service

В ряде UNIX-систем для управления службами может использоваться команда service. Она принимает следующие параметры:

service служба (start|stop|restart)

Третий параметр – это команда на запуск, остановку и перезапуск службы, имя которой указывается вторым параметром. Для запуска этой команды необходимы права суперпользователя.

Пример перезапуска службы печати:

desktop test # service cups restart
Stopping cups:                                             [  OK  ]
Starting cups:                                             [  OK  ]

Обычно системные службы располагаются в директории /etc/init.d.

chkconfig

Команда chkconfig используется для изменения списка служб, соответствующих тому или иному уровню выполнения системы. Эта команда позволяет Вам указывать, какие службы следует запускать при старте системы, а какие – нет.

Команда имеет следующий синтаксис:

chkconfig (--list|--add|--del) [имя службы]
chkconfig [--level уровни] имя службы (on|off|reset)

В первом варианте использования можно посмотреть список установленных в системе служб и уровни выполнения, на которых они запускаются или останавливаются. Например:

desktop test # chkconfig --list
readahead       0:off   1:off   2:off   3:off   4:off   5:on    6:off
kudzu           0:off   1:off   2:on    3:on    4:on    5:on    6:off
lisa            0:off   1:off   2:off   3:off   4:off   5:off   6:off
portmap         0:off   1:off   2:off   3:off   4:off   5:off   6:off
...

Для каждой из служб всем уровням выполнения соответствует слово «on» или «off», означающее соответственно запуск и освтанов службы на данном уровне выполнения. В этом примере служба «lisa» не будет запущена ни на одном из уровней выполнения.

С помощью параметров --add и --del можно добавлять и удалять службы из системной загрузки.

desktop test # chkconfig --list | grep autofs
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
desktop test # chkconfig --del autofs
desktop test # chkconfig --list | grep autofs
desktop test # chkconfig --add autofs
desktop test # chkconfig --list | grep autofs
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off

В этом примере служба autofs последовательно удаляется из загрузки и добавлется обратно.

Второй вариант команды используется для настройки запуска службы на различных уровнях выполнения. К примеру, эта команда устанавливает запуск службы только на 3-м и 5-м уровнях выполнения:

desktop test # chkconfig --list | grep autofs
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
desktop test # chkconfig --level 35 autofs on
desktop test # chkconfig --level 4 autofs off
desktop test # chkconfig --list | grep autofs
autofs          0:off   1:off   2:off   3:on    4:off   5:on    6:off

Команды по мониторингу пользователей

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

last

Команда last отображает список пользователей, вошедших в систему, отсортированный по времени. Команда имеет ряд параметров, среди которых:

-n число
число последних входов в систему, которые команда должна вывести на экран;
-t ГГГГММДДЧЧММСС
дата и время, для которых необходимо показать информацию о входе в систему;
имя пользователя
отображать только сеансы указанного пользователя.

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

user@desktop $ last -n 7
user     pts/1        :0.0             Wed Oct 11 15:21   still logged in
user     pts/1        :0.0             Wed Oct 11 14:34 - 14:52  (00:17)
user     pts/1        :0.0             Wed Oct 11 12:33 - 13:30  (00:56)
user     pts/1        :0.0             Wed Oct 11 12:04 - 12:31  (00:27)
user     pts/1        :0.0             Wed Oct 11 11:26 - 11:27  (00:00)
user     :0                            Wed Oct 11 11:20   still logged in
reboot   system boot  2.6.9-42.0.2.EL  Wed Oct 11 11:19          (05:50)

wtmp begins Mon Oct  2 17:57:35 2006

Особый интерес представляет псевдопользователь «reboot», который соответствует системным перезагрузкам.

Этот пример показывает выборку по указанному времени:

user@desktop $ last -t 20061003100000
dralex   pts/1        :0.0             Mon Oct  2 18:04 - down   (00:25)
dralex   pts/1        :0.0             Mon Oct  2 17:57 - 18:00  (00:02)

wtmp begins Mon Oct  2 17:57:35 2006

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

Можно запросить информацию о каком-то отдельном пользователе:

user@desktop $ last reboot
reboot   system boot  2.6.9-42.0.2.EL  Wed Oct 11 11:19          (06:03)
reboot   system boot  2.6.9-42.0.2.EL  Tue Oct 10 23:59          (02:22)
reboot   system boot  2.6.9-42.0.2.EL  Tue Oct 10 10:53          (05:46)
...

lastlog

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

desktop # lastlog
Username         Port     From             Latest
root             tty1                      Tue Sep 12 23:42:13 +0400 2006
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
...
pegasus                                    **Never logged in**
user            :0                        Wed Oct 11 11:20:18 +0400 2006

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

Для того, чтобы получить информацию об отдельно взятом пользователе, можно использовать параметр -u:

desktop # lastlog -u root
Username         Port     From             Latest
root             tty1                      Tue Sep 12 23:42:13 +0400 2006

faillog

Команда faillog показывает время последней неудачной попытки входа в систему. По параметрам она аналогична команде lastlog.

desktop # faillog
Login       Failures Maximum Latest                   On
root            2        0   07/06/06 13:28:19 +0400

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

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

Резюме

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

Ключевые термины: joe, vi, init, shutdown, halt, poweroff, reboot, crontab, service, chkconfig, last, lastlog, faillog

Дополнительные материалы

  1. Курячий Г.В. Операционная система UNIX. – М.:Интуит.Ру, 2004. – 292 с.: ил.