Примеры использования большинства этих команд вы найдете в сценариях начальной загрузки и остановки системы, в каталогах /etc/rc.d. Они, обычно, вызываются пользователем root и используются для администрирования системы или восстановления файловой системы. Эти команды должны использоваться с большой осторожностью, так как некоторые из них могут разрушить систему, при неправильном использовании.
Выведет список всех зарегистрировавшихся пользователей. Она, до некоторой степени, является эквивалентом команды who -q.
Выводит список групп, в состав которых входит текущий пользователь. Эта команда соответствует внутренней переменной $GROUPS, но выводит названия групп, а не их числовые идентификаторы.
Команда chown изменяет владельца файла или файлов. Эта команда полезна в случаях, когда root хочет передать монопольное право на файл от одного пользователя другому. Обычный пользователь не в состоянии изменить владельца файла, за исключением своих собственных файлов.
Команда chgrp изменяет группу, которой принадлежит файл или файлы. Чтобы изменить группу, вы должны быть владельцем файла (при этом должны входить в состав указываемой группы) или привилегированным пользователем (root).
Команда useradd добавляет учетную запись нового пользователя в систему и создает домашний каталог для данного пользователя. Противоположная, по смыслу, команда userdel удаляет учетную запись пользователя из системы. [38] и удалит соответствующие файлы.
![]() |
Команда adduser является синонимом для useradd и, как правило, является обычной символической ссылкой на useradd. |
Модификация (изменение) характеристик пользовательского аккаунта. Может изменить пароль пользователя, членство в группах срок действия аккаунта и другие характеристики. С помощью этой команды можно заблокировать пользовательский пароль, что равносильно блокировке аккаунта.
Модификация (изменение) характеристик группы. С помощью этой команды можно изменить имя группы и/или ID группы.
Команда id выводит идентификатор пользователя (реальный и эффективный) и идентификаторы групп, в состав которых входит пользователь. По сути — выводит содержимое переменных $UID, $EUID и $GROUPS.
![]() |
Команда id выводит эффективный иднетификатор только тогда, когда он отличается от реального. |
См. также Пример 9-5.
Выводит список пользователей, работающих в настоящий момент в системе.
С ключом -m — выводит информацию только о текущем пользователе. Если число аргументов, передаваемых команде, равно двум, то это эквивалентно вызову who -m, например who am i или who The Man.
whoami — похожа на who -m, но выводит только имя пользователя.
Выводит информацию о системе, список пользователей, подключенных к системе и процессы, связанные с пользователями. Это расширенная версия команды who. Вывод от команды w может быть передан по конвейеру команде grep, с целью поиска требуемого пользователя и/или процесса.
Выводит имя текущего пользователя (из файла /var/run/utmp). Это довольно близкий эквивалент команды whoami.
![]() |
Команда logname выводит имя пользователя, зарегистрировавшегося в системе (залогировавшегося), в то время как whoami — дает имя пользователя, под которым исполняется текущий процесс. Как я уже упоминал — это не всегда одно и то же. |
Однако...
Команда предназначена для запуска программы или сценария от имени другого пользователя. su rjones — запускает командную оболочку от имени пользователя rjones. Запуск команды su без параметров означает запуск командной оболочки от имени привилегированного пользователя root. См. Пример A-17.
Исполняет заданную команду от имени пользователя root (или другого пользователя).
Имена пользователей, которым разрешено использовать команду sudo, хранятся в файле /etc/sudoers.
Устанавливает или изменяет пароль пользователя.
Команда passwd может использоваться в сценариях, но это плохая практика.
Пример 13-1. Установка нового пароля
Команда passwd с ключами -l, -u и -d выполняет блокировку, разблокировку и удаление пароля пользователя. Только root может вызывать команду passwd с этими ключами.
Выводит время работы пользователей, основываясь на записях в файле /var/log/wtmp. Это одна из утилит пакета GNU acct.
Выводит информацию о последних входах/выходах пользователей в ситему, основываясь на записях в файле /var/log/wtmp. Эта команда может отображать информацию об удаленных (в смысле — с удаленного терминала) соединениях.
Позволяет сменить активную группу пользователя. Пользователь остается в системе и текущий каталог не изменяется, но права доступа к файлам вычисляются в соответствии с новыми реальным и эффективным идентификаторами группы. Эта команда используется довольно редко, так как пользователь, обычно, является членом нескольких групп.
Выводит имя терминала текущего пользователя. Обратите внимание: каждое отдельное окно xterm считается отдельным терминалом.
Выводит и/или изменяет настройки терминала. Эта сложная команда используется в сценариях для управления поведением терминала.
Пример 13-2. Установка символа "забоя"
Пример 13-3. невидимый пароль: Отключение эхо-вывода на терминал
Пример 13-4. Перехват нажатия на клавиши с помощью stty.
См. также Пример 9-3.
Выводит или изменяет настройки терминала. Это более слабая версия stty.
Настройка параметров последовательного порта. Эта команда должна запускаться пользователем, обладающим привилегиями root. Эту команду можно встретить в сценариях настройки системы.
Программа getty или agetty запускается процессом init и обслуживает процедуру входа пользователя в систему. Эти команды не используются в сценариях.
Разрешает или запрещает доступ к терминалу текущего пользователя командой write.
![]() |
Наверное это очень неприятно, когда, во время работы над текстовым файлом, в окне терминала, прямо среди текста, вдруг появляется предложение заказать пиццу. Поэтому, при работе в многопользовательской системе, вам наверняка захочется отключить доступ к своему терминалу. |
Имя этой команды — аббревиатура от "write all", т.е., передать сообщение всем пользователям на все терминалы в сети. Это, в первую очередь, инструмет администратора, который можно использовать, например, для оповещения всех пользователей о предстоящей, в ближайшее время, перезагрузке системы (см. Пример 17-2).
![]() |
Если доступ к терминалу был закрыт командой mesg, то сообщение на этом терминале выводиться не будет. |
Выводит все сообщения, выдаваемые системой во время загрузки на stdout. Очень полезная утилита для отладочных целей. Вывод dmesg может анализироваться с помощью grep, sed или awk внутри сценария.
Информационные и статистические утилиты
Выводит на stdout имя системы. С ключом -a, выводит подробную информацию, содержащую имя системы, имя узла (то есть имя, под которым система известна в сети), версию операционной системы, наименование модификации операционной системы, аппаратную архитектуру (см. Пример 12-5).
Выводит тип аппаратной платформы компьютерв. Эквивалентна команде uname -m. См. Пример 10-26.
Выводит информацию, о ранее выполненных командах, из файла /var/account/pacct. Дополнительно могут указываться команда и пользователь. Это одна из утилит пакета GNU acct.
Выводит список всех пользователей, с указанием времени последнего входа в систему. Данные берутся из файла /var/log/lastlog.
![]() |
Исполнение этой команды будет завершаться неудачей, если пользователь, вызвавший утилиту, не имеет прав на чтение файла /var/log/lastlog. |
Выводит детальный список открытых, в настоящий момент времени, файлов в виде таблицы. В таблице указаны — владелец файла, размер файла, тип файла, процесс, открывший файл, и многое другое. Само собой разумеется, что вывод команды lsof может быть обработан, в конвейере, с помощью утилит grep и/или awk.
Диагностическая и отладочная утилита, предназначенная для трассировки системных вызовов и сигналов. В простейшем случае, запускается как: strace COMMAND.
Эквивалентна команде truss.
Сканер сетевых портов. Эта утилита сканирует сервер в поисках открытых портов и сервисов. Это очень важный инструмент, используемый для поиска уязвимостей при настройке системы.
Показывает информацию об использовании памяти, в табличной форме. Вывод команды может быть проанализирован с помощью grep, awk или Perl. Команда procinfo тоже выводит эту информацию, среди всего прочего.
Показать размер неиспользуемой памяти RAM:
Извлекает и выводит информацию из файловой системы /proc.
Список аппаратных устройств в системе.
Выводит сведения о занимаемом дисковом пространстве в каталоге и вложенных подкаталогах. Если каталог не указан, то по-умолчанию выводятся сведения о текущем каталоге.
Выводит в табличной форме сведения о смонтированных файловых системах.
Дает подробную информацию о заданном файле (каталоге или файле устройства) или наборе файлов.
Если заданный файл отсутствует, то stat вернет сообщение об ошибке.
Выводит информацию о виртуальной памяти.
Показывает сведения о сетевой подсистеме, такие как: таблицы маршрутизации и активные соединения. Эта утилита получает сведения из /proc/net (Глава 27). См. Пример 27-3.
netstat -r — эквивалентна команде route.
Показывает количество времени, прошедшего с момента последней перезагрузки системы.
Выводит имя узла (сетевое имя системы). С помощью этой команды устанавливается сетевое имя системы в сценарии /etc/rc.d/rc.sysinit. Эквивалентна команде uname -n и внутренней переменной $HOSTNAME.
Выводит 32-битный шестнадцатиричный идентификатор системы.
![]() |
Эта команда генерирует "уникальный" числовой идентификатор системы. Некоторые программные продукты используют этот идентификатор в процедуре регистрации. К сожалению, при генерации идентификатора, hostid использует только IP адрес системы, переводя его в шестнадцатиричное представление и переставляя местами пары байт. Обычно, IP адрес системы можно найти в файле /etc/hosts.
Переставив местами байты, попарно, в начальном адресе 127.0.0.1, мы получим 0.127.1.0, в шестнадцатиричном представлении это будет 007f0100, что в точности совпадает с приведенным выше результатом выполнения hostid. Наверняка можно найти несколько миллионов компьютеров с таким же "уникальным" идентификатором. |
Команда sar (System Activity Reporter) выводит очень подробную статистику о функционировании операционной системы. В июне 1999 года, компания Santa Cruz Operation (SCO) опубликовала исходные тексты утилиты. Она, как правило, не входит в базовый комплект пакетов Linux-систем. Но ее можно получить в составе пакета sysstat utilities, автор: Sebastien Godard.
Показывает сведения о заданном бинарном файле формата elf. Входит в состав пакета binutils.
Команда size [/path/to/binary] выведет информацию о размерах различных сегментов в исполняемых или библиотечных файлах. В основном используется программистами.
Добавляет в системный журнал (/var/log/messages) сообщение от пользователя. Для добавления сообщения пользователь не должен обладать привилегиями суперпользователя.
Встраивая вызов logger в сценарии, вы получаете возможность заносить отладочную информацию в системный журнал /var/log/messages.
Эта утилита производит манипуляции над системным журналом: ротация, сжатие, удаление и/или отправляет его по электронной почте, по мере необходимости. Как правило, утилита logrotate вызывается демоном cron ежедневно.
Добавляя соответствующие строки в /etc/logrotate.conf, можно заставить logrotate обрабатывать не только системный журнал, но и ваш личный.
Process Statistics: Список исполняющихся в данный момент процессов. Обычно вызывается с ключами ax, вывод команды может быть обработан командами grep или sed, с целью поиска требуемого процесса (см. Пример 11-11 и Пример 27-2).
Список исполняющихся процессов в виде "дерева". С ключом -p — вместе с именами процессов отображает их PID.
Выводит список наиболее активных процессов. С ключом -b — отображение ведется в обычном текстовом режиме, что дает возможность анализа вывода от команды внутри сценария.
Запускает фоновый процесс с заданным приоритетом. Приоритеты могут задаваться числом из диапазона от 19 (низший приоритет) до -20 (высший приоритет). Но только root может указать значение приоритета меньше нуля (отрицательные значения). См. так же команды renice, snice и skill.
Запуск команд в режиме игнорирования сигналов прерывания и завершения, что предотвращает завершение работы команды даже если пользователь, запустивший ее, вышел из системы. Если после команды не указан символ &, то она будет исполняться как процесс "переднего плана". Если вы собираетесь использовать nohup в сценариях, то вам потребуется использовать его в связке с командой wait, чтобы не породить процесс "зомби".
Возвращает идентификатор процесса (pid) по его имени. Поскольку многие команды управления процессами, такие как kill и renice, требуют указать pid процесса, а не его имя, то pidof может сослужить неплохую службу при идентификации процесса по его имени. Эта коменда может рассматриваться как приблизительный эквивалент внутренней переменной $PPID.
Пример 13-5. Использование команды pidof при остановке процесса
Возвращает идентификаторы процессов, использующих указанный файл(ы) или каталог. С ключом -k, завершает найденые процессы. Может с успехом использоваться для защиты системы, особенно в сценариях разграничения доступа к системным службам.
Планировщик заданий. С его помощью выполняются такие задачи, как очистка и удаление устаревших файлов системных журналов, обновление базы данных slocate. Это суперпользовательская версия команды at (хотя любой пользователь может создать собственную таблицу crontab). Эта утилита запускается как фоновый процесс-daemon и выполняет задания, находящиеся в файле /etc/crontab.
![]() |
В некоторых дистрибутивах Linux, в качестве crond используется версия cron от Matthew Dillon. |
Команды управления процессами и загрузкой
init — предок (родитель) всех процессов в системе. Вызывается на последнем этапе загрузки системы и определяет уровень загрузки (runlevel) из файла /etc/inittab.
Символическая ссылка на init — инструмент для смены уровня загрузки (runlevel), как правило используется при обслуживании системы или восстановлении файловой системы. Может быть вызвана только суперпользователем. Эта команда может быть очень опасна, при неумелом обращении — прежде чем использовать ее, убедитесь в том, что вы совершенно точно понимаете что делаете!
Выводит предыдущий и текущий уровни загрузки (runlevel). Уровень загрузки может иметь одно из 6 значений: 0 — остановка системы, 1 — однопользовательский режим, 2 или 3 — многопользовательский режим, 5 — многопользовательский режим и запуск X Window, 6 — перезагрузка. Уровни загрузки определяются из файла /var/run/utmp.
Набор команд для остановки системы, обычно перед выключением питания.
Утилита конфигурирования и запуска сетевых интерфейсов. Чаще всего используется в сценариях начальной загрузки системы, для настройки и запуска сетевых интерфейсов или для их остановки перед остановкой или перезагрузкой.
Эта команда используется для настройки беспроводной (wireless) сети. Представляет собой эквивалент команды ifconfig, описанной выше.
Выводит сведения о таблице маршрутизации ядра или вносит туда изменения.
Проверка сетевой конфигурации. Обслуживает список, запускаемых на этапе загрузки, сетевых сервисов, список сервисов хранится в каталогах /etc/rc?.d (строго говоря, chkconfig работает не только с сетевыми сервисами, а с сервисами вообще, не зависимо от того сетевые это службы или нет. прим. перев.).
Изначально эта утилита была перенесена в Red Hat Linux из ОС IRIX, chkconfig входит в состав далеко не всех дистрибутивов Linux.
"Сниффер" ("sniffer") сетевых пакетов. Инструмент для перехвата и анализа сетевого трафика по определенным критериям.
Дамп трафика ip-пакетов между двумя узлами сети — bozoville и caduceus:
Конечно же, вывод команды tcpdump может быть проанализирован с помощью команд обработки текста, обсуждавшихся выше.
Команды для работы с файловыми системами
Выполняет монтирование файловой системы, обычно на устройстве со сменными носителями, такими как дискеты или CDROM. Файл /etc/fstab содержит перечень доступных для монтирования файловых систем, разделов и устройств, включая опции монтирования, благодаря этому файлу, монтирование может производиться автоматически или вручеую. Файл /etc/mtab содержит список смонтированных файловых систем и разделов (включая виртуальные, такие как /proc).
mount -a — монтирует все (all) файловые системы и разделы, перечисленные в /etc/fstab, за исключением тех, которые имеют флаг noauto. Эту команду можно встретить в сценариях начальной загрузки системы из /etc/rc.d (rc.sysinit или нечто похожее).
Эта команда может даже смонтировать обычный файл как блочное устройство. Достигается это за счет связывания файла с loopback-устройством. Эту возможность можно использовать для проверки ISO9660 образа компакт-диска перед его записью на болванку. [39]
Пример 13-6. Проверка образа CD
Отмонтирует смонтированную файловую систему. Перед тем как физически вынуть компакт-диск или дискету из устройства, это устройство должно быть отмонтировано командой umount, иначе файловая система может оказаться поврежденной (особенно это относится к накопителям на гибких магнитных дисках, прим. перев.).
![]() |
Утилита automount, если она установлена, может выполнять атоматическое монтирование/размонтирование устройств со сменными носителями, такие как дискеты и компакт-диски. На ноутбуках со сменными устройствами FDD и CDROM, такой подход может привести к возникновению определенных проблем. |
Принудительный сброс содержимого буферов на жесткий диск (синхронизация содержимого буферов ввода-вывода и устройства-носителя). Несмотря на то, что нет такой уж острой необходимости в этой утилите, тем не менее sync придает уверенности системным администраторам или пользователям в том, что их данные будут сохранены на жестком диске, и не будут потеряны в случае какого-либо сбоя. В былые дни, команда sync; sync (дважды — для абсолютной уверенности) была упреждающей мерой перед перезагрузкой системы.
Иногда возникает необходимость принудительной синхронизации буферов ввода-вывода с содержимым на магнитном носителе, как, например, при надежном удалении файла (см. Пример 12-45) или когда наблюдаются скачки напряжения в сети электроснабжения.
Устанавливает и конфигурирует loopback-устройства.
Пример 13-7. Создание файловой системы в обычном файле
Создание swap-раздела или swap-файла. Созданный swap-раздел (файл) нужно затем подключить командой swapon.
Разрешает/запрещает использование swap-раздела (файла). Эта команда обычно используется во время загрузки системы или во время остановки.
Создает файловую систему ext2. Должна вызываться с правами суперпользователя.
Пример 13-8. Добавление нового жесткого диска
См. также Пример 13-7 и Пример 28-3.
Настройка отдельных параметров файловой системы ext2, например счетчик максимального количества монтирований без проверки. Должна вызываться с привилегиями пользователя root.
![]() |
Очень опасная утилита. Вы можете использовать ее только на свой страх и риск, поскольку, по неосторожности, вы запросто можете разрушить файловую систему. |
Выводит на stdout очень подробную информацию о файловой системе. Должна вызываться с привилегиями пользователя root.
Выводит или изменяет параметры настройки жесткого диска. Должна вызываться с привилегиями пользователя root. Потенциально опасна при неправильном использовании.
Создание или изменение таблицы разделов на устройствах хранения информации, обычно — жестких дисках. Должна вызываться с привилегиями пользователя root.
![]() |
Пользуйтесь этой утилитой с особой осторожностью, т.к. при неправильном использовании можно легко разрушить существующую файловую систему. |
Набор команд для проверки, восстановления и отладки файловой системы.
fsck: интерфейсная утилита для проверки файловых систем в Unix (может вызывать другие утилиты проверки).
e2fsck: проверка файловой системы ext2.
debugfs: отладчик файловой системы ext2. Одно из применений этой универсальной (и опасной) утилиты — это восстановление удаленных файлов. Только для опытных пользователей!
![]() |
Все эти утилиты должны вызываться с привилегиями пользователя root. При неправильном использовании, любая из них может разрушить файловую систему. |
Выполняет поиск плохих блоков (физические повреждения носителей) на устройствах хранения информации. Эта команда может использоваться для поиска плохих блоков при форматировании вновь устанавливаемых жестких дисков или для проверки устройств резервного копирования. [40] Например, badblocks /dev/fd0, проверит дискету на наличие поврежденных блоков.
Утилита badblocks может быть вызвана в деструктивном (проверка осуществляется путем записи некоторого шаблона в каждый блок, а затем производится попытка чтения этого блока) или в недеструктивном (неразрушающем — только чтение) режиме.
Команда lsusb выводит сведения о имеющихся в системе шинах USB (Universal Serial Bus) и подключенных к ним устройствах.
Команда usbmodules выводит информацию о модулях драйверов присоединенных USB-устройств.
Создание загрузочной дискеты, которая может быть использована для загрузки системы, если, например, была повреждена MBR (master boot record — главная загрузочная запись). Команда mkbootdisk — это сценарий на языке командной оболочки Bash, автор: Erik Troan, располагается в каталоге /sbin.
CHange ROOT — смена корневого каталога. Обычно, команды и утилиты ориентируются в файловой системе посредством переменной $PATH, относительно корневого каталога /. Команда chroot изменяет корневой каталог по-умолчанию на другой (рабочий каталог также изменяется). Эта утилита, как правило, используется с целью защиты системы, например, с ее помощью можно ограничить доступ к разделам файловой системы для пользователей, подключающихся к системе с помощью telnet (это называется — "поместить пользователя в chroot окружение"). Обратите внимание: после выполнения команды chroot изменяется путь к исполняемым файлам системы.
Команда chroot /opt приведет к тому, что все обращения к каталогу /usr/bin будут переводиться на каталог /opt/usr/bin. Аналогично, chroot /aaa/bbb /bin/ls будет пытаться вызвать команду ls из каталога /aaa/bbb/bin, при этом, корневым каталогом для ls станет каталог /aaa/bbb. Поместив строчку alias XX 'chroot /aaa/bbb ls' в пользовательский ~/.bashrc, можно эффективно ограничить доступ команде "XX", запускаемой пользователем, к разделам файловой системы.
![]() |
При изменении корневого каталога, вам наверняка потребуется скопировать системные утилиты и разделяемые библиотеки в новый корневой каталог, поскольку после смены корневого каталога, директории с системными утилитами могут оказаться за пределами нового корневого каталога. |
Эта утилита входит в состав пакета procmail (www.procmail.org). Она создает lock file, файл-семафор (или, если угодно, файл блокировки), который управляет доступом к заданному файлу, устройству или ресурсу. Lock file служит признаком того, что данный файл, устройство или ресурс "занят" некоторым процессом, и ограничивает (или вообще запрещает) доступ к ресурсу другим процессам.
Файлы блокировок широко применяются для защиты системных почтовых каталогов от одновременной записи несколькими пользователями, для индикации занятости порта модема, и т.п. Сценарии могут использовать файлы блокировок для того, чтобы выяснить — запущен ли тот или иной процесс. Обратите внимание: если в сценарии будет предпринята попытка создать файл блокировки, когда он уже существует, то такой сценарий скорее всего зависнет.
Как правило, файлы блокировки создаются в каталоге /var/lock. Проверка наличия файла блокировки может быть проверена примерно таким образом:.
Создает специальный файл для блочного или символьного устройства (может потребоваться при установке новых устройств в компьютер). В системе имеется более удобная в обращении утилита MAKEDEV, которая обладает всей функциональностью команды mknod.
Автоматически удаляет файлы, к которым не было обращений в течение заданного периода времени. Обычно вызывается демоном cron для удаления устаревших файлов системного журнала.
Утилита предназначена для создания файлов-устройств. Должна запускаться с привилегиями пользователя root, в каталоге /dev.
Команды резервного копирования
Команда dump создает резервные копии целых файловых систем, обычно используется в крупных системах и сетях. [41] Она считывает дисковые разделы и сохраняет их в файле, в двоичном формате. Созданные таким образом файлы, могут быть сохранены на каком-либо носителе — на жестком диске или магнитной ленте. Команда restore — "разворачивает" файлы, созданные утилитой dump.
Выполняет низкоуровневое форматирование дискет.
Команды управления системными ресурсами
Устанавливает верхний предел для системных ресурсов. Как правило вызывается с ключом -f, что означает наложение ограничений на размер файлов (ulimit -f 1000 ограничит размер вновь создаваемых файлов одним мегабайтом). Ключ -c ограничивает размер файлов coredump (ulimit -c 0 запретит создание coredump-файлов). Обычно, все ограничения прописываются в файле /etc/profile и/или ~/.bash_profile (см. Глава 26).
![]() |
Грамотное использование ulimit поможет избежать нападений, целью которых является исчерпание системных ресурсов, известных под названием fork bomb.
Команда ulimit -Hu XX (где XX — это верхний предел количества процессов, которые может запустить пользователь одновременно) в /etc/profile вызовет аварийное завершение этого сценария, когда количество процессов превысит установленный предел. |
Команда управления дисковыми квотами для пользователей и групп.
Установка маски режима создания файлов. Накладывает ограничения на атрибуты по-умлчанию для создаваемых файлов. Маска представляет собой восьмеричное значение и определяет запрещенные атрибуты файла. Например, umask 022 удаляет права на запись для группы и прочих пользователей (у файлов, создававшихся с режимом 777, он оказывается равным 755; а режим 666 преобразуется в 644, т.е. 777 NAND 022 = 755, 666 NAND 022 = 644). [42] Конечно же, впоследствие, пользователь может откорректировать права доступа к своему файлу с помощью команды chmod. Как правило, значение umask устанавливается в файле /etc/profile и/или ~/.bash_profile (см. Глава 26).
Выводит или изменяет корневое устройство, размер RAM-диска или видео режим. Функциональные возможности утилиты rdev вообще повторяются загрузчиком lilo, но rdev по прежнему остается востребованной, например, при установке электронного диска (RAM-диск). Это потенциально опасная, при неумелом использовании, утилита.
Команды для работы с модулями ядра
Выводит список загруженных модулей.
![]() |
Команда cat /proc/modules выведет на экран эту же информацию. |
Принудительная загрузка модуля ядра (старайтесь вместо insmod использовать команду modprobe). Должна вызываться с привилегиями пользователя root.
Выгружает модуль ядра. Должна вызываться с привилегиями пользователя root.
Загрузчик модулей, который обычно вызывается из сценариев начальной загрузки системы. Должна вызываться с привилегиями пользователя root.
Создает файл зависимостей между модулями, обычно вызывается из сценариев начальной загрузки системы.
Выводит сведения о загруженных модулях ядра.
Запускает указанную программу или сценарий с модифицированными переменными окружения (не изменяя среду системы в целом, изменения касаются только окружения запускаемой программы/сценария). Посредством [varname=xxx], устанавливает значение переменной окружения varname, которая будет доступна из запускаемой программы/сценария. Без параметров — просто выводит список переменных окружения с их значениями.
![]() |
В Bash, и других производных от Bourne shell, имеется возможность установки переменных окружения и запуска программы (или сценария) одной командной строкой.
|
![]() |
В первой строке сценария ("sha-bang") можно указать команду env, если путь к командному интерпретатору не известен.
|
Выводит список разделяемых библиотек, необходимых для исполняемого файла.
Периодически запускает указанную программу с заданным интервалом времени.
По-умолчанию интервал между запусками принимается равным 2 секундам, но может быть изменен ключом -n.
Удаляет отладочную информацию из исполняемого файла. Это значительно уменьщает размер исполняемого файла, но при этом делает отладку программы невозможной.
Эту команду часто можно встретить в Makefile-ах, и редко — в сценариях на языке командной оболочки.
Выводит список символов (используемых в целях отладки), содержащихся в откомпилированном двоичном файле.
Позволяет на заданных машинах хранить идентичные копии файлов. По умолчанию, rdist просматривает только те файлы, версия которых на удаленных машинах более старая, чем на локальной машине. Это делается сравнением последнего времени модификации и размера файла на локальной машине и на удаленных.
А теперь, используя полученные нами знания, попробуем разобраться с одним из системных сценариев. Один из самых коротких и простых — это killall, который вызывается для остановки процессов при перезагрузке или выключении компьютера.
Пример 13-9. Сценарий killall, из каталога /etc/rc.d/init.d
Вобщем все довольно понятно. Кроме хитрого манипулирования с переменными, при определении имени подсистемы (службы), здесь нет ничего нового.
Упражнение 1. Просмотрите сценарий halt в каталоге /etc/rc.d/init.d. Он по размеру немного больше, чем killall, но придерживается той же концепции. Создайте копию этого сценария в своем домашнем каталоге и поэкспериментируйте с ним (НЕ запускайте его с привилегиями суперпользователя). Попробуйте запустить его с ключами -vn (sh -vn scriptname). Добавьте свои комментарии. Замените действующие команды на "echo".
Упражнение 2. Просмотрите другие, более сложные сценарии из /etc/rc.d/init.d. Попробуйте разобраться в их работе. Проверьте их работу, следуя рекомендациям, приведенным выше. За дополнительной информацией вы можете обратиться к документу sysvinitfiles в каталоге /usr/share/doc/initscripts-?.??, который входит в пакет документации к "initscripts".
[38] Команда userdel завершится неудачей, если удаляемый пользователь в этот момент работает с системой
[39] Дополнительную информацию по записи компакт-дисков, вы найдете в статье Алекса Уизера (Alex Wither): Creating CDs, в октябрьском выпуске журнала Linux Journal за 1999 год.
[40] Утилита mke2fs, с ключом -c, так же производит поиск поврежденных блоков.
[41] Пользователи небольших, десктопных Linux-систем предпочитают утилиты попроще, например tar.
[42] NAND — логическая операция "И-НЕ". В общих чертах она напоминает вычитание.
Последние комментарии