1a4bbdc3

Упомянутые команды выполняют поиск по


Упомянутые команды выполняют поиск по ключевым словам в секциях DESCRIPTION man-страниц. Количество искомых слов может быть произвольным, но чем больше слов, тем больше результатов вы получите, потому что команда поочередно ищет каждое слово.
См. также apropos(1), man(1).


nroff — «обертка» для форматирования man-страниц в groff. groff — программа форматирования документов, позволяющая генерировать документы разных форматов (HTML, .pdf, печатные копии, info-страницы и т.д.) на основе одного исходного файла. См. также mandb(8), locate(1), grep(1), nroff(1), groff(1), zless(1), zcat(1); раздел 1.6.



Хотя некоторые пользователи считают, что механизм перемещения по info-страницам слишком усложнен, с info-страницами все же стоит познакомиться. Хотя работать с info-страницами сложнее, чем с man-страницами, (обычно) они проще для понимания. Освоившись с основными приемами перемещения, вы сможете очень быстро найти нужные сведения.
Существует ряд удобных программ просмотра info-страниц, в том числе pinfo, Konqueror и Yelp. Pinfo работает в консольном режиме, а для Konqueror и Yelp необходима система X. Программа Konqueror особенно удобна для поиска и печати отдельных страниц.
См. также info info.



Во все основные дистрибутивы Linux входит поддержка CUPS (Common Unix Printing System). CUPS поддерживает команды как System V (lp), так и Беркли (lpr). В настоящем разделе использованы команды Беркли. Вот их аналоги для System V:
$ man -t finger | lp
Вывод на сетевой принтер:


$ man -t finger | lp -d printername См. также
man(1), lpr(1), lp(1); глава 14; CUPS Software Users Manual (http://localhost:631/documentation.html).



Во все основные дистрибутивы Linux входит поддержка CUPS (Common Unix Printing System). CUPS поддерживает команды как System V (lp), так и Беркли (lpr). В настоящем разделе использованы команды Беркли; далее приводятся их аналоги для System V.
Печать info-страницы:
$ info finger | lp
Печать info-страницы с параметрами форматирования lp:
$ info finger | lp -о cpi=12 -о page-left=54 -о page-right=54 \ -о page-top=54 -о page-bottom=54


Если просто ввести команду man bash > bash.txt, результат будет выглядеть убого. Команда col -b приводит распечатку в порядок, убирает из нее лишние переводы строк и символы Backspace. Это особенно важно для перевода man-страниц в текстовый формат, в man-страницах часто встречаются символы Backspace, которые затем отображаются в текстовых файлах в виде пустых квадратов или повторяющихся символов.
См. также col(1).



Самой распространенной проблемой с RPM является «кошмар RPM», то есть бесконечная цепочка неразрешенных зависимостей. Вот некоторые рекомендации по ее предотвращению:
  • не оставляйте неразрешенные зависимости. Они не исчезнут сами по себе, а лишь будут скрываться во тьме и расти со временем;
  • качество пакетов RPM не гарантировано. Любой желающий может слепить пакет и отправить его для распространения. По возможности старайтесь выбирать пакеты RPM, построенные специально для вашего дистрибутива и платформы. PLD (Polished Linux Distribution) строит качественные пакеты RPM для всех систем на базе х86;
  • когда потребуется построить программу по исходным текстам, используйте утилиту CheckInstall. CheckInstall генерирует пакеты для Red Hat, Debian и Slackware, поэтому вы получаете дистрибутив со всеми преимуществами непосредственной компиляции и системы управления пакетами (см. раздел 4.5).
См. также rpm(8); RPM.org (http://www.rpm.org/); Maximum RPM (http://www.rpm.org/max-rpm/index.html).



Вместо ключа -i (установка, install) может использоваться ключ -U (обновление, Upgrade). При этом может выполняться как обновление, так и установка пакета; команда работает в обоих случаях. Ключ -U заменяет старый пакет. Если вы хотите установить несколько версий одного пакета (скажем, gcc) или несколько разных ядер, не используйте ключ -U — только -i. См. также
rpm(8); RPM.org (http://rpm.org); Maximum RPM (http://www.rpm.org/max_rmp/index.html).



Если RPM сообщает, что удалить пакет невозможно, потому что от него зависят другие пакеты, вам придется либо удалить остальные пакеты, либо оставить пакет в системе. В некоторых случаях (например, при замене Sendmail) зависимости приходится разрывать. Новая почтовая программа — Postfix, Exim или qmail —
2.5. Получение информации об установленных пакетах разрешит зависимости Sendmail, но сначала Sendmal нужно удалить, а это неизбежно приведет к нарушению всех зависимостей.
См. также rpm(8); Maximum RPM (http://www.rpm.org/max-rpm/index.html).



Для поиска документации к конкретному приложению также можно воспользоваться сценарием finddoc из раздела 1.11.
См. также rpm(8); раздел 1.11; Maximum PRM (http://www.rpm.org/max-rpm/index.html).
2.7. Поиск недавно установленных пакетов


Любую информацию о конкретных пакетах можно получить до их загрузки из таких архивов RPM, как http://freshrpms.net, http://rpmfind.net или http://rpm.pbone.net.
См. также rpm(8); Maximum PRM (http://www.rpm.org/max-rpm/index.html); FreshRPMs (http://freshrpms.net/); rpmfind (http://rpmfnd.net); rpm.pbone (http://rpm.pbone.net).



Если список получится слишком длинным, передайте его less или head: rpm -qa --last|head. См. также
rpm(8); Maximum PRM (http://www.rpm.org/max-rpm/index.html).



Необходимость в перестройке базы данных RPM возникает редко, но вреда эта операция не принесет. При любом внесении серьезных изменений в систему будет неплохо перестроить базу данных RPM. При сравнении размеров /var/lib/rpm/packages до и после запуска rpm --rebuilddb иногда можно заметить некоторое уменьшение, поскольку в процессе перестройки из базы данных исключаются неиспользуемые части.
См. также rpm(8); Maximum PRM (http://www.rpm.org/max-rpm/index.html).
2.9. Отслеживание библиотек в системах на базе RPM


Где найти необходимые пакеты? Начните с домашней страницы той программы, которую вы пытаетесь переустановить. Обязательно прочтите всю имеющуюся документацию.
Сейчас появилось множество разных дистрибутивов на базе RPM, поэтому постарайтесь раздобыть пакеты, построенные для вашей конкретной системы. Вот некоторые из крупнейших общедоступных архивов RPM:
  • FreshRPMs - http://freshrpms.net;
  • rpmfind - http://rpmfind.net;
  • rpm.phone - http://rpm.phone.net.



В вашей системе исходные тексты могут храниться в другом каталоге. В Fedora 1, как и в некоторых ранних версиях используется каталог /usr/src/redhat/RPMS/. В других поставках используется каталог /usr/src/RPM/RPMS. Разберитесь, и вы найдете нужный каталог.
Построение пакетов по исходным текстам не избавляет от «кошмара RPM». Оно всего лишь гарантирует двоичную совместимость с системными библиоте-
2.12. Настройка параметров сборки SRPM ками и оптимизацию RPM для архитектуры вашей системы. Соблюдение зависимостей придется обеспечивать вручную, а это далеко не так просто, как кажется.
Обратите внимание: rpmbuild и rpm — два отдельных пакета. См. также
rpmbuild(8), rpm(8); RPM.org (http://rpm.org/); Maximum PRM (http://www.rpm.org/max-rpm/index.html).



Где найти список параметров? Перейдите в каталог SOURCES и распакуйте архив с исходными текстами:
# cd /usr/src/redhat/SOURCES # tar xzvf samba-3.0.0.tar.bz2
Как упоминалось в разделе 2.11, в вашей системе может использоваться другой каталог исходных текстов.



FreshRPMs — хороший источник качественных пакетов. Зеркала yum находятся по адресу http://ayo.freshrpms.net. Ваш пакет yum из FreshRPMs будет заранее настроен на использование архивов FreshRPMs. Не забудьте установить ключ GPG:
# rpm --import http://freshrpms.net/packages/RPM-GPG-KEY.txt
Включение gpgcheck=1 в файл yum.conf и импортирование ключей гарантирует автоматическую проверку сигнатур пакетов. Этот простой, удобный способ гарантирует, что устанавливаемые пакеты не подвергались злонамеренным модификациям или искажениям в процессе пересылки. См. также
yum(8), yum.conf(5); домашняя страница yum (http://linux.duke.edu/projects/yum/); зеркала yum на сайте FreshRPMs (http://ayo.freshrpms.net).



Сетевой этикет предписывает по возможности пользоваться зеркалами, чтобы не перегружать главный сайт по адресу http://fedora.redhat.com. См. также
yum(8), yum.conf(5); домашняя страница yum (http://linux.duke.edu/projects/yum/); зеркала yum на сайте FreshRPMs (http://ayo.freshrpms.net); Fedora Mirror List (http://www.fedora.us/wiki/FedoraMirrorList).



Одна из самых замечательных особенностей Yum состоит в том, что программа хорошо интегрируется с существующими системами. Yum читает готовую базу данных RPM и создает новый список пакетов, после чего ей можно пользоваться.
См. также yum(8), yum.conf(5); домашняя страница yum (http://linux.duke.edu/projects/yum/); зеркала yum на сайте FreshRPMs (http://ayo.freshrpms.net); Fedora Mirror List (http://www.fedora.us/wiki/FedoraMirrorList).



Yum также удаляет пакеты, которые перестали быть необходимыми. См. также yum(8), yum.conf(5); домашняя страница yum (http://linux.duke.edu/projects/yum/).



Ту же самую информацию можно получить посредством запросов RPM, но при помощи yum это делается чуть удобнее.
См. также yum(8), yum.conf(5); домашняя страница yum (http://linux.duke.edu/projects/yum/).



Локальный кэш пакетов и заголовков рекомендуется периодически обновлять. Это предотвратит появление труднообъяснимых ошибок, а при установке и обновлении будут использоваться обновленные пакеты.
См. также yum(8), yum.conf(5); домашняя страница yum (http://Linux.duke.edu/projects/yum/).


При наличии нескольких источников apt- get всегда использует самую новую версию пакета. Список начинается с наиболее предпочтительных источников, поскольку apt-get обрабатывает список от начала к концу.
Редактирование файла sources.list — абсолютно законный, простой способ управления установкой программ. Занесите в файл все записи, которые вы когда-либо планируете использовать, и закомментируйте строки, не задействованные в конкретной установке.
В список sources.list рекомендуется включить официальные зеркала Debian, чтобы снять нагрузку с серверов Debian.org. Полный список официальных зеркал находится по адресу http://www.debian.org/mirror/.
ВНИМАНИЕ Заплатки безопасности распространяются только с адреса http://www.debian.org/security/ и не копируются на зеркалах. См. также
sources.list(5); официальный список зеркал Debian (http://www.debian.org/mirror/); страница поиска пакетов Debian (http://www.debian.org/distrib/packages).



apt- get всегда выбирает из всех доступных источников новейшие версии устанавливаемых пакетов. Мир Linux быстро развивается, поэтому самая свежая информация всегда находится в Интернете. Чтобы выполнить принудительную установку программы с компакт-диска, закомментируйте все остальные строки в файле sources.list.
ПРИМЕЧАНИЕ Не забывайте выполнять команду apt-get update при каждом изменении файла sources.list. См. также
apt-cdrom(8), apt-get(8); Debian on CD, архивы ISO (http://www.debian.org/CD/http-ftp/).


Для определения имен пакетов используйте страницу поиска Debian по адресу http://www.debian.org/distrib/packages/. Имена пакетов Debian часто отличаются от своих аналогов из RPM. Например, программа CyrusSASL оформляется в пакет sasl-2.x.rpm, а в Debian она разбивается на несколько пакетов с именами libsasl-*.
Не забудьте выполнить команду apt-get update после изменения /etc/apt/sources.list и периодически запускайте ее, чтобы получать обновленную информацию из архивов пакетов.
apt-get загружает и устанавливает (а при необходимости и удаляет) все пакеты, необходимые для разрешения всех зависимостей.
См. также apt-get(8); локальная документация (/usr/share/doc/Debian/apt-howto).


Построение пакетов . deb по исходным текстам чаще всего выполняется с целью использования пакетов из тестовой или нестабильной версии в стабильной. Перекомпиляция настраивает зависимости для стабильной версии.
Если потребуется установить программу, отсутствующую в архивах Debian, постройте .deb при помощи CheckInstall — утилиты, создающей пакеты RPM, .deb и Slackware (см. раздел 4.5).
См. также apt-get(8), dpkg-source(1); локальная документация (/usr/share/doc/Debian/apt-howto); раздел 4.5.
3.8. Обновление системы Debian


Команды обновления отдельных пакетов не существует. Команда apt-get install всегда устанавливает последнюю версию пакета.
См. также apt-get(8); локальная документация (/usr/share/doc/Debian/apt-howto).



Чтобы флаг - u применялся по умолчанию, отредактируйте (или создайте) файл /etc/apt/apt.conf.
// Всегда перечислять обновляемые пакеты // и запрашивать подтверждение у пользователя APT::Get::Show-Upgraded "true";
Перед каждым выполнением команды apt-get dist-upgrade сначала выполните команду apt-get upgrade, чтобы снизить вероятность ошибок при выполнении dist-upgrade. См. также
apt-get(8); локальная документация (/usr/share/doc/Debian/apt-howto).



В какой- то момент Sarge повышается до статуса стабильной версии, a Woody «уходит на покой». Когда это произойдет, обновите свою систему так, как описано в настоящем разделе.
См. также apt-get(8); локальная документация (/usr/share/doc/Debian/apt-howto).



Сопровождение смешанной системы требует осторожности, особенно если в качестве базовой версии используется Woody. По мере «старения» Woody могут возникнуть проблемы двоичной совместимости с Sarge/Sid. Различия между ключевыми системными файлами (такими как libc и gcc) могут стать настолько серьезными, что пакеты Sarge/Sid не будут устанавливаться в Woody. Если это произойдет, попробуйте построить пакеты по исходным текстам (см. раздел 3.6).
См. также apt.conf(5), sources.list(5); страница поиска пакетов Debian (http://www.debian.org/distrib/packages).



Таблица, выводимая командой dpkg -l, выглядит довольно загадочно, поэтому я приведу расшифровку.
$ dpkg -l gnome* Desired=Unknown/Instal1/Remove/Purge/Hoid | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-============================================================== pn gnome <none> (no description available) un gnome-about <none> (no description available) ii gnome-applets 2.4.2- 1 Various applets for GNOME 2 panel rc gnome-bin 1.4.2-18 Miscellaneous binaries used by GNOME
В строке pn gnome поднимитесь от буквы p наверх по «стрелке». Она приведет вас к строке Desired=Unknown/InstaU/Remove/Purge/Hold с расшифровками первого символа (Purge в данном случае).
От следующего столбца, n, стрелка ведет к строке Status. По ней можно определить, что символ n означает Not/Installed.
В третьем столбце отображается код ошибки. В нашем случае он пуст (и хорошо). Как указано в конце строки, любые символы верхнего регистра в столбцах Status и Err ни к чему хорошему не приведут.
Получаем: пакет gnome когда-то был установлен в системе, но потом он был удален.
Код un означает, что пакет никогда не устанавливался.
Код ii означает, что пакет установлен.
Код rc означает, что пакет был установлен, а затем удален, но после него остались конфигурационные файлы. Состав этих файлов определяется легко:
$ dpkg -L gnome-bin /etc/logcheck/ignore.d.server/gnome-bin /etc/logcheck/ignore.d.workstation/gnome-bin


Кэш пакетов запросто может занимать десятки, если не сотни мегабайт. Загляните в /var/cache/apt/archives и проверьте сами. Чтобы сэкономить место на диске, создайте локальный кэш пакетов в своей сети (см. раздел 3.14).
3.13. Разрешение конфликтов зависимостей в Debian См. также dpkg(8), apt_cache(8), apt-get(8); локальная документация (/usr/share/doc/Debian/ apt-howto); The Debian Reference Manual (http://qref.sourceforge.net/).



В «монолитных» системах подобные конфликты версий встречаются редко. Пользователи смешанных систем сталкиваются с ними чаще. Чтобы предотвратить их, будьте чрезвычайно осмотрительны при выборе устанавливаемых программ — при первой установке Debian потратьте немного времени и выберите каждый необходимый пакет.
См. также dpkg(8), apt-get(8); Debian User's List с архивами (http://lists.debian.org/debian-user/).



Большинству параметров в файле /etc/apt-proxy/apt-proxy.conf, кроме источников пакетов, можно оставить значения по умолчанию. Исключение составляет частота «обновлений», определяющая периодичность загрузки списка пакетов. По умолчанию соответствующая секция выглядит так:
# Максимальная частота обновлений (в минутах) # Высокие значения снижают нагрузку. BACKENDFREQ=240
Я обычно устанавливаю значение этого параметра равным 1440; ежедневной проверки вполне достаточно. Действительно важные события происходят не так часто. Проверку следует производить хотя бы раз в день главным образом для своевременной установки обновлений безопасности.
См. также apt-proxy(8), apt-proxy.conf(5); официальный список зеркал Debian (http://www. debian.org/mirror/); домашняя страница apt-proxy (http://apt-proxy.sourceforge.net/).



Команды ping и traceroute помогут определить, какие зеркала обладают минимальным временем отклика. Дело в том, что географическая близость еще не гарантирует быстрого отклика.
Указание трех источников обеспечивает необходимую избыточность, apt-proxy опрашивает их по порядку: если первый источник не отвечает, опрашивается второй и т.д.
См. также apt-proxy(8), apt-proxy.conf(5), apt-proxy-import(8); официальный списокзеркал Debian (http://www.debian.org/mirror/); домашняя страница apt-proxy (http://apt-proxy.sourceforge.net/).



Большинство дистрибутивов Linux включает установку Core Development Tools или что-нибудь в этом роде, поэтому вам не придется отлавливать программы и устанавливать их по отдельности.
Требования, специфические для конкретной программы, перечисляются в документации. Поищите в архиве с исходными текстами файлы README, INSTALL и другую документацию. Прочитайте все от начала и до конца. При запуске конфигурационный сценарий проверяет наличие в системе всех обязательных элементов. Если какой-либо из этих элементов отсутствует, сценарий завершается с кодом ошибки и сообщает, что необходимо сделать.



Совместное использование find и grep позволяет исключить каталоги, не входящие в конечный список. Ключ grep -v включает подробный вывод. Параметр –e означает «исключить следующий каталог».
Мы исключаем каталоги /proc и /tmp, потому что они содержат временные данные и постоянно меняются. Файлы в каталоге /dev находятся под управлением системы, поэтому их тоже можно исключить. Исключение каталогов также является важной мерой безопасности — при ручном удалении программ по списку diff содержимое каталогов /proc, /tmp и /dev ни в коем случае не должно изменяться. См. также
grep(1), find(1), diff(1).



Описанная в этом разделе процедура считается стандартным способом удаления программ, построенных по исходным текстам. Тем не менее не все авторы программ следуют общепринятым правилам. Обязательно просмотрите всю документацию к программе.
Прежде всего обратите внимание на параметры конфигурации. Некоторые программы (такие, как Apache) поддерживают десятки параметров компиляции. Для обеспечения безопасности откомпилируйте поддержку только тех возможностей, которые будут реально использоваться. Это особенно важно для серверов, доступ к которым осуществляется из непроверенных сетей (скажем, почтовых и веб-серверов).
Аргументы в пользу компиляции программ по исходным текстам:
  • вы можете включить поддержку тех возможностей, которые вам необходимы;
  • оптимизация программ для конкретной архитектуры;
  • полный контроль над ходом установки.
Впрочем, есть и недостатки:
  • возможные проблемы с обновлением и удалением;
  • до «кошмара зависимостей» рукой подать;
  • на компиляцию большой программы может потребоваться несколько часов.



В каталоге doc- pak программа CheckInstall размещает файлы README и прочую документацию программы. Если не создать каталог doc-pak, CheckInstall спросит, хотите ли вы создать каталог документации по умолчанию. Если ответить отрицательно, пакет останется без документации.
CheckInstall использует «родную» систему управления пакетами: RPM в Red Hat, installpkg в Slackware, apt в Debian. Чтобы удалить пакет CheckInstall, воспользуйтесь программой управления пакетами своей системы.
CheckInstall поддерживает любые сценарии установки. Пример:
# checkinstall -D make installpackages # checkinstall -R make modules_insta11 # checkinstall -S install.sh # checkinstall -D setup
Не забудьте изучить файл README устанавливаемой программы, а также прочую прилагаемую документацию. Не все пакеты с исходными текстами следуют традиционной процедуре configure-make-make install. В отдельных случаях используются другие сценарии установки, как в приведенном выше примере.
CheckInstall еще не позволяет создать пакет без его автоматической установки. Вероятно, эта возможность появится в будущих версиях.
См. также Домашняя страница CheckInstall (http://asic-linux.com.mx/~izto/checkinstall/news.php).


Программа lspci получает часть данных от шины PCI, а затем добавляет к ним дополнительную информацию из внутренней базы данных /usr/share/misc/pci.ids. Даже существует специальная команда для обновления этого файла:
# update-pelids
Если к системе подключено устройство, не распознаваемое lspci (скажем, очень старое и экзотическое устройство ISA), вам придется открыть корпус и посмотреть, что это такое. Также можно попробовать запустить dmesg (см. раздел 5.3).
См. также lspci(8).



Программа dmesg всегда выводит обновленную информацию даже при частой смене оборудования (например, при подключении и отключении устройств USB).
См. также dmesg(8).



Как упоминалось выше, для чтения данных из /proc следует использовать только cat и утилиты, предназначенные специально для этой цели. Программы постраничного вывода типа less или more выводят другие данные, потому что они читают /proc заново с каждой страницей. Также не рекомендуется использовать текстовый редактор или любую программу с возможностью записи, чтобы не создавать риска повреждения системы.



По выходным данным fdisk также можно узнать, какой тип файловой системы находится на любом разделе. В рассмотренном примере используются два разных типа файловых систем Windows (HPFS/NTFS, FAT32) и расширенный раздел Windows, в котором были построены файловые системы Linux и раздел виртуальной памяти. См. также
fdisk(8).



В Joe используется много трехклавишных команд. Каретка (^) обозначает клавишу Ctrl. Нажмите первые две клавиши вместе (например, Ctrl+K), затем отпустите их и нажмите третью клавишу. Далее перечислены базовые команды вызова справки:
  • JOE и RJOE:
  • ^К Н . — включение/отключение режима вывода справки;
  • Esc . — перебор справочных экранов, Esc , — перебор в обратном направлении.
  • Jpico:
    • ^G . — включение/отключение режима вывода справки;
    • Esc . — перебор справочных экранов, Esc , — перебор в обратном направлении.
  • Jmacs:
    • ^Х Н . — включение/отключение режима вывода справки;
    • ^Х . — перебор справочных экранов, ^Х , — перебор в обратном направлении.
  • Jstar:
    • ^J H . — включение/отключение режима вывода справки;
    • Esc . — перебор справочных экранов, Esc , — перебор в обратном направлении.
    См. также joe(1).



    Одна из приятных особенностей JOE заключается в том, что программа работает с копией исходного файла. Оригинал сохраняется в виде резервной копии (впрочем, эта возможность тоже настраивается и ее можно отключить в .joerc).
    См. также joe(1); раздел 6.4.
    6.5. Копирование текста между файлами в JOE


    Сохранение всех изменений в отдельном файле окажет вам неоценимую помощь. Учтите, что .joercprefs не замещает .joerc — параметры, явно включенные или отключенные в .joerc, сохраняют свое состояние, что бы ни говорилось в .joercprefs. Однако параметры .joerc, начинающиеся с пробела, игнорируются и потому могут включаться и отключаться в .joercprefs. См. также
    joe(1).



    Файл ~/. joerc очень велик; возможно, вам будет удобнее отобразить только неактивные параметры. Чтобы отобрать их, воспользуйтесь командой фильтрации JOE:
    ^K / $ grep '^[space]]'
    Теперь вы сразу увидите неактивные команды и сможете скопировать те из них, которые хотите активировать, в файл ~/.joercprefs. Вы также можете отобразить только активные параметры:
    $ grep '^[^[:space:]]'
    Команда ^K X сохраняет ~/.joercprefs и завершает работу. Теперь изменения хранятся отдельно от основного файла, что упрощает их дальнейшее отслеживание и редактирование.
    См. также joe(1).



    Некоторые полезные команды, выполняемые с блоками текста:
    • ^K B, ^K K — пометка/снятие пометки с начала и конца блока;
    • ^K M - перемещение блока в текущую позицию курсора;
    • ^K C — копирование блока в текущую позицию курсора;



    Хотя JOE не обладает собственной поддержкой мыши, вы можете копировать и вставлять данные из других приложений мышью в сеансах X. Это функция тер-
    6.9. Быстрое изучение Vim минала, а не JOE. Используйте классический метод Unix: выделите текст мышью, а затем щелкните средней кнопкой мыши. Комбинации клавиш ^V и ^C имеют другой смысл в JOE.
    См. также joe(1).



    Возможно, из учебного курса вы узнаете все команды, которые вам когда-либо понадобятся. За дополнительной информацией о миллионах возможностей Vim обратитесь к превосходному руководству пользователя Брэма Муленаара (Bram Moolenaar), автора Vim. Руководство включено во внутреннюю справочную систему Vim, а также существует в нескольких электронных версиях по адресу http://vimdoc.sourceforge.net (HTML для поиска, PDF и HTML для печати).
    Чтобы вызвать руководство пользователя в Vim, введите команду
    :help
    Клавиши управления курсором используются для перебора оглавления, а комбинация ^] открывает главу.
    Вы также можете сразу перейти к конкретной теме:
    :help quickref :help tutor :help usr_06.txt
    Поиск по критерию с выводом списка вариантов:
    :help vimrc
    Вместо Enter нажмите ^D. Результат будет выглядеть примерно так:
    :help vimrc vimrc vimrc-intro system-vimrc _gvimrc vimrc vimrc-filetype gvimrc :mkvimrc _vimrc vimrc-example.vim .gvimrc


    Сокращения могут использоваться для автоматического исправления орфографии (раздел 6.6) — просто определите свои стандартные ошибки в виде сокращений. Этот прием лучше всего подходит для исправления опечаток (например, teh вместо the).
    См. также Справочная система vim (:help map.txt); раздел 6.12.
    6.11. Привязка команд к клавишам


    Самыми безопасными для привязки являются клавиши F2-F12 и Shift+F2-F12. Но на практике они обычно быстро заканчиваются. Комбинации «запятая+буква»,



    Во время чтения документации Vim его гибкость и колоссальные возможности настройки производят огромный эффект. Начните с самого начала, как показано ниже, и не обращайте внимания на хитроумные возможности «для фанатов» до тех пор, пока они вам не потребуются.
    6.13. Быстрое перемещение в Vim В следующем примере файла ~/.vimrc продемонстрированы три важных возможности Vim: настройка параметров запуска, сокращений и клавиатурных привязок. Апостроф является признаком строки комментария.
    ''''''''''''''''''''''''''''''''''''''''''''''' '' Персональный файл vimrc. создан 4/22/2004 '' ''''''''''''''''''''''''''''''''''''''''''''''' '' Отключение режима совместимости с vi '' для использования всех возможностей Vim set nocompatible '' 4 пробела на позицию табуляции set tabstop=4 '' Расширенные возможности забоя set backspacedndent.eol.start '' Выделение синтаксиса включено по умолчанию syntax on '' Автоматическое определение типа файла '' для выделения синтаксиса. filetype plugin indent on ''''''''''''''''''''''''''''''''''''''''''''''' '' Сокращения '' ''''''''''''''''''''''''''''''''''''''''''''''' :ab Qu Carl a Has Gone Fishing, Back Much Later :ab Co Copyright (c) 2004 Carla Schroder all rights reserved :ab Em carla@bratgrrl.com :ab Wb http://tuxcomputing.com ''''''''''''''''''''''''''''''''''''''''''''''' '' Добавление тегов HTML в режиме вставки '' ''''''''''''''''''''''''''''''''''''''''''''''' :map! .ah <A href=""> :map! .a </A> :map! .b <B><Esc>ea</B><Esc>a :map! .i <I><Esc>ea</I><Esc>a :map! .l <LI><Esc>ea</LI><Esc>a
    Все изменения, внесенные в ~/.vimrc, вступают в силу при следующем запуске Vim. См. также
    vim(1); справочная система vim (:help vimrc, :help usr_05.txt, :help ab).



    Файлы сеансов рекомендуется хранить в отдельном каталоге, чтобы их можно было легко найти при необходимости.
    См. также Справочная система vim (:help session, :help usr_08.txt).



    Далее приводится упрощенный пример выходных данных :version. Знаком «+» помечены включенные возможности, а знаком «-» — отключенные. По этим данным можно легко определить, придется ли вам перекомпилировать Vim, чтобы использовать нужную возможность.
    :version VIM - Vi IMproved 6.2 (2003 Jun 1. compiled Apr 1 2004 23:39:33) Included patches: 1-298. 300-426


    В Red Hat, Fedora, Mandrake и Slackware смена уровня выполнения является одним из способов закрытия сеанса X, так как на уровне 3 загружается текстовая



    В Debian стандартные уровни выполнения 2-5 не отличаются друг от друга; они загружают либо текстовую консоль, либо графическую программу входа в систему в зависимости от того, что было выбрано во время установки. Уровень выполнения 2 используется в Debian по умолчанию. Изменение конфигурации уровней выполнения Debian рассматривается в разделе 7.5.
    См. также inittab(5); раздел 7.5.



    Другие способы завершения сеансов X лучше подходят для «зависания» X. Любой пользователь может ввести команду «xkill» нажатием клавиш Ctrl+Alt+Backspace.
    В графических программах входа в систему (xdm, kdm или gdm) пользователь root может прервать работу программы. Это автоматически прервет работу всех пользователей:
    # /etc/init.d/gdm stop См. также
    Раздел «Введение» настоящей главы; раздел 7.3; раздел 7.6.



    Помните, что update-rc.d работает с именами сценариев в /etc/init.d. Для тестирования команд update-rc.d используется ключ -n:
    # update-rc.d -f -n kdm remove
    При необходимости можно удалить сценарии из init.d при помощи ключа remove:
    # update-rc.d --purge kdm remove
    Но обычно лучше оставить их на случай, если они понадобятся в будущем.
    См. также update-rc.d(8).



    В Gnome используется экранный менеджер gdm, в X — xdm, а в KDE — kdm. Довольно часто встречаются системы, в которых установлены все три программы. xdm обладает минимальной функциональностью; в сущности, программа всего лишь предоставляет графическое окно входа. И kdm, и gdm поддерживают ряд дополнительных возможностей входа и завершения работы, включая меню для выбора оконного менеджера.



    Утилита chkconfig берет начальный приоритет и уровень выполнения из стартового сценария программы. Например, в файле /etc/rc.d/init.d/cups присутствует следующий фрагмент:
    # Информация Linux chkconfig # chkconfig 2345 90 10
    Он означает, что chkconfig запускается на уровнях 2, 3, 4 и 5, с приоритетом 90 для запуска и приоритетом 10 для остановки. Конечно, вы можете изменить эти параметры по своему усмотрению. Либо отредактируйте исходный сценарий из init.d, либо просто переименуйте ссылки:
    # mv /etc/rc.d/rc3.d/S90cups /etc/rc.d/rc3.d/S45cups См. также
    chkconfig(8); The Red Hat Customization Guide (http://www.redhat.com/docs/manuaLs/ linux/).



    Этот способ настройки чуть более трудоемок, но ничего страшного не происходит — вы просто создаете «мягкие» ссылки. Помните, что для каждой запускаемой службы также необходимо создать записи, которые будут останавливать ее на всех уровнях выполнения, на которых она не должна работать. Кроме того, некоторые службы на уровнях 0, 1 и 6 «убивать» не следует, поскольку это важные системные службы, создаваемые Linux. Сохраните информацию о таких службах, прежде чем вносить какие-либо изменения:
    $ ls /etc/rc0.d /etc/rc1.d /etc/rc6.d > original-runlevels.txt
    На уровнях 2-5 можно делать все, что угодно, но будьте внимательны и не испортите другие уровни.
    См. также ln(1).



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



    Помните, что процесс выключения всегда должен быть контролируемым. Всем компьютерам, в том числе и машинам с системой Linux, приходится проделать немалый объем работы, чтобы питание можно было безопасно выключить. Система должна завершить работу служб, демонтировать файловые системы и сбросить буферы на диск.
    Команды shutdown, poweroff и halt выполняются только привилегированным пользователем root. Ограничение выглядит довольно глупо, потому что у любого оконного менеджера и среды настольной системы имеется собственное меню выключения, а любой пользователь, находящийся поблизости от компьютера, может нажать кнопку питания. Но такова жизнь, и с этим приходится смириться. Возможный выход — предоставить ограниченные привилегии для выполнения команд выключения командой sudo. Другое решение основано на создании специальной группы пользователей, которым разрешено выключение.
    См. также shutdown(8), poweroff(8); раздел 8.20; раздел 8.21.



    Если файл /etc/shutdown. allow не существует, создайте его.
    7.12. Автоматическое выключение компьютера См. также shutdown(8).



    Файл /etc/ crontab идеально подходит для планировки простых заданий. Обратите внимание: в файле имеется поле имени, поэтому любой пользователь может создавать в нем свои записи. Тем не менее редактирование файла /etc/crontab разрешается только пользователю root.
    Другой способ основан на использовании команды crontab:
    # crontab -u root -e
    Команда открывает файл crontab для пользователя root; отредактируйте и сохраните его. Не пытайтесь задать имя файла — в процессе редактирования файл является временным, а его имя автоматически задается crontab при сохранении. Файл сохраняется в каталоге /var/spool/cron/crontabs.
    См. также cron(8), crontab(1), crontab(5).



    Схемы нумерации (вроде представленного ранее примера «Trainers/Coaches/Players») хорошо подходят для небольшой и относительно статичной пользовательской базы. В больших организациях с частыми изменениями они приносят больше вреда, чем пользы. В таких ситуациях лучше направить усилия на правильное распределение пользователей по группам и своевременное внесение изменений.
    Как всегда, между дистрибутивами существуют мелкие, но любопытные различия. Коды UID и GID во всех версиях Linux лежат в интервале от 0 до 65534.
    Debian:
    • 0-99 — системные учетные записи;
    • 100-999 — установленные пользователем программы и демоны (Postfix, Fetchmail, gdm, dictd и т.д.);
    • 1000-29999 — учетные записи обычных пользователей;
    • 30000-65533 — согласно документации Debian, коды зарезервированы, но при желании вы можете их использовать;
    • 65534 — пользователь nobody, учетная запись без прав и разрешений.
    Red Hat:
    • 0-499 — коды зарезервированы для системного использования;
    • 500-60000 — обычные пользователи;
    • 65534 — пользователь nobody, учетная запись без прав и разрешений.
    В других дистрибутивах используются аналогичные схемы нумерации. Экспериментируйте с диапазонами, зарезервированными для учетных записей обычных пользователей, но не трогайте системные диапазоны.
    См. также awk(1); раздел 8.17; Debian Policy Manual, глава 9.2.2 (http://www.debian.org/doc/debian-policy/); Red Hat Linux Reference Pocket Guide (http://www.redhat.com/docs/manuals/linux/).


    Содержание раздела







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