Подключение модуля ядра linux

Содержание
  1. Как загружать и выгружать модули ядра в Linux
  2. Список всех загруженных модулей ядра в Linux
  3. Как загрузить или выгрузить (удалить) модули ядра в Linux
  4. Управление модулями ядра с помощью команды modprobe
  5. Загружаемые модули ядра Linux
  6. Зачем нужны загружаемые модули ядра?
  7. Особенности работы с модулями ядра Linux
  8. Загрузка и подключение модулей ядра
  9. Kernel module (Русский)
  10. Contents
  11. Обзор
  12. Получение информации
  13. Автоматическое управление модулями
  14. Управление модулями вручную
  15. Настройка параметров модуля
  16. С помощью файлов в /etc/modprobe.d/
  17. С помощью командной строки ядра
  18. Создание псевдонимов
  19. Запрет загрузки
  20. С помощью файлов в /etc/modprobe.d/
  21. С помощью командной строки ядра
  22. Основы Linux от основателя Gentoo. Часть 2 (5/5): Модули ядра
  23. Модули ядра
  24. Знакомьтесь, «uname»
  25. Подробнее о uname
  26. Релиз ядра
  27. Введение в модули ядра
  28. Модули ядра вкратце
  29. lsmod
  30. Список модулей
  31. Сторонние модули
  32. depmod и компания
  33. Как получить модули
  34. Использование depmod
  35. Расположение модулей ядра
  36. insmod vs. modprobe
  37. rmmod и modprobe в действии
  38. Ваши помощники modinfo и modules.conf
  39. Структура modules.conf
  40. Итоги и ресурсы
  41. Итоги
  42. Ресурсы
  43. Об авторах
  44. Daniel Robbins
  45. Chris Houser
  46. Aron Griffis

Как загружать и выгружать модули ядра в Linux

Оригинал: How to Load and Unload Kernel Modules in Linux
Автор: Aaron Kili
Дата публикации: 13 июня 2017 года
Перевод: А. Кривошей
Дата перевода: июль 2017 г.

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

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

Простой пример модуля — драйвер, который предоставляет ядру доступ к аппаратному устройству, подключенному к компьютеру.

Список всех загруженных модулей ядра в Linux

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

Для вывода списка всех загруженных модулей в Linux может использоваться команда lsmod (list modules), которая читает содержимое /proc/modules.

Как загрузить или выгрузить (удалить) модули ядра в Linux

Для загрузки модуля ядра мы можем использовать команду insmod (insert module). Здесь необходимо задать полный путь к модулю. Приведенная ниже команда загружает модуль speedstep-lib.ko.

Для выгрузки модуля ядра мы будем использовать команду rmmod (remove module). Следующая команда выгрузит модуль speedstep-lib.ko.

Управление модулями ядра с помощью команды modprobe

modprobe — это интеллектуальная команда для чтения списка, загрузки и выгрузки модулей ядра. Она производит поиск всех модулей и соответствующих файлов в директории /lib/modules/$(uname -r), но не включает в поиск альтернативные конфигурационные файлы в директории /etc/modprobe.d. Таким образом, здесь вам не нужно вводить полный путь к модулю — в этом преимущество modprobe по сравнению с ранее описанными командами.

Для загрузки модуля просто введите его имя.

Для выгрузки модуля используется флаг -r.

Замечание: в modprobe выполняется автоматическое преобразование подчеркивания, поэтому при вводе названий модулей нет никакой разницы между _ и -.

Более подробно ознакомиться с опциями можно на man-странице modprobe.

Источник

Загружаемые модули ядра Linux

Системное ядро Linux способно к модификации за счёт расширения функциональных возможностей. Это достигается несколькими способами, но самым оптимальным является подключение загружаемых модулей ядра. Этот способ позволяет вести разработку нужного функционала для ядра независимо от самого ядра. Процесс подключения модулей к ядру, как правило, никаких трудностей не вызывает (в отличие от конфигурирования и компиляции). Если конечно модули разработаны грамотно и должным образом протестированы. Системным администраторам стоит помнить, что если нужно «расширить» ядро под требуемый функционал, то в первую очередь следует воспользоваться вариантом в виде загружаемых модулей ядра.

Зачем нужны загружаемые модули ядра?

С помощью загружаемых модулей ядра довольно просто добавлять в систему драйверы, поддержку новых технологий и возможностей для архитектуры Linux. Это не требует затрагивания компонентов, уже включенных в ядро. Не нужно модифицировать исходный код ядра и возиться с его компиляцией. К тому же, это экономит память и дисковое пространство под само ядро. Ведь можно загружать только те модули, которые используются фактически.

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

Среди всех UNIX-подобных операционных систем наиболее приспособленными для работы с загружаемыми модулями ядра (а также поддерживающими самый широкий спектр оборудования и аппаратных платформ, в том числе и новинок) являются системы Linux и Solaris.

Особенности работы с модулями ядра Linux

Как уже было отмечено, Linux способна предоставить системным администраторам довольно широкие возможности для работы с загружаемыми модулями ядра. Так например в Linux любой системный компонент возможно сделать загружаемым модулем за исключением двух системных объектов: драйвера устройства, используемого для работы корневой файловой системы (ФС) и драйвера мыши типа PS/2.

Все загружаемые модули хранятся (и устанавливаются) в каталог /lib/modules/версия_ядра. Здесь версия_ядра может определена командой:

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

Как видно из данного вывода, в системе настроена поддержка брандмауэра iptables, а также используются модули для интеллектуального управления платформой IMPI – Intelligent Platform Management Interface. В колонке «Size» указывается размер в байтах, а в колонке «Used by» (кем используется) приводится количество связей на данный модуль от других компонентов, а также список самих этих компонентов.

Даже если системное ядро было сконфигурировано и скомпилировано с настройками и комплектностью по-умолчанию, то при использовании команды lsmod, как правило будет выведен довольно длинный список модулей. Если известно точное или примерное имя модуля, который необходимо проверить (используется он или нет), то вместе с командой lsmod удобно использовать и команду grep:

Читайте также:  Симпли линукс как установить

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

Загрузка и подключение модулей ядра

Пусть имеется загружаемый модуль ядра для некоторого устройства. Например есть файл модуля somedevice.ko для устройства somedevice. Чтобы загрузить этот модуль для ядра прямо во время работы системы следует использовать команду insmod:

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

Для удаления модуля нужно либо перезапустить систему или указать в явном запросе выгружаемый модуль с помощью команды rmmod:

Следует заметить, что несмотря на то, что команду rmmod хоть и можно использовать в любой момент времени, однако модуль может быть удалён только в случае, если с ним не связано ни одной действующей ссылки, которые указываются в столбце «Used by» вывода команды lsmod.

Чтобы каждый раз поле перезапуска системы не загружать требуемые модули, в Linux существует возможность подключать их автоматически с помощью файла /etc/modprobe.conf и соответствующей команды modprobe. Эта команда является «обёрткой» команды insmod. Она способна определять порядок загрузки и выгрузки модулей, их параметры, а также зависимости от других модулей и/или параметров. Всю эту информацию команда modprobe читает из файла /etc/modprobe.conf, который, кстати способна и сама генерировать.

Чтобы сгенерировать файл modprobe.conf в соответствии с текущим набором загруженных модулей (которые необходимо загрузить заранее), нужно использовать команду:

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

Ключевые слова path определяют расположение конкретных модулей в файловой системе, а aliases задают привязку файловых систем, сетевых протоколов, старших номеров блочных и символьных устройств к требуемому модулю.

Значения для строк options администраторы должны задавать самостоятельно, поскольку эти инструкции командой modprobe автоматически не генерируются. Например, чтобы задать для модуля устройства somedevice адрес его ввода-вывода, а также вектор прерываний, можно это сделать таким образом:

Стоит отметить также, что для команды modprobe доступны ключевые слова install и remove, при помощи которых можно указывать команды, которые будут выполняться во время загрузки и установки модулей ядра соответственно.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Kernel module (Русский)

Модули ядра — это отдельные кусочки кода, которые могут быть загружены и выгружены из ядра по мере необходимости. Они расширяют функциональность ядра без необходимости перезагрузки системы.

Contents

Обзор

Чтобы создать модуль ядра, вы можете прочитать The Linux Kernel Module Programming Guide. Модуль можно сконфигурировать как вкомпилированный, а можно как загружаемый. Чтобы иметь возможность динамически загружать или выгружать модуль, его необходимо сконфигурировать как загружаемый модуль в настройке ядра (в этом случае строка, относящаяся к модулю должна быть отмечена буквой M ).

Модули хранятся в /usr/lib/modules/kernel_release . Чтобы узнать текущую версию вашего ядра, используйте команду uname -r .

Получение информации

Чтобы узнать, какие модули ядра загружены в настоящий момент:

Чтобы показать информацию о модуле:

Чтобы вывести список опций, с которыми загружен модуль:

Чтобы отобразить настройки для всех модулей:

Чтобы отобразить настройки для отдельного модуля:

Чтобы узнать зависимости модуля (или его псевдонима), включая сам модуль:

Автоматическое управление модулями

Сегодня все необходимые загрузки модулей делаются автоматически с помощью udev, поэтому если вам не нужно загружать какие-либо модули, не входящие в стандартное ядро, вам не придётся прописывать модули, требующиеся для загрузки в каком-либо конфигурационном файле. Однако, бывают случаи, когда вам необходимо загружать свой модуль в процессе загрузки или наоборот не загружать какой-то стандартный модуль, чтобы ваш компьютер правильно функционировал.

Чтобы дополнительные модули ядра загружались автоматически в процессе загрузки, создаются статические списки в конфигурационных файлах в директории /etc/modules-load.d/ . Каждый конфигурационный файл называется по схеме /etc/modules-load.d/

.conf . Эти конфигурационные файлы содержат список названий модулей ядра, которые необходимо грузить, разделённых переносом строки. Пустые строки и строки, в которых первым непробельным символом является # или ; , игнорируются.

Смотрите modules-load.d(5) для дополнительной информации.

Управление модулями вручную

Управление модулями ядра производится с помощью утилит, предоставляемых пакетом kmod . Вы можете использовать эти утилиты вручную.

Загрузка модуля из другого места (для тех модулей, которых нет в /lib/modules/$(uname -r)/ ):

Альтернативный вариант выгрузки модуля:

Настройка параметров модуля

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

С помощью файлов в /etc/modprobe.d/

Файлы в директории /etc/modprobe.d/ можно использовать для передачи настроек модуля в udev, который через modprobe управляет загрузкой модулей во время загрузки системы. Конфигурационные файлы в этой директории могут иметь любое имя, оканчивающееся расширением .conf . Синтаксис следующий:

С помощью командной строки ядра

Если модуль вкомпилирован в ядро, вы также можете передать параметры модулю с помощью командной строки ядра. Для всех стандартных загрузчиков, подойдёт следующий синтаксис:

Просто добавьте это в загрузчике в строку с ядром, как описано в параметрах ядра.

Создание псевдонимов

Псевдонимы (алиасы) — это альтернативные названия для модуля. Например: alias my-mod really_long_modulename означает, что вы можете использовать modprobe my-mod вместо modprobe really_long_modulename . Вы также можете использовать звёздочки в стиле shell, то есть alias my-mod* really_long_modulename будет иметь тот же эффект, что и modprobe my-mod-something . Создайте алиас:

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

Читайте также:  Droidfish chess для windows

Запрет загрузки

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

Некоторые модули загружаются как часть initramfs. Команда mkinitcpio -M напечатает все автоматически обнаруженные модули: для предотвращения initramfs от загрузки каких-то из этих модулей, занесите их в чёрный список в /etc/modprobe.d/modprobe.conf . Команда mkinitcpio -v отобразит все модули, которые необходимы некоторым хукам (например, filesystems хук, block хук и т.д.). Не забудьте добавить этот .conf файл в секцию FILES в /etc/mkinitcpio.conf , если вы этого ещё не сделали, пересоберите initramfs после того, как вы запретили загрузку модулей, а затем перезагрузитесь.

С помощью файлов в /etc/modprobe.d/

Создайте .conf файл в /etc/modprobe.d/ и добавьте строку для каждого модуля, который вы хотите запретить, используя ключевое слово blacklist . Например, если вы хотите запретить загружать модуль pcspkr :

Можно изменить такое поведение. Команда install заставляет modprobe запускать вашу собственную команду вместо вставки модуля в ядро как обычно. Поэтому вы можете насильно сделать так, чтобы модуль никогда не загружался:

Это запретит данный модуль и все модули, зависящие от него.

С помощью командной строки ядра

Вы также можете запрещать модули из загрузчика.

Источник

Основы Linux от основателя Gentoo. Часть 2 (5/5): Модули ядра

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

Навигация по основам Linux от основателя Gentoo:
Часть I
  1. BASH: основы навигации (вступление)
  2. Управление файлами и директориями
  3. Ссылки, а также удаление файлов и директорий
  4. Glob-подстановки (итоги и ссылки)
Часть II
  1. Регулярные выражения (вступление)
  2. Назначения папок, поиск файлов
  3. Управление процессами
  4. Обработка текста и перенаправления
  5. Модули ядра (итоги и ссылки)
Часть III: 1, 2, 3, 4

Модули ядра

Знакомьтесь, «uname»

Команда uname дает множество интересной информации о вашей системе. Вот пример вывода на моей рабочей машине, после того, как я набрал uname -a, что говорит команде uname напечатать всю имеющуюся информацию:

$ uname -a
Linux inventor 2.4.20-gaming-r1 #1 Fri Apr 11 18:33:35 MDT 2003 i686 AMD Athlon(tm) XP 2100+ AuthenticAMD GNU/Linux

Подробнее о uname

Теперь, давайте посмотрим, какую же информацию о системе может дать uname

Интригующе! А что напечатает uname -a у вас?

Релиз ядра

А теперь небольшой трюк. Для начала выполните uname -r чтобы программа напечатала релиз ядра, которое работает в данный момент.

Теперь посмотрите в директорию /lib/modules и — опа! — Я уверен, что вы обнаружили каталог с точно таким же именем! OK, никакой магии, теперь самое время поговорить о значении каталогов в /lib/modules, а также объяснить, что такое модули ядра.

Ядро Linux это сердце того, что обычно называют «Linux» — это кусок кода, который напрямую взаимодействует с вашим железом и абстрагирует от него обычные программы. Благодаря ядру, вашему текстовому редактору не нужно беспокоиться на какой диск, SCSI или IDE, а может даже в RAM, он производит запись. Редактор просто записывает в файловую систему, а ядро заботится обо всем остальном.

Введение в модули ядра

Итак, что такое модули ядра? Они представляют собой часть ядра, которая сохраняется на диске в специальном формате. По вашей команде, они подгружаются в работающее ядро и добавляют в него новую функциональность.

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

Модули ядра вкратце

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

lsmod

Для просмотра загруженных модулей на вашей системе используйте команду lsmod:

Список модулей

Как видите, на моей системе загружено достаточно немного модулей. vmnet и vmmon модули, обеспечиваю необходимую функциональность для VMWare Workstation, которая позволяет мне запускать виртуальные машины в окне рабочего стола. Модуль nvidia выпущен NVIDIA corporation и позволяет использовать 3D-ускорение в Linux.

Дальше у меня есть набор модулей, которые используются для поддержки USB устройств ввода — mousedev, hid, usbmouse, input, usb-ohci, ehci-hcd и usbcore. Имеет смысл сконфигурировать ваше ядро для поддержки USB модулей. Почему? Потому что USB девайсы это «plug and play» (подключай и работай) девайсы и если у вас есть поддержка USB в модулях, вы можете спокойно пойти и купить новое USB устройство, подключить его, и ваша система автоматически загрузит соответствующие модули для этого устройства. Это удобный способ сделать что-то.

Сторонние модули

Завершают этот список модули: emu10k1, ac97_codec и sound, которые вместе обеспечиваю поддержку моей звуковой карты Audigy.

Следует отметить, некоторые из моих модулей доступны прямо в исходниках ядра. Например, все USB-модули были скомпилированы из стандартных исходных текстов ядра Linux. Однако, nvidia, emu10k1 и VMWare-модули были получены из других источников. Это подчеркивает другую важную особенность модулей ядра — возможность сторонних производителей добавлять необходимую функциональность в ядро и включать ее прямо в запущенное ядро. Без перезагрузки.

depmod и компания

В моей папке /lib/modules/2.4.20-gaming-r1/, есть несколько
файлов которые начинаются со строки «modules.»:

$ ls /lib/modules/2.4.20-gaming-r1/modules.*
/lib/modules/2.4.20-gaming-r1/modules.dep
/lib/modules/2.4.20-gaming-r1/modules.generic_string
/lib/modules/2.4.20-gaming-r1/modules.ieee1394map
/lib/modules/2.4.20-gaming-r1/modules.isapnpmap
/lib/modules/2.4.20-gaming-r1/modules.parportmap
/lib/modules/2.4.20-gaming-r1/modules.pcimap
/lib/modules/2.4.20-gaming-r1/modules.pnpbiosmap
/lib/modules/2.4.20-gaming-r1/modules.usbmap

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

Как получить модули

Некоторые модули ядра разработаны для работы со специальными устройствами, как например emu10k1 — модуль для поддержки моей звуковой карты. Для этого типа модулей, приведенные выше файлы включают также информацию о PCI IDs и прочие идентификационные метки оборудования, которое они поддерживают. Эта информация может быть использована различными скриптами, например «hotplug» (который мы рассмотрим в следующих руководствах) для автоматического определения оборудования и загрузки соответствующих модулей.

Читайте также:  Что такое stream linux

Использование depmod

Информация о зависимостях может становиться не актуальной, особенно в случае установки новых модулей. Чтобы ее обновить, просто введите depmod -a. Программа depmod просканирует модули из вашей папки /lib/modules и обновит информацию о зависимостях. Она делает это сканируя модули в /lib/modules и проверяя так называемые «symbols» внутри модулей.

Расположение модулей ядра

Итак, как выглядят модули ядра? Для ядра 2.4, все файлы модулей обычно находятся в /lib/modules и имеют имя оканчивающееся на «.o» (для 2.6 «.ko» — прим. ред.). Чтобы увидеть все модули из /lib/modules, введите следующее:

# find /lib/modules -name ‘*.o’
/lib/modules/2.4.20-gaming-r1/misc/vmmon.o
/lib/modules/2.4.20-gaming-r1/misc/vmnet.o
/lib/modules/2.4.20-gaming-r1/video/nvidia.o
/lib/modules/2.4.20-gaming-r1/kernel/fs/fat/fat.o
/lib/modules/2.4.20-gaming-r1/kernel/fs/vfat/vfat.o
/lib/modules/2.4.20-gaming-r1/kernel/fs/minix/minix.o
[список обрезан для краткости]

insmod vs. modprobe

Итак, как же подгрузить модуль в работающее ядро? Один из вариантов, использовать команду
insmod и указать ей полный путь к модулю, который вы хотите загрузить:

Хотя, обычно модули загружают используя команду modprobe. Одна из приятных вещей, которую делает modprobe это автоматическая загрузка всех необходимых зависимостей для данного модуля. Кроме того, вам не нужно указывать полный путь и расширение загружаемого модуля.

rmmod и modprobe в действии

Давайте выгрузим наш модуль fat.o и загрузим его обратно используя modprobe:

Как видите, работа команды rmmod очень похожа на работу modprobe, но имеет противоположный эффект — она выгружает указанный модуль.

Ваши помощники modinfo и modules.conf

Можете воспользоваться командой modinfo, чтобы узнать пару интересных вещей о своих любимых модулях:

Также обратите внимание на файл /etc/modules.conf. Он содержит настройки для modprobe и позволяет изменять поведение modprobe. Например, указывать какие модули загруть до/после загрузки остальных, запускать скрипты до и после загрузки модуля, и многое другое.

Структура modules.conf

Синтаксис и функциональность modules.conf достаточно сложны, и мы не будем в них сейчас углубляться (наберите man modules.conf чтобы узнать все подробности), но есть несколько вещей, которые вы должны знать об этом файле.

Во-первых, многие дистрибутивы генерируют этот файл автоматически из набора файлов в других директориях, таких как /etc/modules.d/. Например, в Gentoo Linux есть такая папка, и запуск команды update-modules прочитает все файлы из /etc/modules.d/ и объединит их в новый /etc/modules.conf. Поэтому, сделав свои изменения в файлах из /etc/modules.d/ запустите update-modules, если вы используете Gentoo. В Debian, процедура очень похожа, за исключением того, что папка называется /etc/modutils/.

Для ядер версии 2.6 аналогичные по функциональности файл и папка из каталога etc называются modprobe.conf и modprobe.d соответственно. Синтаксис там упрощен, смотрите man modprobe.conf
— Примечание редактора.

Итоги и ресурсы

Итоги

Мои поздравления; вы дошли до конца этого учебника по основам администрирования Linux! Надеюсь он помог вам немного систематизировать ваши знания о Linux. Пожалуйста присоединяйтесь к нам в следующем руководстве раскрывающем более продвинутые аспекты администрирования, такие как права доступа, управление пользователями, файловую систему, монтирование и многое другое. В следующем руководстве мы будем опираться на фундамент, заложенный здесь. И помните, продолжая изучать эту серию руководств, вы уже совсем скоро будете готовы сдаче экзаменов на получение сертификата LPIC Level 1 от Linux Professional Institute.

Ресурсы

Говоря о сертификации LPIC, если вы действительно в ней заинтересованы, то я настоятельно рекомендую вам изучить следующие источники, которые были тщательно выбраны для расширения знаний полученных в этом руководстве.

В сети есть множество хороших руководств по регулярным выражениям. Вот парочка:

Можете прочитать стандарт иерархии файловой системы (Filesystem Hierarchy Standard) на http://www.pathname.com/fhs/.

В серии Bash в примерах (будет перевод), я покажу вам как использовать инструкции bash для написания ваших собственных скриптов. Это серия (особенно первая и вторая части) будет хорошей подготовкой к экзамену LPIC Level 1:

Вы можете узнать больше о sed в серии руководств Sed в примерах (будет переведено). Если вы планируете сдавать LPI экзамен, убедитесь что прочитали первые две части этой серии.

Чтобы узнать больше об awk, обратитесь к серии Awk в примерах (перевод будет).

Если вы не знакомы с редактором vi, Я настоятельно рекомендую вам посмотреть мое руководство Vi — the cheat sheet method. Этот учебник станет легким, но и стремительным введением в этот мощный текстовый редактор. Считайте, что это материал необходимый к прочтению, если вы не знаете как пользоваться vi.

Спасибо Dmitry Minsky (Dmitry.Minsky@gmail.com) за перевод.

Об авторах

Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Источник

Оцените статью