Архив

Архив Октябрь 2009

Как курить man’ы во FreeBSD

17 октября 2009

Man pages – это основная документация в UNIX. Многие начинающие пользователи UNIX испытывают предубеждение, что, мол, man pages непонятны, трудны для изучения. Это не так. Предубеждение родом из прошлого, когда страницы руководства писались программистами для программистов. Тогда системному администратору (да и обычному пользователю) были необходимы навыки программиста. Сейчас требования квалификации пользователя FreeBSD существенно упали. Man’ы тоже упростились, и вполне могут стать отправной точкой для изучения FreeBSD.

 

Man pages состоят из девяти нумерованных разделов. Рассмотрим их поближе:

1. General commands (основные команды);

2. System calls and error numbers (системные вызовы и коды ошибок);

3. The C libraries (библиотеки языка C);

4. Devices and device drivers (устройства и драйверы устройств);

5. File formats (форматы файлов);

6. Game instructions (инструкции к играм);

7. Miscellaneous information (разное);

8. System maintenance commands (команды обслуживания системы);

9. Kernel system interfaces (системные интерфейсы ядра).

 

Каждая страница man начинается с названия описываемой команды и номера раздела в круглых скобках (например, команда man ls выведет 1-й строчкой LS(1), что означает, что команда ls принадлежит разделу руководства #1 General commands). Если подобные упоминания команд встречаются в документации, то это означает, что читать эту страницу руководства следует именно из указанного раздела.

 

Посмотрим пример страницы руководства:

CP(1)                   FreeBSD General Commands Manual                  CP(1)

NAME
     cp — copy files

SYNOPSIS
     cp [-R [-H | -L | -P]] [-f | -i | -n] [-lpv] source_file target_file
     cp [-R [-H | -L | -P]] [-f | -i | -n] [-lpv] source_file …
        target_directory

DESCRIPTION
     In the first synopsis form, the cp utility copies the contents of the
     source_file to the target_file.  In the second synopsis form, the con-
     tents of each named source_file is copied to the destination
     target_directory.  The names of the files themselves are not changed.  If
     cp detects an attempt to copy a file to itself, the copy will fail.

     The following options are available:

     -H    If the -R option is specified, symbolic links on the command line
           are followed.  (Symbolic links encountered in the tree traversal
           are not followed.)

<…>

EXIT STATUS
     The cp utility exits 0 on success, and >0 if an error occurs.

COMPATIBILITY
     Historic versions of the cp utility had a -r option.  This implementation
     supports that option, however, its use is strongly discouraged, as it
     does not correctly copy special files, symbolic links or fifo’s.

     The -v and -n options are non-standard and their use in scripts is not
     recommended.

SEE ALSO
     mv(1), rcp(1), umask(2), fts(3), symlink(7)

STANDARDS
     The cp command is expected to be IEEE Std 1003.2 («POSIX.2») compati-
     ble.

HISTORY
     A cp command appeared in Version 1 AT&T UNIX.

Как видно из примера, man pages делятся на разделы. Часть из них является стандартными, и встречаются практически в каждой странице руководства.

NAME сообщает имя программы.

SYNOPSIS приводит перечень ключей и их аргументы.

DESCRIPTION содержит краткое описание программы/функции/библиотеки.

OPTIONS – параметры командной строки и их назначение.

BUGS описывает проблемы с программным кодом.

SEE ALSO – перечень смежных материалов man.

Стандарты man pages описаны в MDOC(7).

Навигация по man pages осуществляется стрелкой вниз (вперед), клавишами B (назад), PgUp (страница вперед) и PgDown (страница назад). В пределах страницы можно выполнять поиск. Для этого надо нажать / и вслед за ним ввести искомое слово. Если оно будет найдено, то вы сразу переместитесь к его первому вхождению, и оно будет подсвечено. Клавишей N можно переместиться к следующим вхождениям этого слова.

 

Существует возможность искать страницы man.

Команда apropros ищет все страницы man, названия или описания которых включают указанное слово. Например:

[19:05] root@SAN [/root] # apropos cp
CPU_ELAN(4)              — AMD Elan 520 CPU support
acpi(4)                  — Advanced Configuration and Power Management support
acpi_asus(4)             — Asus Laptop Extras
acpi_fujitsu(4)          — Fujitsu Laptop Extras
acpi_ibm(4)              — ACPI extras driver for IBM laptops
acpi_panasonic(4)        — ACPI hotkey driver for Panasonic laptops
acpi_sony(4)             — ACPI notebook controller driver for Sony laptops
acpi_thermal(4)          — ACPI thermal management subsystem
acpi_toshiba(4)          — Toshiba HCI interface
acpi_video(4)            — ACPI Video Extensions driver
acpiconf(8)              — control ACPI power management
acpidb(8)                — ACPI DSDT debugger

<…>

Остальное я вырезал за ненадобностью. Большинство найденных страниц не имеет никакого отношения к команде cp (служащей для копирования файлов), однако в них присутствует искомая комбинация символов.

В таких случаях куда полезнее может оказаться команда whatis. Она ищет в man pages только целиком встречающиеся слово или сочетание слов. Происходит это так:

[19:08] root@SAN [/root] # whatis cp
cp(1)                    — copy files
cp(4)                    — driver for synchronous Cronyx Tau-PCI WAN adapters

Как мы видим, cp – это не только программа копирования файлов, но еще и драйвер. Чтобы просмотреть man page из конкретного раздела (например, 4-го), используется такой синтаксис:

man 4 cp

Все гениальное просто. Man pages – не исключение.

Default ,

Монтируем флешку во FreeBSD

7 октября 2009

1. Подключаем к компьютеру флеш-носитель.

2. Вводим команду:

# dmesg

Обнаруживаем нечто вроде:

umass0: <JetFlash Mass Storage Device, class 0/0, rev 2.00/1.00, addr 2> on uhub4
umass0: Get Max Lun not supported (STALLED)
da1 at umass-sim0 bus 0 target 0 lun 0
da1: <JetFlash Transcend 2GB 8.07> Removable Direct Access SCSI-2 device
da1: 40.000MB/s transfers
da1: 1926MB (3944448 512 byte sectors: 255H 63S/T 245C)

Интересующее нас устройство зарегистрировалось в системе как da1.

3. На всякий пожарный случай проверяем, какие тома на нем расположены:

# ls /dev/

da1

da1s1

Итак, на флеш-носителе есть всего один том, именующийся da1s1.

4. Монтируем его в каталог /mnt:

# mount_msdosfs /dev/da1s1 /mnt

5. Проверяем результат:

# ls /mnt/
Drivers FreeBSD Images

Содержимое флеш-носителя у нас перед глазами.

Default , ,

Прокрутка консоли во FreeBSD

7 октября 2009

Буфер экрана во FreeBSD прокручивается клавишами вверх-вниз при нажатом Scroll Lock. Возврат в командную строку осуществляется повторным нажатием Scroll Lock.

Default , ,

Jabber-сервер для локальной сети. Openfire + MySQL под Windows

3 октября 2009

Почти в каждом офисе, насчитывающем 30 и более сотрудников, рано или поздно возникает необходимость реализовать систему мгновенного обмена сообщениями. Причем, желательно со списком контактов, хранящимся централизованно, на сервере, структурированном по отделам, с сохранением истории сообщений, удобным русскоязычным интерфейсом и прочими рюшечками, которые так ценит руководство. Что ж, это задача не из числа неподъемных. Я расскажу как ее реализовать на базе связки jabber-сервера Openfire и СУБД MySQL под управлением Windows.

Нам нужна выделенная машина с Windows (версии XP и старше), дистрибутивы Openfire и MySQL. Начнем с установки и настройки MySQL.

Читать далее…

How-To , , , , ,