<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://aidalinux.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Angelo</id>
	<title>Ай да Linux Wiki - Вклад участника [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://aidalinux.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Angelo"/>
	<link rel="alternate" type="text/html" href="https://aidalinux.ru/w/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Angelo"/>
	<updated>2026-05-09T08:09:13Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=PortSentry_-_%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F_%D1%81%D0%BA%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8E_%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2&amp;diff=101</id>
		<title>PortSentry - средство противодействия сканированию портов</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=PortSentry_-_%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F_%D1%81%D0%BA%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8E_%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2&amp;diff=101"/>
		<updated>2011-03-24T16:44:41Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Руководства]]&lt;br /&gt;
[[Категория:Net]]&lt;br /&gt;
[[Категория:Безопасность]]&lt;br /&gt;
&lt;br /&gt;
= Введение =&lt;br /&gt;
&lt;br /&gt;
Сканирование портов является одним из самых распространенных и простых способов узнать, какая операционная система установлена на компьютере, какие службы запущены в данный момент и получить другую информацию о компьютере, подключенном к Internet , которая может быть использована для взлома и проникновения. Существует много программ для обнаружения сканирования портов. Но обнаружения не достаточно. Должна последовать адекватная реакция. &amp;quot;Адекватная реакция&amp;quot; может заключаться в отправке в сторону сканирующего тебя человека неправильного фрагментированного пакета, ответного сканирования портов, установки на него firewall'а и т.д. Также желательно, чтоб он получил недостоверную информацию об открытых портах на твоем компьютере. Все это и многое другое позволяет делать прекрасная программа Psionic Software Portsentry.&lt;br /&gt;
&lt;br /&gt;
Когда сканирование обнаружено могут последовать следующие ответы:&lt;br /&gt;
*занесение информации об инциденте в системный журнал через syslog().&lt;br /&gt;
*Компьютер замеченный в сканировании автоматически заносится в файл /etc/host.deny для TCP Wrappers.&lt;br /&gt;
*Локальный компьютер автоматически перенастраивается, чтобы направлять весь трафик от атакующего на несуществующий компьютер.&lt;br /&gt;
*Локальный компьютер автоматически перенастраивается, чтобы блокировать все пакеты от атакующего пакетным фильтром.&lt;br /&gt;
&lt;br /&gt;
'''''Цель этой программы''''' – дать администратору информацию о том, что их сервер исследуется.&lt;br /&gt;
&lt;br /&gt;
= Установка =&lt;br /&gt;
&lt;br /&gt;
'''''Внимание:''''' в версии portsentry 1.2 было найдено несколько багов, и поэтому, я рекомендую использовать версию 1.2-r1. Хотя и там ситуация не изменилась. Проблема заключалась в некорректной остановке демона. Ниже будет приведено решение данной проблемы.&lt;br /&gt;
&lt;br /&gt;
Для этого необходимо:&lt;br /&gt;
&lt;br /&gt;
  echo net-analyzer/portsentry ~x86 &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
&lt;br /&gt;
Устанавливаем программу:&lt;br /&gt;
&lt;br /&gt;
  emerge -av net-analyzer/portsentry&lt;br /&gt;
&lt;br /&gt;
= Настройка =&lt;br /&gt;
&lt;br /&gt;
'''''Внимание:''''' если у вас проблемы с остановкой или перезапуском демона, то необходимо поправить файл ''/etc/init.d/portsentry'', а точнее разделы ''stop'' и ''restart'':&lt;br /&gt;
&lt;br /&gt;
  stop() {&lt;br /&gt;
        ebegin &amp;quot;Stopping portsentry&amp;quot;&lt;br /&gt;
        start-stop-daemon --stop --quiet --exec /usr/bin/portsentry&lt;br /&gt;
        eend $?&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  restart() {&lt;br /&gt;
          $stop&lt;br /&gt;
          $start&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Режим работы ==&lt;br /&gt;
&lt;br /&gt;
Portsentry возможно запускать в трех режимах для каждого протокола. Одновременно можно использовать только один режим работы на одном протоколе. &lt;br /&gt;
&lt;br /&gt;
Режим работы задается в файле:&lt;br /&gt;
&lt;br /&gt;
  /etc/conf.d/portsentry&lt;br /&gt;
&lt;br /&gt;
Достаточно раскомментировать необходимую стройку.&lt;br /&gt;
&lt;br /&gt;
=== Classic ===&lt;br /&gt;
&lt;br /&gt;
Работая в данном режиме Portsentry открывает порты, указанные в TCP_PORTS или UDP_PORTS и находится в состоянии ожидания соединения. При попытке подключения к перечисленному порту происходит блокирование удаленного хоста. В этом режиме  Portsentry не реагирует на Stealth-сканирование. Данный режим работы задается опциями командной строки: -tcp и -udp , для TCP и UDP-портов соответственно.&lt;br /&gt;
&lt;br /&gt;
=== Enhanced Stealth Scan Detection ===&lt;br /&gt;
&lt;br /&gt;
Данный режим используется для проверки перечисленных в TCP_PORTS или UDP_PORTS портов на предмет подключения или сканирования. Отличительная черта, то что палит практически все типы Stealth-сканирования, а не ограничивается только сканирование подключением. Порты, в отличие от предыдущего режима открытыми не держит, посему атакующий получает достоверную информацию об открытых портах. Задается ключиками командной строки: -stcp и -sudp , для TCP и UDP-портов соответственно.&lt;br /&gt;
&lt;br /&gt;
=== Advanced Stealth Scan Detection ===&lt;br /&gt;
&lt;br /&gt;
Данный режим используется для проверки всех портов входящих в пул от 1 до ADVANCED_PORT_TCP (для TCP) или ADVANCED_PORT_UDP (для UDP). Порты, открытые работающими на хосте программами и перечисленные в ADVANCED_EXLUDE_TCP(для TCP) или ADVANCED_EXCLUDE_UDP(для UDP) не проверяются. Любой хост, попытавшийся подключится к порту из этого промежутка, мгновенно блокируется. Наиболее удобный для использования метод, т.к. реакция на сканирование или попытку подключения у данного метода самая быстрая, а также в этом режиме используется гораздо меньше процессорного времени, чем в остальных. Задается ключами из коммандной строки: -atcp и -audp , TCP и UDP-портов соответственно.&lt;br /&gt;
&lt;br /&gt;
== Конфигурация ==&lt;br /&gt;
&lt;br /&gt;
Приступаем к правке основный конфигурационных файлов. Будем отталкиваться от доступных файлов примеров:&lt;br /&gt;
&lt;br /&gt;
  cp /etc/portsentry/portsentry.conf.sample /etc/portsentry/portsentry.conf&lt;br /&gt;
  cp /etc/portsentry/portsentry.ignore.sample /etc/portsentry/portsentry.ignore&lt;br /&gt;
&lt;br /&gt;
Думаю, достаточно привести пример конфигурационного файла, а разобраться совсем просто.&lt;br /&gt;
&lt;br /&gt;
 #######################&lt;br /&gt;
 # Конфигурации портов #&lt;br /&gt;
 #######################&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Несколько примеров настроены для классического и основного Stealth &lt;br /&gt;
 # режимов&lt;br /&gt;
 #&lt;br /&gt;
 # Я люблю всегда сохранить некоторые порты в нижнем конце диапазона.&lt;br /&gt;
 # Это позволит быстро обнаружить последовательное сканирование портов &lt;br /&gt;
 # и обычно эти порты не используются (например, tcpmux порт 1)&lt;br /&gt;
 #&lt;br /&gt;
 # ** Пользователи X-Windows **: Если вы запускаете X на вашем сервере, вам&lt;br /&gt;
 # нужно быть уверенным, что PortSentry не привязан к порту 6000 (или порту&lt;br /&gt;
 # 2000 для пользователей OpenWindows).&lt;br /&gt;
 # Сделав это вы обеспечите правильный старт X-клиента.&lt;br /&gt;
 #&lt;br /&gt;
 # Эти привязанные порты игнорируются для режима Advanced Stealth Scan&lt;br /&gt;
 # Detection Mode.&lt;br /&gt;
 #&lt;br /&gt;
 # Раскомментируйте это для чрезвычайного анализа:&lt;br /&gt;
 TCP_PORTS=&amp;quot;1,7,9,11,15,70,79,80,109,110,111,119,138,139,143,512,513,514,515,540,635,1080,1524,2000,2001,4000,4001,5742,6000,6001,6667,12345,12 346,20034,27665,30303,32771,32772,32773,32774,31337,40421,40425,49724,54320&amp;quot;&lt;br /&gt;
 UDP_PORTS=&amp;quot;1,7,9,66,67,68,69,111,137,138,161,162,474,513,517,518,635,640,641,666,700,2049,31335,27444,34555,32770,32771,32772,32773,32774,3133 7,54321&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # Используйте их, если вы только хотите знать:&lt;br /&gt;
 #TCP_PORTS=&amp;quot;1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,20034,27665,31337,32771,32772,32773,32774,40421,49724,54320&amp;quot;&lt;br /&gt;
 #UDP_PORTS=&amp;quot;1,7,9,69,161,162,513,635,640,641,700,37444,34555,31335,32770,32771,32772,32773,32774,31337,54321&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # Используйте это только для bare-bones&lt;br /&gt;
 #TCP_PORTS=&amp;quot;1,11,15,110,111,143,540,635,1080,1524,2000,12345,12346,20034,32771,32772,32773,32774,49724,54320&amp;quot;&lt;br /&gt;
 #UDP_PORTS=&amp;quot;1,7,9,69,161,162,513,640,700,32770,32771,32772,32773,32774,31337,54321&amp;quot;&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Опции Advanced Stealth Scan Detection #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 #&lt;br /&gt;
 # Это номера портов, которые PortSentry должен контролировать в &lt;br /&gt;
 # Advanced mode.&lt;br /&gt;
 # Любые порты &amp;quot;ниже&amp;quot; этого числа будут контролироваться. Оставьте это&lt;br /&gt;
 # для контроля всего ниже 1023.&lt;br /&gt;
 #&lt;br /&gt;
 # На многих Linux системах нельзя привязать порты выше 61000. Это&lt;br /&gt;
 # потому, что эти порты используются как часть IP маскарадинга. Я не &lt;br /&gt;
 # рекомендую вам привязываться к этим номерам портов. Реальность: Я не &lt;br /&gt;
 # рекомендую использовать порты за 1023, так как это будет приводить к &lt;br /&gt;
 # ошибочным предупреждениям. Вы были предупреждены!&lt;br /&gt;
 # Не пишите мне если у вас возникли проблемы, потому что я просто &lt;br /&gt;
 # высказываю вам свое мнение. Не используйте выше 1023 порта.&lt;br /&gt;
 #&lt;br /&gt;
 # &lt;br /&gt;
 ADVANCED_PORTS_TCP=&amp;quot;1024&amp;quot;&lt;br /&gt;
 ADVANCED_PORTS_UDP=&amp;quot;1024&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # Это поле говорит PortSentry, что порты (за исключением прослушиваемых &lt;br /&gt;
 # демонами) игнорируются. Это полезно для услуг, вызываемых ident, &lt;br /&gt;
 # например FTP, SMTP и wrappers, которые могут остаться не &lt;br /&gt;
 # запущенными.&lt;br /&gt;
 #&lt;br /&gt;
 # По установленным здесь портам PortSentry будет просто не отвечать&lt;br /&gt;
 # на входящие запросы. Фактически, PortSentry будет их обрабатывать как &lt;br /&gt;
 # будто они привязаны к демонам. Заданные по умолчанию порты могут &lt;br /&gt;
 # выступать в отчетах, как возможно ложные сигналы тревоги и &lt;br /&gt;
 # вероятно должны быть оставлены для всез кроме особо изолированных систем&lt;br /&gt;
 #&lt;br /&gt;
 # TCP ident и NetBIOS сервисы&lt;br /&gt;
 ADVANCED_EXCLUDE_TCP=&amp;quot;113,139&amp;quot;&lt;br /&gt;
 # Default UDP route (RIP), NetBIOS, bootp broadcasts.&lt;br /&gt;
 ADVANCED_EXCLUDE_UDP=&amp;quot;520,138,137,67&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
  ######################&lt;br /&gt;
 # Конфигурационные файлы #&lt;br /&gt;
 ######################&lt;br /&gt;
 #&lt;br /&gt;
 # Игнорируемые хосты&lt;br /&gt;
 IGNORE_FILE=&amp;quot;/etc/portsentry/portsentry.ignore&amp;quot;&lt;br /&gt;
 # Хосты, которым было отказано в доступе (из истории работы)&lt;br /&gt;
 HISTORY_FILE=&amp;quot;/var/log/portsentry/portsentry.history&amp;quot;&lt;br /&gt;
 # Компьютеры доступ которым заблокирован только в этой сессии &lt;br /&gt;
 # (времмено до следующей перезагрузки)&lt;br /&gt;
 BLOCKED_FILE=&amp;quot;/var/log/portsentry/portsentry.blocked&amp;quot;&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Различные конфигурационные опции #&lt;br /&gt;
 ##############################&lt;br /&gt;
 #&lt;br /&gt;
 # Определять ли &amp;quot;имя&amp;quot; атакующего хоста используя DNS Name resolution &lt;br /&gt;
 # 1 – определять&lt;br /&gt;
 # 0 – не определять&lt;br /&gt;
 RESOLVE_HOST = &amp;quot;0&amp;quot;&lt;br /&gt;
 ###################&lt;br /&gt;
 # Опции ответов #&lt;br /&gt;
 ###################&lt;br /&gt;
 # Опции ликвидации атакующего. Каждое из этих действий будет&lt;br /&gt;
 # выполняться если будет обнаружена атака. Если вы не хотите отдельную&lt;br /&gt;
 # опцию, то комментируйте ее и она будет пропущена.&lt;br /&gt;
 #&lt;br /&gt;
 # Переменная $TARGET$ будет замещена целью атаки, когда атака обнаружена.&lt;br /&gt;
 # Переменная $PORT$ будет заменятьс портом, который был сканирован.&lt;br /&gt;
 #&lt;br /&gt;
 ##################&lt;br /&gt;
 # Опции игнорирования #&lt;br /&gt;
 ##################&lt;br /&gt;
 # Эти опции позволяют вам допустить автоматический параметры ответа для &lt;br /&gt;
 # UDP/TCP. Это бывает полезно, если вы хотите получить предупреждение о &lt;br /&gt;
 # соединениях, но не хоти реагировать на определенный протокол.&lt;br /&gt;
 # Для предотвращения возможных Denial of service атак через UDP и &lt;br /&gt;
 # определение stealth сканирования для TCP, вы можете пожелать отключить &lt;br /&gt;
 # блокирование, но оставить предупреждение.&lt;br /&gt;
 # Лично я предпочитаю ждать начала возникновения проблем до того как&lt;br /&gt;
 # что-нибудь предпринять, так как большинство атакующих ничего не делают.&lt;br /&gt;
 # Третья опция позволяет вам запускать внешнюю команду в случае &lt;br /&gt;
 # сканирования. Это может быть полезно, например, для администраторов, &lt;br /&gt;
 # которые хотят блокировать TCP, но для UDP будет высылаться &lt;br /&gt;
 # предупреждения и т.д.&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # 0 = Не блокировать UDP/TCP сканирование.&lt;br /&gt;
 # 1 = Блокировать UDP/TCP сканирование.&lt;br /&gt;
 # 2 = Запуск внешней команды (KILL_RUN_CMD)&lt;br /&gt;
 BLOCK_UDP=&amp;quot;1&amp;quot;&lt;br /&gt;
 BLOCK_TCP=&amp;quot;1&amp;quot;&lt;br /&gt;
 ###################&lt;br /&gt;
 # Сброс маршрутов #&lt;br /&gt;
 ###################&lt;br /&gt;
 # Эти команды используются для удаления маршрута или&lt;br /&gt;
 # хоста в локальную таблицу фильтрации.&lt;br /&gt;
 #&lt;br /&gt;
 # Шлюз (333.444.555.666) идеально должен быть неработающий хост&lt;br /&gt;
 # в локальной подсети. На некоторых хостах вместо него используется&lt;br /&gt;
 # localhost (127.0.0.1), что дает тот же эффект. ЗАМЕТИМ ЧТО &lt;br /&gt;
 # 333.444.555.66 НЕ БУДЕТ РАБОТАТЬ, ИЗМЕНИТЕ ЭТО!!&lt;br /&gt;
 #&lt;br /&gt;
 # ВСЕ ОПЦИИ ОТКЛЮЧЕНИЯ МАРШРУТОВ ИЗНАЧАЛЬНО &lt;br /&gt;
 # ЗАКОММЕНТИРОВАНЫ. Убедитесь, что вы раскомменировали&lt;br /&gt;
 # правильные строки для вашей ОС. Если вашей ОС нет в списке&lt;br /&gt;
 # и вы точно знаете команды сбрасывающие маршруты, то,&lt;br /&gt;
 # пожалуйста, пришлите их мне. ТОЛЬКО ОДНА KILL_ROUTE ОПЦИЯ&lt;br /&gt;
 # МОЖЕТ БЫТЬ ИСПОЛЬЗОАНА ОДНОВРЕМЕННО, ТАК ЧТО &lt;br /&gt;
 # НЕ РАСКОММЕНТИРУЙТЕ БОЛЬШЕ ОДНОЙ СТРОКИ.&lt;br /&gt;
 #&lt;br /&gt;
 # ЗАМЕЧАНИЕ: route команды это наименее оптимальная дорога блокирования &lt;br /&gt;
 # и она не предоставляет полной защиты от UDP атак и &lt;br /&gt;
 # будет спокойно создавать предупреждения для UDP и stealth сканирований.&lt;br /&gt;
 # Я всегда рекомендую вам использовать пакетный фильтр, потому что это&lt;br /&gt;
 # соответствует замыслу.&lt;br /&gt;
 #&lt;br /&gt;
 # Общий&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/sbin/route add $TARGET$ 333.444.555.666&amp;quot;&lt;br /&gt;
 # Общий для Linux&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/sbin/route add -host $TARGET$ gw 333.444.555.666&amp;quot;&lt;br /&gt;
 # Новые версии Linux поддерживают сейчас флаг reject. Это лучше, чем&lt;br /&gt;
 # вышестоящая опция&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/sbin/route add -host $TARGET$ reject&amp;quot;&lt;br /&gt;
 # Общие для BSD (BSDI, OpenBSD, NetBSD, FreeBSD)&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/sbin/route add $TARGET$ 333.444.555.666&amp;quot;&lt;br /&gt;
 # Общий для Sun&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/usr/sbin/route add $TARGET$ 333.444.555.666 1&amp;quot;&lt;br /&gt;
 # NEXTSTEP&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/usr/etc/route add $TARGET$ 127.0.0.1 1&amp;quot;&lt;br /&gt;
 # FreeBSD&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;route add -net $TARGET$ -netmask 255.255.255.255 127.0.0.1 -blackhole&amp;quot;&lt;br /&gt;
 # Digital UNIX 4.0D (OSF/1 / Compaq Tru64 UNIX)&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/sbin/route add -host -blackhole $TARGET$ 127.0.0.1&amp;quot;&lt;br /&gt;
 # Общие для HP-UX&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/usr/sbin/route add net $TARGET$ netmask 255.255.255.0 127.0.0.1&amp;quot;&lt;br /&gt;
 ##&lt;br /&gt;
 # Использование пакетного фильтра более предпочтительный метод. Ниже&lt;br /&gt;
 # перечисленные строки подходят для многих ОС. Помните, вы можете&lt;br /&gt;
 # раскомментировать только одну строку.&lt;br /&gt;
 # Опции KILL_ROUTE.&lt;br /&gt;
 ##&lt;br /&gt;
 # Linux с поддержкой ipfwadm&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/sbin/ipfwadm -I -i deny -S $TARGET$ -o&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #Linux с поддержкой ipfwadm (без логгирования)&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/sbin/ipfwadm -I -i deny -S $TARGET$&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #Linux с поддержкой ipchain&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/sbin/ipchains -I input -s $TARGET$ -j DENY -l&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #Linux с поддержкой ipchain (без логгирования)&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/sbin/ipchains -I input -s $TARGET$ -j DENY&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #Linux с поддержкой iptables&lt;br /&gt;
 KILL_ROUTE=&amp;quot;/sbin/iptables -I portscan_deny -s $TARGET$ -j DROP&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #Linux с поддержкой iptables support с лимитированием и логгирование&lt;br /&gt;
 # лимитирование пакетов обеспечит защиту от DOS атак&lt;br /&gt;
 # KILL_ROUTE=&amp;quot;/sbin/iptables -I INPUT -s $TARGET$ -j DROP &amp;amp;&amp;amp; /sbin/iptables -I INPUT -s $TARGET$ -m limit –limit 3/minute –limit-burst 5 -j LOG –log-level DEBUG –log-prefix 'Portsentry: dropping: '&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # For those of you running FreeBSD (and compatible) you can&lt;br /&gt;
 # use their built in firewalling as well.&lt;br /&gt;
 #&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/sbin/ipfw add 1 deny all from $TARGET$:255.255.255.255 to any&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # For those running ipfilt (OpenBSD, etc.)&lt;br /&gt;
 # NOTE THAT YOU NEED TO CHANGE external_interface TO A VALID INTERFACE!!&lt;br /&gt;
 #&lt;br /&gt;
 #KILL_ROUTE=&amp;quot;/bin/echo 'block in log on external_interface from $TARGET$/32 to any' | /sbin/ipf -f -&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
 ###############&lt;br /&gt;
 # TCP Wrappers#&lt;br /&gt;
 ###############&lt;br /&gt;
 # Этот текст описывает внесение в файл hosts.deny для использования wrappers.&lt;br /&gt;
 # Зжесь приводятся два формата TCP wrappers:&lt;br /&gt;
 #&lt;br /&gt;
 # Формат 1: Старый стиль – по умолчанию, когда хост не допускает обработки&lt;br /&gt;
 # параметров.&lt;br /&gt;
 #&lt;br /&gt;
 #KILL_HOSTS_DENY=&amp;quot;ALL: $TARGET$&amp;quot;&lt;br /&gt;
 # Формат 2: Новый стиль √ включены расширенной обработки.&lt;br /&gt;
 # Вы можете просмотреть опции расширенной обработки, чтобы&lt;br /&gt;
 # быть уверенными, что все перед символами &amp;quot;%&amp;quot; стоит символ &amp;quot;\&amp;quot;&lt;br /&gt;
 # (например, \%c \%h )&lt;br /&gt;
 #&lt;br /&gt;
 #KILL_HOSTS_DENY=&amp;quot;ALL: $TARGET$ : DENY&amp;quot;&lt;br /&gt;
 ###################&lt;br /&gt;
 # Внешние команды #&lt;br /&gt;
 ###################&lt;br /&gt;
 # Эта команда выполняется когда хост подключен, это может быть то, что вам&lt;br /&gt;
 # нужно (пэйджер и т.д.). Эта команда выполняется перед очисткой маршрута.&lt;br /&gt;
 #&lt;br /&gt;
 # Я НЕ РЕКОМЕНДУЮ ПОМЕЩАТЬ КАКИЕ-ЛИБО КАРАТЕЛЬНЫЕ &lt;br /&gt;
 # ДЕЙСТВИЯ ПРОТИВ ХОСТА СКАНИРУЮЩЕГО ВАС. &lt;br /&gt;
 #&lt;br /&gt;
 #TCP/IP это протокол без подтверждения подлинности и люди могут организовать&lt;br /&gt;
 # сканирование из ниоткуда. Единственное, что можно безопасно запустить&lt;br /&gt;
 # это скрипт обратной проверки, который использует классический -tcp режим. &lt;br /&gt;
 # Этот режим требует полного соединения и очень труден для обмана (spoof).&lt;br /&gt;
 #&lt;br /&gt;
 # Переменная KILL_RUN_CMD_FIRST должна быть выставлена в &amp;quot;1&amp;quot; для запуска внешней команды&lt;br /&gt;
 # ДО блокирования. Установите в &amp;quot;0&amp;quot; для выполнения команды ПОСЛЕ блокирования&lt;br /&gt;
 #&lt;br /&gt;
 #KILL_RUN_CMD_FIRST = &amp;quot;0&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 KILL_RUN_CMD=&amp;quot;/usr/home/script/work/scan_port_mail.sh $TARGET$ $PORT$ $MODE$&amp;quot;&lt;br /&gt;
 # for examples see /usr/share/doc/portsentry/examples/&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Значение триггеров сканирования #&lt;br /&gt;
 #####################&lt;br /&gt;
 # Введите число соединений к портам, когда вам будет дано предупреждение. &lt;br /&gt;
 # По умолчанию значение равно 0 – незамедлительная реакция.&lt;br /&gt;
 # Значения 1 или 2 будут уменьшать количество ложных срабатываний. В более &lt;br /&gt;
 # высоком значение нет необходимости. Это значение должно быть определено, &lt;br /&gt;
 # но как правило можно оставить 0.&lt;br /&gt;
 #&lt;br /&gt;
 # ЗАМЕЧАНИЕ: Если вы используете продвинутые опции определения, вам&lt;br /&gt;
 # нужно быть внимательным, чтобы не создать ситуацию &amp;quot;спускового крючка,&lt;br /&gt;
 # требующего легкого нажатия&amp;quot;. Поскольку расширенный режим будет &lt;br /&gt;
 # реагировать на любой удаленный компьютер соединяющийся с интервалом&lt;br /&gt;
 # ниже определенного здесь, вы при определенных обстоятельствах &lt;br /&gt;
 # действительно разорвете что-нибудь. (например, кто-то невинно пытается &lt;br /&gt;
 # соединиться с вами через SSL [TCP порт 443] и вы сразу блокируете его). &lt;br /&gt;
 # Так что будьте внимательны.&lt;br /&gt;
 #&lt;br /&gt;
 SCAN_TRIGGER=&amp;quot;0&amp;quot;&lt;br /&gt;
 ######################&lt;br /&gt;
 # Секция заголовка (banner) порта #&lt;br /&gt;
 ######################&lt;br /&gt;
 # Введите здесь текст, который вы хотите показать человеку отключаемого &lt;br /&gt;
 # PortSentry. Я не рекомендую насмехаться над человек, так как это может его&lt;br /&gt;
 # разозлить. Оставьте эти строки закомментироваными, чтобы отключить эту &lt;br /&gt;
 # возможность.&lt;br /&gt;
 #&lt;br /&gt;
 # Режим определения Stealth сканирования не использует эту возможность. &lt;br /&gt;
 #&lt;br /&gt;
 #PORT_BANNER=&amp;quot;** UNAUTHORIZED ACCESS PROHIBITED *** YOUR CONNECTION ATTEMPT HAS BEEN LOGGED. GO AWAY.&amp;quot;&lt;br /&gt;
 # EOF&lt;br /&gt;
&lt;br /&gt;
В файле portsentry.ignore мы упоминаем  IP-адреса компьютеров, которые не должны быть блокированы при подключении к отслеживаемому порту. По умолчанию, в файле заданы два IP-адреса: 127.0.0.1 и 0.0.0.0. туда следует добавить внутреннюю сеть и свои сервера.&lt;br /&gt;
&lt;br /&gt;
После этого создаем указанный в конфиге внешний скрипт для отправки почты:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /usr/home/script/work/&lt;br /&gt;
 cd /usr/home/script/work/&lt;br /&gt;
 touch scan_port_mail.sh&lt;br /&gt;
 chmod +x scan_port_mail.sh&lt;br /&gt;
&lt;br /&gt;
  ###################### /usr/home/script/work/scan_port_mail.sh ######################&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # оповещение по почте о попытках сканирования хостов&lt;br /&gt;
 &lt;br /&gt;
 # вводим переменные:&lt;br /&gt;
 main_e_mail=”root@sane4ka.ru”&lt;br /&gt;
 attak_date=”`date +%Y-%m-%d`”&lt;br /&gt;
 attak_time=”`date +%H:%M:%S`”&lt;br /&gt;
 local_mashine=”`uname -n`”&lt;br /&gt;
 &lt;br /&gt;
 # достаём хост с которого сканили&lt;br /&gt;
 hacker_IP=$1&lt;br /&gt;
 scanned_port=$2&lt;br /&gt;
 &lt;br /&gt;
 # определяем DNS-атакующего&lt;br /&gt;
 hacker_DNS=`host ${hacker_IP} | awk ‘{print $5}’`&lt;br /&gt;
 &lt;br /&gt;
 # ваяем тревожную мессагу&lt;br /&gt;
 echo ” обнаружена попытка сканирования .&lt;br /&gt;
 Имя машины:             ${local_mashine}&lt;br /&gt;
 Отсканенные порты:       ${scanned_port}&lt;br /&gt;
 &lt;br /&gt;
 Прикрепляем данные атакующего:&lt;br /&gt;
 IP:     ${hacker_IP}&lt;br /&gt;
 DNS:    ${hacker_DNS}&lt;br /&gt;
 =======&lt;br /&gt;
 Атака заблокирована.&lt;br /&gt;
 ” | mail -s port_scanned_on_${local_mashine} ${main_e_mail}&lt;br /&gt;
 &lt;br /&gt;
 ############################&lt;br /&gt;
&lt;br /&gt;
'''''Внимание''''': для работы скрипта необходимы: ''mail-client/mailx'' и ''net-dns/bind-tools''&lt;br /&gt;
&lt;br /&gt;
В случае фаервола естественно необходимо открыть прослушиваемые порты, для более успешной рыбалки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Информация взята с [http://odminblog.ru/portsentry-install/ odminblog.ru] и [http://www.lissyara.su/articles/freebsd/security/portsentry/ lissyara.su]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Tr&amp;diff=100</id>
		<title>Tr</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Tr&amp;diff=100"/>
		<updated>2011-03-24T16:44:10Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Описание ==&lt;br /&gt;
&lt;br /&gt;
Команда tr служит для перевода (замены) выбранных символов в другие символы или удаления их.&lt;br /&gt;
&lt;br /&gt;
В отличие от большинства других программ командной строки, команда tr не принимает имен файлов в качестве аргумента. Ввод команды tr осуществляется или со стандартного ввода, или с вывода других программ путем перенаправления.&lt;br /&gt;
&lt;br /&gt;
Вот общий синтаксис команды tr:&lt;br /&gt;
&lt;br /&gt;
  tr [опция] набор1 [набор2]&lt;br /&gt;
&lt;br /&gt;
Позиции в квадратных скобках не являются обязательными.&lt;br /&gt;
&lt;br /&gt;
Команде tr требуется минимум один аргумент, а принимается максимум два. Первый аргумент, называемый набор1 перечисляет символы, подлежащие замене или удалению. Второй аргумент, набор2, перечисляет символы, которые должны заменить символы из набора1.&lt;br /&gt;
&lt;br /&gt;
Команда tr без опций заменит символы из набора1 символами из набора2.&lt;br /&gt;
&lt;br /&gt;
== Азы команды tr ==&lt;br /&gt;
&lt;br /&gt;
В следующем примере, каждая буква a будет заменена буквой b:&lt;br /&gt;
&lt;br /&gt;
  tr a b&lt;br /&gt;
&lt;br /&gt;
Затем следует нажать Enter и команда будет готова к приему текста:&lt;br /&gt;
&lt;br /&gt;
  tr a b  [Enter]&lt;br /&gt;
  abracadabra&lt;br /&gt;
&lt;br /&gt;
Когда текст введен, снова следует нажать Enter:&lt;br /&gt;
&lt;br /&gt;
  tr a b&lt;br /&gt;
  &lt;br /&gt;
  abracadabra&lt;br /&gt;
  bbrbcbdbbrb&lt;br /&gt;
&lt;br /&gt;
Если снова нажать Enter, то можно продолжить ввод текста:&lt;br /&gt;
&lt;br /&gt;
  tr a b&lt;br /&gt;
  &lt;br /&gt;
  abracadabra&lt;br /&gt;
  bbrbcbdbbrb&lt;br /&gt;
  caramba&lt;br /&gt;
&lt;br /&gt;
Снова нажать Enter:&lt;br /&gt;
&lt;br /&gt;
  tr a b&lt;br /&gt;
  &lt;br /&gt;
  abracadabra&lt;br /&gt;
  bbrbcbdbbrb&lt;br /&gt;
  caramba&lt;br /&gt;
  cbrbmbb&lt;br /&gt;
&lt;br /&gt;
И так далее. Когда нужно выйти из программы, нажимаем Ctrl+c.&lt;br /&gt;
&lt;br /&gt;
== Работа с файлами ==&lt;br /&gt;
&lt;br /&gt;
Когда требуется обработать текст из файла, используем перенаправление ввода:&lt;br /&gt;
&lt;br /&gt;
  tr a b &amp;lt; file1.txt&lt;br /&gt;
&lt;br /&gt;
Где значок &amp;lt; является оператором перенаправления ввода.&lt;br /&gt;
&lt;br /&gt;
Что касается вывода команды tr, то гораздо удобнее иметь его в файле, чем на экране монитора, поэтому воспользуемся также оператором вывода (&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
  tr a b &amp;lt; file1.txt &amp;gt; file2.txt&lt;br /&gt;
&lt;br /&gt;
Если файл file2.txt не существует, то он будет создан. Если существует, то будет стерт и переписан.&lt;br /&gt;
&lt;br /&gt;
'''''Внимание:''''' Остерегайтесь направлять вывод в тот же файл, откуда производился ввод:&lt;br /&gt;
&lt;br /&gt;
  tr a b &amp;lt; file1.txt &amp;gt; file1.txt&lt;br /&gt;
&lt;br /&gt;
В этом случае весь текст в файле file1.txt исчезнет, включая вывод команды tr.&lt;br /&gt;
&lt;br /&gt;
Чтобы избежать переписывания файла file2.txt следует применить добавляющий оператор перенаправления (&amp;gt;&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
  tr a b &amp;lt; file1.txt &amp;gt;&amp;gt; file2.txt&lt;br /&gt;
&lt;br /&gt;
В этом случае, если файл file2.txt не существует, то он будет создан, а если существует, то новый текст будет дописан в конец файла. Этим же способом можно дописать измененный текст в исходный файл:&lt;br /&gt;
&lt;br /&gt;
  tr a b &amp;lt; file1.txt &amp;gt;&amp;gt; file1.txt&lt;br /&gt;
&lt;br /&gt;
Кроме метода перенаправления ввода/вывода, можно воспользоваться программными каналами (pipes), знаком которых является вертикальная черта (|):&lt;br /&gt;
&lt;br /&gt;
  cat file1.txt | tr a b &amp;gt; file2.txt&lt;br /&gt;
&lt;br /&gt;
В этом примере вывод команды cat (которая прочтет файл file1.txt) будет передан на ввод команде tr (которая поменяет буквы), а после изменения будет записан в файл file2.txt.&lt;br /&gt;
&lt;br /&gt;
== Возможности команды tr ==&lt;br /&gt;
&lt;br /&gt;
Понятно, что возможности команды tr не ограничиваются заменой одной буквы. Команда может заменять любое количество указанных символов на другие символы. В этом случае каждый из наборов символов заключается в квадратные скобки, а скобки, в свою очередь, в кавычки; безразлично, двойные или одинарные.&lt;br /&gt;
&lt;br /&gt;
  '[набор1]' '[набор2]' или &amp;quot;[набор1]&amp;quot; &amp;quot;[набор2]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
В наборе1 один подряд перечисляются символы, подлежащие замене, а в наборе2 - в соответствующем порядке символы, которые их должны заменить:&lt;br /&gt;
&lt;br /&gt;
  echo cheer | tr '[abcdefghijklmnopqrstuvwxyz]' '[hijklmnopqrstuvwxyzabcdefg]'&lt;br /&gt;
  &lt;br /&gt;
  jolly&lt;br /&gt;
&lt;br /&gt;
Для современных версий (у меня, например, tr GNU coreutils 5.97) все эти квадратные скобки и кавычки не обязательны, можно просто перечислять символы:&lt;br /&gt;
&lt;br /&gt;
  echo cheer | tr abcdefghijklmnopqrstuvwxyz hijklmnopqrstuvwxyzabcdefg&lt;br /&gt;
  &lt;br /&gt;
  jolly&lt;br /&gt;
&lt;br /&gt;
Работает не хуже.&lt;br /&gt;
&lt;br /&gt;
Если буквы идут по алфавиту, то можно не перечислять их все, а указать диапазон при помощи черточки, например a-z. Этим часто пользуются для перевода символов из нижнего в верхний регистр и наоборот:&lt;br /&gt;
&lt;br /&gt;
  echo lower_case | tr '[a-z]' '[A-Z]'&lt;br /&gt;
  &lt;br /&gt;
  LOWER_CASE&lt;br /&gt;
&lt;br /&gt;
Кроме того, команда умеет удалять символы, перечисленные в наборе1, заменять повторяющиеся символы одиночными и кое-что еще.&lt;br /&gt;
&lt;br /&gt;
== Условные обозначения ==&lt;br /&gt;
&lt;br /&gt;
Команда tr также оперирует с управляющими символами и прочими элементами форматирования. Большинство из них пишутся как есть. Но есть и условные обозначения. Некоторые начинаются обратным слэшем (\):&lt;br /&gt;
&lt;br /&gt;
*'''''\nnn''''' -- символ с восьмеричным значением nnn&lt;br /&gt;
*'''''\xnn''''' -- символ с шестнадцатеричным значением nn&lt;br /&gt;
*'''''\\''''' -- обратный слэш&lt;br /&gt;
*'''''\a''''' -- звуковой сигнал&lt;br /&gt;
*'''''\b''''' -- backspace (обратный ход с забоем символа)&lt;br /&gt;
*'''''\f''''' -- перевод страницы&lt;br /&gt;
*'''''\n''''' -- новая строка&lt;br /&gt;
*'''''\r''''' -- возврат каретки&lt;br /&gt;
*'''''\t''''' -- горизонтальная табуляция&lt;br /&gt;
*'''''\v''''' -- вертикальная табуляция&lt;br /&gt;
*'''''\E''''' -- escape&lt;br /&gt;
*'''''ЗНАК1-ЗНАК2''''' -- все знаки от ЗНАК1 до ЗНАК2 в порядке возрастания. ЗНАК1 должен предшествовать по порядку возрастания ЗНАКУ2.&lt;br /&gt;
*'''''[ЗНАК1-ЗНАК2]''''' -- то же, что и предыдущее, если оба набора используют эту форму.&lt;br /&gt;
*'''''[ЗНАК*]''''' -- ЗНАК заполняет набор2 до длины набора1 знаками ЗНАК. Эта опция работает в конце набора2. Все символы после астерикса (*) игнорируются.&lt;br /&gt;
*'''''[ЗНАК*N]''''' -- N копий символа ЗНАК. N подразумевается десятичным целым числом, если не начинается с 0; в этом случае считается восьмеричным целым числом.&lt;br /&gt;
*'''''[:alnum:]''''' -- все буквы и цифры&lt;br /&gt;
*'''''[:alpha:]''''' -- все буквы&lt;br /&gt;
*'''''[:blank:]''''' -- все горизонтальные пробельные знаки&lt;br /&gt;
*'''''[:cntrl:]''''' -- все управляющие знаки&lt;br /&gt;
*'''''[:digit:]''''' -- все цифры&lt;br /&gt;
*'''''[:graph:]''''' -- все печатные знаки, исключая пробел&lt;br /&gt;
*'''''[:lower:]''''' -- все строчные буквы (нижний регистр)&lt;br /&gt;
*'''''[:print:]''''' -- все печатные знаки, включая пробел&lt;br /&gt;
*'''''[:punct:]''''' -- все знаки препинания&lt;br /&gt;
*'''''[:space:]''''' -- все вертикальные или горизонтальные пробелы&lt;br /&gt;
*'''''[:upper:]''''' -- все заглавные буквы (верхний регистр)&lt;br /&gt;
*'''''[:xdigit:]''''' -- все шестнадцатеричные цифры&lt;br /&gt;
*'''''[=ЗНАК=]''''' -- все знаки, эквивалентные ЗНАКУ&lt;br /&gt;
&lt;br /&gt;
Таким образом, предыдущий пример можно записать и так:&lt;br /&gt;
&lt;br /&gt;
  echo lower_case | tr '[:lower:]' '[:upper:]' LOWER_CASE&lt;br /&gt;
&lt;br /&gt;
'''''Примечание:''''' Должен заметить, что с изменением регистра символов кириллицы ничего не получается, по крайней мере в моей системе.&lt;br /&gt;
&lt;br /&gt;
== Параметры tr ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Опция -s ===&lt;br /&gt;
&lt;br /&gt;
Это одна из самых полезных опций команды tr. Эта опция позволяет заменить повторяющиеся подряд символы из набора1 на единственный символ из списка2. Если список 2 отсутствует, то заменяет множественные символы одиночными. Чаще всего эта уплотняющая текст опция применяется для замены множественных пробелов на один единственный:&lt;br /&gt;
&lt;br /&gt;
  echo many      blank     spaces | tr -s ' '&lt;br /&gt;
  &lt;br /&gt;
  many blank spaces&lt;br /&gt;
&lt;br /&gt;
Или то же самое, используя условные обозначения:&lt;br /&gt;
&lt;br /&gt;
  echo очень     много      пробелов | tr -s \t&lt;br /&gt;
  &lt;br /&gt;
  очень много пробелов&lt;br /&gt;
&lt;br /&gt;
Вот еще один пример:&lt;br /&gt;
&lt;br /&gt;
  cat /etc/fstab | tr -s  ' ' ':'&lt;br /&gt;
  &lt;br /&gt;
  /dev/hda5:swap:swap:defaults:0:0&lt;br /&gt;
  /dev/hda4:/:ext3:defaults:1:1&lt;br /&gt;
  /dev/hda1:/mnt/FreeDos:vfat:iocharset=utf8,codepage=866,noauto,users,rw,umask=000,showexec,quiet:1:0&lt;br /&gt;
  #/dev/hda3:/mnt/suse:ext3:iocharset=utf8,codepage=:,noauto,users,rw,umask=000,showexec,quiet:1:0:&lt;br /&gt;
  /dev/fd0:/mnt/floppy:vfat,msdos:iocharset=utf8,codepage=866,noauto,users,suid,dev,exec:0:0&lt;br /&gt;
  devpts:/dev/pts:devpts:gid=5,mode=620:0:0&lt;br /&gt;
  proc:/proc:proc:defaults:0:0&lt;br /&gt;
&lt;br /&gt;
Здесь заменили все пробелы, служащие разделителями в файле /etc/fstab, на двоеточия. Теперь можно обрабатывать этот файл другими программами, скажем cut.&lt;br /&gt;
&lt;br /&gt;
=== Опция -d ===&lt;br /&gt;
&lt;br /&gt;
Используется для удаления из текста символов, перечисленных в наборе1.&lt;br /&gt;
&lt;br /&gt;
  echo a black cat | tr -d a&lt;br /&gt;
  &lt;br /&gt;
  blck ct&lt;br /&gt;
&lt;br /&gt;
Опция может удалять также специальные символы (смотри перечень условных обозначений выше), например символ возврата каретки, который заканчивает строку в паре с символом новой строки в файлах ОС Windows. После его удаления останется только символ новой строки, который использует Юникс:&lt;br /&gt;
&lt;br /&gt;
  tr -d '\r' &amp;lt; ms.file &amp;lt; unix.file&lt;br /&gt;
&lt;br /&gt;
или используя восьмеричный номер символа:&lt;br /&gt;
&lt;br /&gt;
  tr -d '\015' &amp;lt; ms.file &amp;gt; unix.file&lt;br /&gt;
&lt;br /&gt;
Мне встречались утверждения, будто в некоторых реализациях команды tr возможно удалять сочетания символов (то есть слова), заключив их в кавычки:&lt;br /&gt;
&lt;br /&gt;
  echo a black cat | tr -d 'cat'&lt;br /&gt;
  a black&lt;br /&gt;
&lt;br /&gt;
Но мне такие реализации не попадались, и кавычки не влияют на результат удаления.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Опция -с ===&lt;br /&gt;
&lt;br /&gt;
Заставляет команду работать с символами, которые отсутствуют в наборе 1. Другими словами: символы, перечисленные в наборе1 не используются в работе, а все остальные - используются. Например:&lt;br /&gt;
&lt;br /&gt;
  echo a black cat | tr -cd b-z[:cntrl:][:blank:]&lt;br /&gt;
  &lt;br /&gt;
  blck ct&lt;br /&gt;
&lt;br /&gt;
В этом примере нет буквы а, вот ее и будет удалять программа. Символы из группы [:cntrl:] нужно указать, чтобы их не удалили, иначе не происходит перенос строки, а пробел - [:blank:] - указать, чтобы он тоже остался на месте.&lt;br /&gt;
&lt;br /&gt;
Или еще один изящный пример:&lt;br /&gt;
&lt;br /&gt;
  tr -cs a-zA-Z '\n' &amp;lt; /etc/fstab&lt;br /&gt;
  &lt;br /&gt;
  dev&lt;br /&gt;
  hda&lt;br /&gt;
  swap&lt;br /&gt;
  swap&lt;br /&gt;
  defaults&lt;br /&gt;
  dev&lt;br /&gt;
  hda&lt;br /&gt;
  ext&lt;br /&gt;
  defaults&lt;br /&gt;
  dev&lt;br /&gt;
  hda&lt;br /&gt;
  mnt&lt;br /&gt;
  FreeDos&lt;br /&gt;
  vfat&lt;br /&gt;
  iocharset&lt;br /&gt;
  utf&lt;br /&gt;
  codepage&lt;br /&gt;
  noauto&lt;br /&gt;
  users&lt;br /&gt;
  rw&lt;br /&gt;
  umask&lt;br /&gt;
  showexec&lt;br /&gt;
  quiet&lt;br /&gt;
  dev&lt;br /&gt;
  hda&lt;br /&gt;
  mnt&lt;br /&gt;
  suse&lt;br /&gt;
  ext&lt;br /&gt;
  iocharset&lt;br /&gt;
  utf&lt;br /&gt;
  codepage&lt;br /&gt;
  noauto&lt;br /&gt;
  users&lt;br /&gt;
  rw&lt;br /&gt;
  umask&lt;br /&gt;
  showexec &lt;br /&gt;
  quiet&lt;br /&gt;
  dev&lt;br /&gt;
  fd&lt;br /&gt;
  mnt&lt;br /&gt;
  floppy&lt;br /&gt;
  vfat&lt;br /&gt;
  msdos&lt;br /&gt;
  iocharset&lt;br /&gt;
  utf&lt;br /&gt;
  codepage&lt;br /&gt;
  noauto&lt;br /&gt;
  users&lt;br /&gt;
  suid&lt;br /&gt;
  dev&lt;br /&gt;
  exec&lt;br /&gt;
  devpts&lt;br /&gt;
  dev&lt;br /&gt;
  pts&lt;br /&gt;
  devpts&lt;br /&gt;
  gid&lt;br /&gt;
  mode&lt;br /&gt;
  proc&lt;br /&gt;
  proc&lt;br /&gt;
  proc&lt;br /&gt;
  defaults&lt;br /&gt;
  dev&lt;br /&gt;
  sda&lt;br /&gt;
  media&lt;br /&gt;
  FLASHKA&lt;br /&gt;
  vfat&lt;br /&gt;
  rw&lt;br /&gt;
  users&lt;br /&gt;
  umask&lt;br /&gt;
  showname&lt;br /&gt;
  lower &lt;br /&gt;
&lt;br /&gt;
Превращает файл /etc/fstab/ в список слов этого файла. При этом все символы, кроме букв обоих регистров, заменяются на символ переноса строки, лишние же символы переноса строки удаляет опция -s. Такого же эффекта можно достичь другим способом:&lt;br /&gt;
&lt;br /&gt;
  tr -cs &amp;quot;[:alpha:]&amp;quot; &amp;quot;\n&amp;quot; &amp;lt; /etc/fstab&lt;br /&gt;
  &lt;br /&gt;
  dev&lt;br /&gt;
  hda&lt;br /&gt;
  swap&lt;br /&gt;
  swap&lt;br /&gt;
  defaults&lt;br /&gt;
  dev&lt;br /&gt;
  hda&lt;br /&gt;
  ext&lt;br /&gt;
  defaults&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Не продолжаю из экономии места.&lt;br /&gt;
&lt;br /&gt;
== Команда tr и кириллица ==&lt;br /&gt;
&lt;br /&gt;
Из всех опробованных мной версий программы tr ни одна адекватно не работала с символами кириллицы в кодировке UTF-8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Резюме программы tr ==&lt;br /&gt;
&lt;br /&gt;
Программа tr дает удивительные возможности изменять файлы, порой до неузнаваемости, простыми методами. Трудно предсказать, какое применение команде может найти пользователь, знающий ее тонкости. Особенно полезной может быть команда в качестве фильтра в составе программных каналов (pipes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Информация взята с [http://open-club.ru/main/reading/HuMan_tr open-club.ru]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Man]]&lt;br /&gt;
[[Категория:Не наши статьи]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Pipes:_%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B5_%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D1%8B_%D0%B2_Linux&amp;diff=99</id>
		<title>Pipes: Программные каналы в Linux</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Pipes:_%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B5_%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D1%8B_%D0%B2_Linux&amp;diff=99"/>
		<updated>2011-03-24T16:36:30Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Предисловие ==&lt;br /&gt;
&lt;br /&gt;
В одной остроумной статье я прочел следующую сентенцию: &amp;quot;Лишить приверженца Юникс программных каналов - то же самое, что отобрать мышь у пользователя Виндоуз&amp;quot;. Возможно, в этом утверждении и есть некоторое преувеличение, но в прежние времена так оно, по большому счету, и было. Опытные сторонники Юниксовидных систем любят консоль и умеют ею пользоваться. Мы же, нынешние, установив Убунту, уже считаем себя линуксоидами, а что такое консоль, имеем смутное представления. Но проходит некоторое время, и, устав от украшения рабочего стола, прочитав две-три статейки, мы решаемся нажать мышкой на значок монитора в системном трее. Со временем перед нами открывается новый мир, полный удивительных возможностей и беспрерывного совершенствования своих знаний, мир пиршества интеллекта, непрекращающегося эксперимента, и радости оттого, что ты Homo Sapiens. Девиз: &amp;quot;Вернем радость в общение с компьютером!&amp;quot;, - как нельзя лучше подходит для этого случая...&lt;br /&gt;
&lt;br /&gt;
Предлагаемая вашему вниманию статья как раз для тех, кто недавно открыл для себя командную строку Линукс.&lt;br /&gt;
&lt;br /&gt;
== Выбор термина ==&lt;br /&gt;
&lt;br /&gt;
Термин pipe (труба) чрезвычайно органично вошел в англоязычный компьютерный жаргон. Этим словом называется не только способ передачи вывода одной команды на ввод другой, но и оператор, которым обозначается это действие: | (вертикальная черта). Кроме того, то же слово служит глаголом, означающим данное действие.&lt;br /&gt;
&lt;br /&gt;
Какие только термины не используют в русском языке для перевода слова &amp;quot;pipes&amp;quot;: и трубы, и трубопроводы, и конвейеры, и потоки, и прочее. В контексте все эти термины выглядят довольно неуклюже. И вот еще беда - ни от одного из этих существительных нельзя образовать глагол, не говоря уже о том, чтобы называть так символ вертикальной черты. Можно, правда, употребить глагол &amp;quot;конвейеризировать&amp;quot;, но такое не написать, не выговорить невозможно. Я пытался делать наметки этой статьи, используя все перечисленные термины, но не был удовлетворен ни одним.&lt;br /&gt;
&lt;br /&gt;
Совершенно случайно, в книге А. Робачевского &amp;quot;Операционная система UNIX&amp;quot; мне встретился термин &amp;quot;программные каналы&amp;quot;. Поначалу он показался мне несколько громоздким, но попробовав его на деле, я убедился в его несомненных преимуществах. Он не выглядит смешно и дико как &amp;quot;трубы&amp;quot;, от него легко произвести глагол, и, самое главное, он имеет вполне прижившегося на русской почве брата - &amp;quot;именованные каналы&amp;quot;, которые никто не назовет &amp;quot;именованными трубопроводами&amp;quot;. Итак, решено, в данной статье термин pipes будет звучать как &amp;quot;программные каналы&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Введение в программные каналы ==&lt;br /&gt;
&lt;br /&gt;
Программным каналом называется использование вывода одной команды в качестве ввода для другой программы. Например:&lt;br /&gt;
&lt;br /&gt;
  $ dmesg | less&lt;br /&gt;
&lt;br /&gt;
Команда dmesg выводит сообщения ядра Линукс о процессе загрузки ОС (те самые, что пробегают по экрану монитора при загрузке системы). Эти сообщения не умещаются на одном экране, и пролетают так быстро, что прочесть их невозможно. Поэтому вывод программы dmesg передают на ввод команде less. (Команда less позволяет выводу команды dmesg заполнить только один экран. Чтобы прочесть следующую порцию текста, нужно нажать клавишу пробела, а чтобы вернуться к предыдущей порции - клавишу b. Прервать работу программы можно клавишей q). Оператором такой передачи служит вертикальная черта (|). (Пробелы до и после вертикальной черты ставятся для удобства чтения, но можно обойтись и без них). Все вместе и есть простейший программный канал.&lt;br /&gt;
&lt;br /&gt;
Того же результата можно достичь, если сначала перенаправить вывод команды dmesg во временный файл, а затем просмотреть содержимое этого файла на экране монитора.&lt;br /&gt;
&lt;br /&gt;
  $ dmesg &amp;gt; временный.файл&lt;br /&gt;
  $ временный.файл &amp;gt; less&lt;br /&gt;
&lt;br /&gt;
Очевидно, что такая схема менее производительна: во-первых, необходимо давать две команды, во-вторых потому, что следующая команда может начать работать только после завершения первой.&lt;br /&gt;
&lt;br /&gt;
Необходимо пояснить понятия, которые я походя назвал &amp;quot;вводом&amp;quot; и &amp;quot;выводом&amp;quot; программы.&lt;br /&gt;
&lt;br /&gt;
Любая программа командной оболочки (шелла) оперирует с тремя потоками данных: стандартным вводом (stdin), стандартным выводом (stdout), и стандартным сообщением об ошибке (stderr). (Подробно об этом можно прочесть в статье &amp;quot;Перенаправление стандартных потоков данных&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
По умолчанию, стандартный ввод осуществляется с клавиатуры, а стандартный вывод - на экран монитора. Если же мы задействуем оператор программных каналов (|), то стандартный вывод первой программы станет стандартным вводом второй, при этом на экране монитора он уже не появится.&lt;br /&gt;
&lt;br /&gt;
Такая цепочка вовсе не ограничивается двумя программами, но может продолжаться сколь угодно долго.&lt;br /&gt;
&lt;br /&gt;
== Как это работает ==&lt;br /&gt;
&lt;br /&gt;
В большинстве Юниксовидных систем все процессы в программном канале начинаются одновременно, их потоки соответственно соединяются и управляются планировщиком вместе со всеми остальными процессами, идущими в системе.&lt;br /&gt;
&lt;br /&gt;
Даже если посылающая программа производит 5000 байт в секунду, а принимающая программа может обработать только 100 байт в секунду, все равно никакой потери информации не произойдет, так как программные каналы имеют буферы. Вывод посылающей программы собирается в буфере, ставится в очередь. Когда принимающая программа готова считывать данные, операционная система посылает порцию данных из буфера. В случае переполнения буфера, посылающая программа приостанавливается (блокируется), до тех пор, пока принимающая программа не сможет снова считывать данные, тем самым освобождая буфер.&lt;br /&gt;
&lt;br /&gt;
Механизм этого свойства командной оболочки довольно сложен, в данной статье мы не станем его рассматривать, а будем просто пользоваться этой замечательной способностью шелла.&lt;br /&gt;
&lt;br /&gt;
== Как пользоваться программными каналами ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего употребляются программные каналы, заканчивающиеся командами less и more. Эти две команды схожи по своему действию, однако less новее и имеет ряд дополнительных функций, включая возможность вернуться к предыдущим &amp;quot;страницам&amp;quot; вывода. Многие пользуются этими программными каналами, не подозревая, что занимаются столь мудреными вещами.&lt;br /&gt;
&lt;br /&gt;
Кроме вышеприведенного примера с каналом dmesg | less, часто используется канал ls | less. Команда ls позволяет просматривать содержимое директорий, а с опцией -l дает подробные сведения о файлах, &amp;quot;населяющих&amp;quot; указанную директорию. Если директория содержит достаточно файлов, чтобы их список занял больше одного экрана, то применение программного канала с less или more неизбежно:&lt;br /&gt;
&lt;br /&gt;
  $ ls -l  имя_директории | less&lt;br /&gt;
&lt;br /&gt;
или&lt;br /&gt;
&lt;br /&gt;
   $ ls -l  имя_директории | more&lt;br /&gt;
&lt;br /&gt;
Для пробы проделайте такой пример:&lt;br /&gt;
&lt;br /&gt;
   $ ls -l -R /usr | less&lt;br /&gt;
&lt;br /&gt;
Только запаситесь терпением - на моей небольшой системе, установленной с одного CD, в выводе было 87 187 строк, сиречь файлов. Дело в том, что опция -R команды ls выводит содержимое директории рекурсивно, то есть открывая подкаталоги, подкаталоги подкаталогов и так далее, пока не перечислит все файлы. Правда, чтобы просмотреть действительно все файлы в директории, нужно войти как администратор (root), потому что некоторые каталоги могут не давать прав доступа рядовому пользователю.&lt;br /&gt;
&lt;br /&gt;
Понятно, что найти &amp;quot;вручную&amp;quot; что-либо в таком списке проблематично, и тут на помощь снова придут программные каналы.&lt;br /&gt;
&lt;br /&gt;
Команда grep найдет нужные вам строки, если вы зададите образец для поиска:&lt;br /&gt;
&lt;br /&gt;
  # ls -l -R /usr | grep xorg.conf&lt;br /&gt;
  -rw-r--r-- 1 root root 16681 2008-08-25 23:21 xorg.conf.5.lzma&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на символ # в начале командной строки - он означает, что я вошел с правами суперпользователя.&lt;br /&gt;
&lt;br /&gt;
Команды, входящие в состав программных каналов, часто называются командами-фильтрами, так как они пропускают через себя потоки данных.&lt;br /&gt;
&lt;br /&gt;
Среди команд-фильтров самая употребительная, без сомнения, grep. Она применяется везде, где нужно выбрать искомое из большого объема данных. Скажем, просмотреть все, что касается USB в выводе команды dmesg:&lt;br /&gt;
&lt;br /&gt;
  $ dmesg | grep -i usb&lt;br /&gt;
  usbcore: registered new interface driver usbfs&lt;br /&gt;
  usbcore: registered new interface driver hub&lt;br /&gt;
  usbcore: registered new device driver usb&lt;br /&gt;
  ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 1&lt;br /&gt;
  ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Это только начало списка строк, выведенных командой grep -i usb, я не привожу его полностью из экономии места. Опция -i приказывает команде grep не замечать разницы между заглавными и строчными буквами.&lt;br /&gt;
&lt;br /&gt;
Любой системный администратор часто пользуется командой ps. С опциями -e и -f она выводит все процессы, текущие в системе в полной форме (подробно). Процессов этих весьма много, поэтому я не привожу полный вывод команды:&lt;br /&gt;
&lt;br /&gt;
  $ ps -ef                                                      &lt;br /&gt;
  UID         PID  PPID    C STIME TTY          TIME CMD                           &lt;br /&gt;
  root         1     0     0 13:58  ?        00:00:00 init [5]                                                 &lt;br /&gt;
  root         2     0     0 13:58  ?        00:00:00 [kthreadd]                                               &lt;br /&gt;
  root         3     2     0 13:58  ?        00:00:00 [migration/0]                                            &lt;br /&gt;
  root         4     2     0 13:58  ?        00:00:00 [ksoftirqd/0]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Чтобы найти в этом списке интересующие вас процессы, следует канализировать команду ps с командой grep. Допустим, вас интересуют процессы hald:&lt;br /&gt;
&lt;br /&gt;
  $ ps -ef | grep hald&lt;br /&gt;
  19        2457        1  0 13:58 ?        00:00:00 hald&lt;br /&gt;
  root      2467  2457  0 13:58 ?        00:00:00 hald-runner&lt;br /&gt;
  root      2824  2467  0 13:58 ?        00:00:00 /usr/lib/hald-addon-cpufreq&lt;br /&gt;
  19        2825  2467  0 13:58 ?        00:00:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket&lt;br /&gt;
  root      2831  2467  0 13:58 ?        00:00:01 hald-addon-storage: polling /dev/sr0 (every 2 sec)&lt;br /&gt;
  ya        2884 20820  0 14:49 pts/1    00:00:00 grep hald&lt;br /&gt;
&lt;br /&gt;
С таким коротким списком уже легче работать. (Обратите внимание на последнюю строчку, там представлен сам запущенный нами процесс grep hald).&lt;br /&gt;
&lt;br /&gt;
Другие распространенные команды-фильтры&lt;br /&gt;
&lt;br /&gt;
Кроме команды grep (или вместе с ней) часто употребляются следующие команды:&lt;br /&gt;
* ''sort'' - сортирует строки по алфавиту или порядку номеров&lt;br /&gt;
* ''wc'' - подсчитывает количество строк, слов, байт или символов в тексте&lt;br /&gt;
* ''tr'' - заменяет одни символы другими&lt;br /&gt;
* ''sed'' - позволяет редактировать текст прямо из командной строки, даже не видя его.&lt;br /&gt;
* ''cut'' - вырезает из текста нужные куски и выдает их на стандартный вывод&lt;br /&gt;
* ''head/tail'' - позволяют ограничить просмотр первыми несколькими строками (head - голова), либо последними несколькими строками (tail - хвост).&lt;br /&gt;
&lt;br /&gt;
В этот список я включил только несколько команд-фильтров, освоив которые, можно вдоволь насладиться составлением самых замысловатых программных каналов.&lt;br /&gt;
&lt;br /&gt;
== Сложные программные каналы ==&lt;br /&gt;
&lt;br /&gt;
Вот пример, как наладить проверку орфографии, используя программные каналы. Допустим, что у вас есть файл words.txt, в котором содержатся все слова английского языка (разумеется, такого файла у вас нет, но можно позаимствовать список слов из какого-нибудь словаря; а английского - чтобы не путаться с кодировками). Тогда составляется следующий программный канал:&lt;br /&gt;
&lt;br /&gt;
  $ wget &amp;quot;http://en.wikipedia.org/wiki/Pipeline_(Unix)&amp;quot; | \&lt;br /&gt;
  sed 's/[^a-zA-Z ]/ /g' | \&lt;br /&gt;
  tr 'A-Z ' 'a-z\n' | \&lt;br /&gt;
  grep '[a-z]' | \&lt;br /&gt;
  sort -u | \&lt;br /&gt;
  comm -23 - words.txt&lt;br /&gt;
&lt;br /&gt;
'''''Примечание:''''' Символ (\) используется для объединения всех шести строк в одну командную строку.&lt;br /&gt;
&lt;br /&gt;
Команда первая: wget получает содержимое HTML web страницы.&lt;br /&gt;
&lt;br /&gt;
Команда вторая: sed удаляет из текста страницы все символы, не являющиеся пробелами или буквами и заменяет их пробелами.&lt;br /&gt;
&lt;br /&gt;
Команда третья: tr переводит все символы верхнего регистра в нижний регистр (заглавные буквы в строчные), а также конвертирует пробелы в строках в символы новой строки, так что теперь каждое &amp;quot;слово&amp;quot; является новой строкой.&lt;br /&gt;
&lt;br /&gt;
Команда четвертая: grep оставляет только строки, содержащие хотя бы один алфавитный символ (попросту букву), удаляя все пустые строки.&lt;br /&gt;
&lt;br /&gt;
Команда пятая: sort сортирует список &amp;quot;слов&amp;quot; в алфавитном порядке, а с опцией -u удаляет дубликаты.&lt;br /&gt;
&lt;br /&gt;
Команда шестая, и последняя: comm находит строки, общие для двух файлов. Первым файлом является стандартный вывод нашего программного канала, для чего вместо имени первого файла стоит прочерк (-), вторым файлом будет файл words.txt. Строки, которые встречаются только во втором файле и те, что встречаются в обоих файлах, подавляются опциями -2 и -3. Результатом будет список слов, встречающихся только в первом файле. И, если считать файл words.txt неким эталонным словарем, то выходящий список будет содержать слова, которых нет в словаре, то есть написанные с ошибками.&lt;br /&gt;
&lt;br /&gt;
== Немного истории ==&lt;br /&gt;
&lt;br /&gt;
Идею программных каналов и значок вертикальной черты как их обозначение придумал Douglas McIlroy, один из авторов ранних командных оболочек. Он обратил внимание на то, сколько времени уходит на обработку вывода одной программы в качестве ввода другой. Его идеи были внедрены в жизнь, когда в 1973 Ken Thompson добавил программные каналы в операционную систему Юникс. Идея была со временем позаимствована другими ОС, такими как DOS, OS/2, Microsoft Windows, и BeOS, часто даже с тем же обозначением.&lt;br /&gt;
&lt;br /&gt;
== Понятие именованного канала ==&lt;br /&gt;
&lt;br /&gt;
Английское название именованного канала - named pipe или FIFO (File In, File Out - файл пришел, файл ушел). Именованные каналы служат в основном для межпроцессного взаимодействия, когда различные процессы в системе обмениваются информацией. Тема это сложная и большая, заслуживающая отдельной статьи. Поэтому в данной работе я только вкратце коснусь ее.&lt;br /&gt;
&lt;br /&gt;
В отличие от анонимного программного канала, автоматически создаваемого шеллом, именованный канал обладает именем, и создается явно при помощи команд mknod или mkfifo. Создадим именованный канал fifo1:&lt;br /&gt;
&lt;br /&gt;
  $ mkfifo fifo1&lt;br /&gt;
&lt;br /&gt;
Теперь запустим процесс, обращающийся к данному каналу:&lt;br /&gt;
&lt;br /&gt;
  $ grep fs &amp;lt; fifo1   (ENTER)&lt;br /&gt;
&lt;br /&gt;
Несмотря на нажатие клавиши ENTER ничего не происходит, что не удивительно, ведь файл fifo1 пока пуст, и команде grep нечего обрабатывать. Однако консоль оказывается занята ждущим процессом, и разблокировать ее можно только прервав процесс (скажем, нажатием клавиш CTRL+c).&lt;br /&gt;
&lt;br /&gt;
Чтобы наполнить именной канал содержимым, нужно чтобы к нему обратился второй процесс. Для этого мы должны открыть вторую консоль и запустить какую-либо команду, передающую данные в файл fifo1. Например:&lt;br /&gt;
&lt;br /&gt;
 (Другая консоль)$ ls /etc &amp;gt; fifo1&lt;br /&gt;
&lt;br /&gt;
Немедленно в первой консоли сработает команда grep:&lt;br /&gt;
&lt;br /&gt;
  $ grep fs &amp;lt; fifo1  (ENTER) &lt;br /&gt;
  fstab&lt;br /&gt;
  gettydefs&lt;br /&gt;
  login.defs&lt;br /&gt;
  mke2fs.conf &lt;br /&gt;
&lt;br /&gt;
Совершенно ясно, что пользоваться таким неудобным механизмом в пользовательских целях никто не будет, ведь гораздо проще запустить один программный канал:&lt;br /&gt;
&lt;br /&gt;
  $ ls /etc | grep fs &lt;br /&gt;
&lt;br /&gt;
и получить тот же результат.&lt;br /&gt;
&lt;br /&gt;
Этот пример я привел лишь для демонстрации создания и работы именованного канала. Другое дело, когда именованные каналы создаются самими процессами для обмена информацией друг с другом. Но повторюсь, что тема эта непростая и в данной статье рассматриваться не будет.&lt;br /&gt;
&lt;br /&gt;
== Резюме ==&lt;br /&gt;
&lt;br /&gt;
Программные каналы - мощнейший инструмент Юниксовидных операционных систем. Создание программных каналов многократно ускоряет процесс обработки данных, сокращает количество &amp;quot;писанины&amp;quot; в командной строке, а также позволяет получать результат в наиболее удобном виде.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Информация взята с [http://open-club.ru/main/reading/Pipes_%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B5_%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D1%8B_%D0%B2_Linux open-club.ru]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Man]]&lt;br /&gt;
[[Категория:Не наши статьи]]&lt;br /&gt;
[[Категория:Мегафича]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Grep&amp;diff=98</id>
		<title>Grep</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Grep&amp;diff=98"/>
		<updated>2011-03-24T16:34:13Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Введение ==&lt;br /&gt;
&lt;br /&gt;
Команда grep, одна из самых известных и употребительных команд Юниксовидных ОС, ведет свое начало от первого текстового редактора Юникс - ed. В этом редакторе была команда g/re/p (global/regular expression/print), которая и дала свое название новой программе.&lt;br /&gt;
&lt;br /&gt;
Команда grep служит для поиска строк, содержащих заданный пользователем образец.&lt;br /&gt;
&lt;br /&gt;
  grep ОБРАЗЕЦ имя_файла&lt;br /&gt;
&lt;br /&gt;
Причем обязательным для ввода является только ОБРАЗЕЦ, можно обойтись даже без имени файла (аргумента).&lt;br /&gt;
&lt;br /&gt;
== Команда grep без опций и аргумента. ==&lt;br /&gt;
&lt;br /&gt;
Если не указано имени файла, то команда обрабатывает стандартный ввод, например строки, набранные на клавиатуре:&lt;br /&gt;
&lt;br /&gt;
  grep кот&lt;br /&gt;
  &lt;br /&gt;
  у меня есть кошка,(Enter)&lt;br /&gt;
  вернее это кот,(Enter)&lt;br /&gt;
  вернее это кот,&lt;br /&gt;
  который умеет(Enter)&lt;br /&gt;
  который умеет&lt;br /&gt;
  ловить мышей.(Enter)&lt;br /&gt;
  (Ctrl+c)&lt;br /&gt;
&lt;br /&gt;
В скобках показано, когда я нажимал клавишу Enter, чтобы перейти на новую строку. Одновременно, при нажатии Enter, программа выводила строки, содержащие ОБРАЗЕЦ (кот), отсюда и удвоение этих строк. Видно, что команда реагировала просто на сочетание букв, а не на слово &amp;quot;кот&amp;quot;, иначе строка со словом &amp;quot;который&amp;quot; не попала бы в вывод.&lt;br /&gt;
&lt;br /&gt;
Тут мы подошли к очень важному определению строки.&lt;br /&gt;
Строкой команда grep (как и все остальные команды Юникс) считает все символы, находящиеся между двумя символами новой строки. Эти невидимые на экране символы возникают в тексте каждый раз, когда пользователь нажимает клавишу Enter. В Юниксовидных системах символ новой строки обозначается обратным слэшем с буквой n (\n). Таким образом, строка может быть любого размера, начиная с одного символа и до многомегабайтного текста. И команда grep честно выведет эту строку, при условии, что она содержит ОБРАЗЕЦ.&lt;br /&gt;
&lt;br /&gt;
== Работа с файлами ==&lt;br /&gt;
&lt;br /&gt;
Команда grep может обрабатывать любое количество файлов одновременно. Создадим три файла:&lt;br /&gt;
&lt;br /&gt;
  123.txt:     alice.txt:              ast.txt:&lt;br /&gt;
  1234         Алиса очень             Символ астериска &lt;br /&gt;
  5678         красивая девочка,       обозначается (*)&lt;br /&gt;
  89*0         у нее такая ******      звездочкой.&lt;br /&gt;
               длинная коса!&lt;br /&gt;
&lt;br /&gt;
И дадим команду:&lt;br /&gt;
&lt;br /&gt;
  grep '*' 123.txt ast.txt alice.txt&lt;br /&gt;
  &lt;br /&gt;
  123.txt:89*0&lt;br /&gt;
  ast.txt:обозначается (*).&lt;br /&gt;
  alice.txt:у нее такая ******&lt;br /&gt;
&lt;br /&gt;
В выводе перечислены файлы, и указано, в каком из них какая строка содержит символ астериска. ОБРАЗЕЦ (*) пришлось взять в кавычки, чтобы командный интерпретатор понял, что имеется в виду символ, а не условный знак. Попробуйте без кавычек, увидите - ничего не получится.&lt;br /&gt;
&lt;br /&gt;
Команда grep вовсе не ограничена одним выражением в качестве ОБРАЗЦА, можно задавать хоть целые фразы. Только их нужно заключать в кавычки (одинарные или двойные):&lt;br /&gt;
&lt;br /&gt;
  grep 'ная ко' 123.txt ast.txt alice.txt&lt;br /&gt;
  alice.txt:длинная коса!&lt;br /&gt;
&lt;br /&gt;
Возможности поиска при помощи команды grep могут быть значительно расширены применением групповых символов. Например, уже упоминавшийся астериск (звездочка) используется для представления любого символа или группы символов, если речь идет о тексте, и любого файла или группы файлов, если речь идет о директории.&lt;br /&gt;
&lt;br /&gt;
Создадим директорию /example, в которую поместим файлы наших примеров: 123.txt, ast.txt, alice.txt и дадим команду:&lt;br /&gt;
&lt;br /&gt;
  grep '*' example/*&lt;br /&gt;
  example/123.txt:89*0&lt;br /&gt;
  example/alice.txt:у нее такая ******&lt;br /&gt;
  example/ast.txt:обозначается (*)&lt;br /&gt;
&lt;br /&gt;
То есть мы приказали просмотреть все файлы директории /example. Таким способом можно обследовать такие огромные директории как /usr, /dev, и любые другие.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Параметры grep ==&lt;br /&gt;
&lt;br /&gt;
=== Опция -r ===&lt;br /&gt;
&lt;br /&gt;
--recursive&lt;br /&gt;
&lt;br /&gt;
Еще больше увеличит зону поисков опция -r, которая заставит команду grep рекурсивно обследовать все дерево указанной директории, то есть субдиректории, субдиректории субдиректорий, и так далее вплоть до файлов. Например:&lt;br /&gt;
&lt;br /&gt;
  grep -r menu /boot&lt;br /&gt;
  &lt;br /&gt;
  /boot/grub/grub.txt:Highlight the menu entry you want to edit and press 'e', then&lt;br /&gt;
/boot/grub/grub.txt:Press the [Esc] key to return to the GRUB menu.&lt;br /&gt;
/boot/grub/menu.lst:# GRUB configuration file '/boot/grub/menu.lst'.&lt;br /&gt;
/boot/grub/menu.lst:gfxmenu (hd0,3)/boot/message&lt;br /&gt;
&lt;br /&gt;
=== Опция -i ===&lt;br /&gt;
&lt;br /&gt;
--ignore-case&lt;br /&gt;
&lt;br /&gt;
Приказывает команде игнорировать регистр символов, таким образом, поиск будет производиться как среди заглавных, так и среди строчных букв.&lt;br /&gt;
&lt;br /&gt;
=== Опция -c ===&lt;br /&gt;
&lt;br /&gt;
--count&lt;br /&gt;
&lt;br /&gt;
Эта опция не выводит строки, а подсчитывает количество строк, в которых обнаружен ОБРАЗЕЦ. Например:&lt;br /&gt;
&lt;br /&gt;
  grep -c root /etc/group&lt;br /&gt;
  8&lt;br /&gt;
&lt;br /&gt;
То есть в восьми строках файла /etc/group встречается сочетание символов root.&lt;br /&gt;
&lt;br /&gt;
=== Опция -n ===&lt;br /&gt;
&lt;br /&gt;
--line-number&lt;br /&gt;
&lt;br /&gt;
При использовании этой опции вывод команды grep будет указывать номера строк, содержащих ОБРАЗЕЦ:&lt;br /&gt;
&lt;br /&gt;
  grep -n print /etc/printcap&lt;br /&gt;
  1:# /etc/printcap&lt;br /&gt;
  3:# See &amp;quot;man printcap&amp;quot; for information on editing this file.&lt;br /&gt;
  5:# In most cases it is better to use a tool to write the printcap&lt;br /&gt;
  9:# cupsd print daemon at this URL: http://localhost:631&lt;br /&gt;
&lt;br /&gt;
=== Опция -v ===&lt;br /&gt;
&lt;br /&gt;
--invert-match&lt;br /&gt;
&lt;br /&gt;
Выполняет работу, обратную обычной - выводит строки, в которых ОБРАЗЕЦ не встречается:&lt;br /&gt;
&lt;br /&gt;
  grep -v print /etc/printcap&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  # for you (at least initially), such as apsfilter&lt;br /&gt;
  # (/usr/share/apsfilter/SETUP, used in conjunction with the&lt;br /&gt;
  # LPRng lpd daemon), or with the web interface provided by the&lt;br /&gt;
  # (if you use CUPS).&lt;br /&gt;
&lt;br /&gt;
=== Опция -w ===&lt;br /&gt;
&lt;br /&gt;
--word-regexp&lt;br /&gt;
&lt;br /&gt;
Заставит команду grep искать только строки, содержащие все слово или фразу, составляющую ОБРАЗЕЦ. Например:&lt;br /&gt;
&lt;br /&gt;
  grep -w &amp;quot;длинная ко&amp;quot; example/*&lt;br /&gt;
&lt;br /&gt;
Не дает вывода, то есть не находит строк, содержащих выражение &amp;quot;длинная ко&amp;quot;. А вот команда:&lt;br /&gt;
&lt;br /&gt;
  grep -w &amp;quot;длинная коса&amp;quot; example/*&lt;br /&gt;
  &lt;br /&gt;
  example/alice.txt:длинная коса!&lt;br /&gt;
&lt;br /&gt;
находит точное соответствие в файле alice.txt.&lt;br /&gt;
&lt;br /&gt;
=== Опция -x ===&lt;br /&gt;
&lt;br /&gt;
--line-regexp&lt;br /&gt;
&lt;br /&gt;
Еще более строгая. Она отберет только те строки исследуемого файла или файлов, которые полностью совпадают с ОБРАЗЦОМ.&lt;br /&gt;
&lt;br /&gt;
  grep -x &amp;quot;1234&amp;quot; example/*&lt;br /&gt;
  &lt;br /&gt;
  example/123.txt:1234&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Внимание:''''' Мне попадались (на собственном компьютере) версии grep (например, GNU 2.5), в которых опция -x работала неадекватно. В то же время, другие версии (GNU 2.5.1) работали прекрасно. Если что-то не ладится с этой опцией, попробуйте другую версию, или обновите свою.&lt;br /&gt;
&lt;br /&gt;
=== Опция -l ===&lt;br /&gt;
&lt;br /&gt;
--files-with-matches&lt;br /&gt;
&lt;br /&gt;
Команда grep с этой опцией не возвращает строки, содержащие ОБРАЗЕЦ, но сообщает лишь имена файлов, в которых данный образец найден:&lt;br /&gt;
&lt;br /&gt;
  grep -l 'Алиса' example/*&lt;br /&gt;
  &lt;br /&gt;
  example/alice.txt&lt;br /&gt;
&lt;br /&gt;
Замечу, что сканирование каждого из заданных файлов продолжается только до первого совпадения с ОБРАЗЦОМ.&lt;br /&gt;
&lt;br /&gt;
=== Опция -L ===&lt;br /&gt;
&lt;br /&gt;
--files-without-match&lt;br /&gt;
&lt;br /&gt;
Наоборот, сообщает имена тех файлов, где не встретился ОБРАЗЕЦ:&lt;br /&gt;
&lt;br /&gt;
  grep -L 'Алиса' example/*&lt;br /&gt;
  &lt;br /&gt;
  example/123.txt&lt;br /&gt;
  example/ast.txt&lt;br /&gt;
&lt;br /&gt;
Как мы имели случай заметить, команда grep, в поисках соответствия ОБРАЗЦУ, просматривает только содержимое файлов, но не их имена. А так часто нужно найти файл по его имени или другим параметрам, например времени модификации! Тут нам придет на помощь простейший программный канал (pipe). При помощи знака программного канала - вертикальной черты (|) мы можем направить вывод команды ls, то есть список файлов в текущей директории, на ввод команды grep, не забыв указать, что мы, собственно, ищем (ОБРАЗЕЦ). Например:&lt;br /&gt;
&lt;br /&gt;
  ls | grep grep&lt;br /&gt;
  &lt;br /&gt;
  grep/&lt;br /&gt;
  grep-ru.txt&lt;br /&gt;
&lt;br /&gt;
Находясь в директории Desktop, мы &amp;quot;попросили&amp;quot; найти на Рабочем столе все файлы, в названии которых есть выражение &amp;quot;grep&amp;quot;. И нашли одну директорию grep/ и текстовой файл grep-ru.txt, который я в данный момент и пишу.&lt;br /&gt;
&lt;br /&gt;
Если мы хотим искать по другим параметрам файла, а не по его имени, то следует применить команду ls -l, которая выводит файлы со всеми параметрами:&lt;br /&gt;
&lt;br /&gt;
  ls -l | grep 2008-12-30&lt;br /&gt;
  -rw-r--r-- 1 ya users 27 2008-12-30 08:06 123.txt&lt;br /&gt;
  drwxr-xr-x 2 ya users 4096 2008-12-30 08:49 example/&lt;br /&gt;
  -rw-r--r-- 1 ya users 11931 2008-12-30 14:59 grep-ru.txt&lt;br /&gt;
&lt;br /&gt;
И вот мы получили список всех файлов, модифицированных 30 декабря 2008 года.&lt;br /&gt;
&lt;br /&gt;
Команда grep незаменима при просмотре логов и конфигурационных файлов. Классически примером использования команды grep стал программный канал с командой dmesg. Команда dmesg выводит те самые сообщения ядра, которые мы не успеваем прочесть во время загрузки компьютера. Допустим, мы подключили через USB порт новый принтер, и теперь хотим узнать, как ядро &amp;quot;окрестило&amp;quot; его. Дадим такую команду:&lt;br /&gt;
&lt;br /&gt;
  dmesg | grep -i usb&lt;br /&gt;
&lt;br /&gt;
Опция -i необходима, так как usb часто пишется заглавными буквами. Проделайте этот пример самостоятельно - у него длинный вывод, который не укладывается в рамки данной статьи.&lt;br /&gt;
&lt;br /&gt;
== Немного хитростей ==&lt;br /&gt;
&lt;br /&gt;
Если продолжить описание множества опций команды grep, то статья станет утомительной и нечитаемой. Поэтому, рассмотрев необходимый минимум опций, можно развлечься всякими хитростями при применении этой замечательной команды.&lt;br /&gt;
&lt;br /&gt;
=== Хитрость первая ===&lt;br /&gt;
&lt;br /&gt;
Как заставить grep указать в выводе имя файла, где найдено соответствие ОБРАЗЦУ? Например, мы хотим найти строку, содержащую выражение &amp;quot;красивая девочка&amp;quot; в файле alice.txt, да так, чтобы в выводе фигурировало имя файла (для отчета). Если просто дать команду:&lt;br /&gt;
&lt;br /&gt;
  grep -w 'красивая девочка' alice.txt&lt;br /&gt;
  красивая девочка,&lt;br /&gt;
&lt;br /&gt;
То никакого имени файла там не будет. Но стоит добавить в аргументы еще один файл, как все заработает. Обычно, чтобы избежать неожиданностей, указывают файл /dev/null:&lt;br /&gt;
&lt;br /&gt;
  grep -w 'красивая девочка' alice.txt /dev/null&lt;br /&gt;
  alice.txt:красивая девочка,&lt;br /&gt;
&lt;br /&gt;
=== Хитрость вторая ===&lt;br /&gt;
&lt;br /&gt;
Используя &amp;quot;чистые&amp;quot; опции команды grep, мы можем получить все строки, содержащие ОБРАЗЕЦ либо в составе других слов (без опций), либо в виде заданного слова (опция -w). А как найти слова, которые заканчиваются на -ОБРАЗЕЦ или начинаются с ОБРАЗЕЦ-? Для этого существуют специальные значки: \&amp;lt; означает, что ОБРАЗЕЦ будет началом слова, и \&amp;gt;, означающий, что ОБРАЗЕЦ будет концом слова.&lt;br /&gt;
&lt;br /&gt;
  grep 'kot' kot.txt&lt;br /&gt;
  kot&lt;br /&gt;
  kotoroe&lt;br /&gt;
  antrekot&lt;br /&gt;
  kotovasiya&lt;br /&gt;
  okot&lt;br /&gt;
  skotobaza&lt;br /&gt;
  nekotoroe&lt;br /&gt;
&lt;br /&gt;
Это был файл kot.txt целиком.&lt;br /&gt;
&lt;br /&gt;
  grep 'kot\&amp;gt;' kot.txt&lt;br /&gt;
  kot&lt;br /&gt;
  antrekot&lt;br /&gt;
  okot&lt;br /&gt;
&lt;br /&gt;
А это были слова, оканчивающиеся на -kot.&lt;br /&gt;
&lt;br /&gt;
  grep '\&amp;lt;kot' kot.txt&lt;br /&gt;
  kot&lt;br /&gt;
  kotoroe&lt;br /&gt;
  kotovasiya&lt;br /&gt;
&lt;br /&gt;
Эти начинаются на kot-.&lt;br /&gt;
&lt;br /&gt;
  grep '\&amp;lt;kot\&amp;gt;' kot.txt&lt;br /&gt;
  kot&lt;br /&gt;
&lt;br /&gt;
А вот был &amp;quot;чистый&amp;quot; кот.&lt;br /&gt;
&lt;br /&gt;
Прошу простить за транслитерацию, но с нашими буквами эта хитрость как-то не срабатывает, а с английскими словами не все поймут.&lt;br /&gt;
&lt;br /&gt;
=== Хитрость третья ===&lt;br /&gt;
&lt;br /&gt;
Как быть, если ОБРАЗЕЦ начинается с дефиса, ведь команда примет его за опцию?&lt;br /&gt;
&lt;br /&gt;
Попробуем:&lt;br /&gt;
&lt;br /&gt;
  grep  '--анонимность' anonim.txt&lt;br /&gt;
  grep: unrecognized option `--анонимность'&lt;br /&gt;
&lt;br /&gt;
Так и есть - принимает за опцию. Ну так дадим ей опцию -e, которая означает: &amp;quot;Воспринимать ОБРАЗЕЦ только как образец&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
  grep -e '--анонимность' anonim.txt&lt;br /&gt;
  --анонимность&lt;br /&gt;
&lt;br /&gt;
Совсем другое дело.&lt;br /&gt;
&lt;br /&gt;
=== Хитрость четвертая ===&lt;br /&gt;
&lt;br /&gt;
Как посмотреть соседние строчки?&lt;br /&gt;
&lt;br /&gt;
  grep -C 2 -e  '--анонимность' anonim.txt&lt;br /&gt;
&lt;br /&gt;
Требуется соблюсти следующие условия:&lt;br /&gt;
  --анонимность&lt;br /&gt;
  --секретность&lt;br /&gt;
  --неразглашение.&lt;br /&gt;
&lt;br /&gt;
Просмотр вверх и вниз на две строки.&lt;br /&gt;
&lt;br /&gt;
 grep -A 1 -e  '--анонимность' anonim.txt&lt;br /&gt;
  --анонимность&lt;br /&gt;
  --секретность&lt;br /&gt;
&lt;br /&gt;
Просмотр вниз на одну строку.&lt;br /&gt;
&lt;br /&gt;
  grep -B 1 -e  '--анонимность' anonim.txt&lt;br /&gt;
&lt;br /&gt;
Требуется соблюсти следующие условия:&lt;br /&gt;
  --анонимность&lt;br /&gt;
&lt;br /&gt;
Просмотр вверх на одну строку.&lt;br /&gt;
&lt;br /&gt;
=== Хитрость пятая ===&lt;br /&gt;
&lt;br /&gt;
  grep -r menu /boot&lt;br /&gt;
  &lt;br /&gt;
  Бинарный файл /boot/grub/stage2 совпадает&lt;br /&gt;
  Бинарный файл /boot/grub/stage2_eltorito совпадает&lt;br /&gt;
  /boot/grub/grub.txt:Highlight the menu entry you want to edit and press 'e', then&lt;br /&gt;
  /boot/grub/grub.txt:Press the [Esc] key to return to the GRUB menu.&lt;br /&gt;
  /boot/grub/menu.lst:# GRUB configuration file '/boot/grub/menu.lst'.&lt;br /&gt;
  /boot/grub/menu.lst:gfxmenu (hd0,3)/boot/message&lt;br /&gt;
&lt;br /&gt;
Что означают сообщения в первых двух строках вывода?&lt;br /&gt;
&lt;br /&gt;
Сообщение &amp;quot;Бинарный файл совпадает&amp;quot; (&amp;quot;Binary file matches&amp;quot;) появляется, когда совпадение с образцом встречается в бинарных файлах. Если бы grep вывел строки из таких файлов на дисплей, толку было бы немного, а на дисплее могла возникнуть неразбериха (а может быть, и чего похуже, если драйвер терминала воспримет какие-либо фрагменты бинарного файла как команды). Если вы хотите все-таки увидеть эти строки, то применяйте опцию -a или --binary-files=text. Если хотите подавить вывод сообщений &amp;quot;Бинарный файл совпадает&amp;quot;, то применяйте опцию -I или --binary-files=without-match.&lt;br /&gt;
&lt;br /&gt;
=== Хитрость шестая ===&lt;br /&gt;
&lt;br /&gt;
Как искать строки, содержащие несколько ОБРАЗЦОВ?&lt;br /&gt;
&lt;br /&gt;
Применить программный канал, канализируя вывод одной команды grep с вводом следующей команды grep.&lt;br /&gt;
&lt;br /&gt;
  grep 'у' example/* | grep '*'&lt;br /&gt;
  example/alice.txt:у нее такая ******&lt;br /&gt;
&lt;br /&gt;
Первый grep ищет у нас &amp;quot;у&amp;quot;, а второй - &amp;quot;*&amp;quot; и оба находят искомое в одной строке: &amp;quot;у нее такая ******&amp;quot;. Можно сделать эту цепочку команд grep любой длины, было бы чего искать, да строчки достаточно длинные :-)&lt;br /&gt;
&lt;br /&gt;
=== Хитрость седьмая ===&lt;br /&gt;
&lt;br /&gt;
Можно ли искать одновременно в стандартном вводе и в файле?. Можно, если перед именем файла поставить дефис:&lt;br /&gt;
&lt;br /&gt;
  echo многие употребляют астериск неправильно | grep 'астериск' - example/*&lt;br /&gt;
  (стандартный ввод):многие употребляют астериск неправильно&lt;br /&gt;
  example/ast.txt:Символ астериска&lt;br /&gt;
&lt;br /&gt;
'''''Внимание:''''' Если перед дефисом и после него не будет пробелов, то команда не сработает.&lt;br /&gt;
&lt;br /&gt;
Но настало время вернуться к опциям команды grep.&lt;br /&gt;
&lt;br /&gt;
Пока я занимался хитростями, успел позабыть, какие из опций уже описал, а какие нет. Поэтому я дал команду:&lt;br /&gt;
&lt;br /&gt;
  grep 'Опция' grep-ru.txt &amp;gt; option.txt&lt;br /&gt;
&lt;br /&gt;
и получил файл option.txt, в котором перечислены все фигурирующие в файле grep-ru.txt опции.&lt;br /&gt;
&lt;br /&gt;
Общее количество опций программы подавляет, поэтому пойдем по алфавиту, пропуская те, что я уже описал.&lt;br /&gt;
&lt;br /&gt;
  Опция -f имя_файла&lt;br /&gt;
  --file=имя_файла&lt;br /&gt;
&lt;br /&gt;
Весьма полезная опция, когда нужно искать несколько ОБРАЗЦОВ, причем не в одной строке, как мы делали в шестой Хитрости, а в разных. Для того чтобы воспользоваться этой опцией, нужно составить файл, в котором поместить искомые ОБРАЗЦЫ по одному на строчке:&lt;br /&gt;
&lt;br /&gt;
  pattern.txt:&lt;br /&gt;
  nobody&lt;br /&gt;
  root&lt;br /&gt;
  ya&lt;br /&gt;
&lt;br /&gt;
А затем дать команду:&lt;br /&gt;
&lt;br /&gt;
  grep -f pattern.txt /etc/passwd&lt;br /&gt;
  nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash&lt;br /&gt;
  root:x:0:0:root:/root:/bin/bash&lt;br /&gt;
  ya:x:1000:100:alex dmitriev:/home/ya:/bin/bash&lt;br /&gt;
&lt;br /&gt;
'''''Предупреждение:''''' Эта полезная опция, к сожалению, работает не на всех версиях grep. На версии GNU grep 2.5 работает неадекватно, а на GNU grep 2.5.1 - прекрасно. Так что обновляйтесь, господа. Текущая стабильная версия GNU grep - 2.5.3.&lt;br /&gt;
&lt;br /&gt;
=== Опция -o ===&lt;br /&gt;
&lt;br /&gt;
--only-matching&lt;br /&gt;
&lt;br /&gt;
Возвращает не всю строку, где найдено соответствие ОБРАЗЦУ, а только совпадающую с ОБРАЗЦОМ часть строки.&lt;br /&gt;
&lt;br /&gt;
Без опции -o:&lt;br /&gt;
&lt;br /&gt;
$ grep 'английскими' grep-ru.txt&lt;br /&gt;
&lt;br /&gt;
Прошу простить за транслитерацию, но с нашими буквами как-то эта хитрость не срабатывает,&lt;br /&gt;
а с английскими словами не все поймут.&lt;br /&gt;
&lt;br /&gt;
А вот с опцией -o:&lt;br /&gt;
&lt;br /&gt;
  grep -o 'английскими' grep-ru.txt&lt;br /&gt;
  английскими&lt;br /&gt;
&lt;br /&gt;
=== Опция -q ===&lt;br /&gt;
&lt;br /&gt;
--quiet --silent&lt;br /&gt;
&lt;br /&gt;
Ничего не выдает на стандартный вывод. В случае нахождения соответствия с ОБРАЗЦОМ немедленно отключается с нулевым статусом. Отключается также при обнаружении ошибки. Для чего это - не знаю. У меня получалось, что программа мгновенно прекращает работу, есть ли совпадения, нет ли, без всяких сообщений, в том числе и о нулевом статусе. Опробовал обе доступные версии grep.&lt;br /&gt;
&lt;br /&gt;
=== Опция -s ===&lt;br /&gt;
&lt;br /&gt;
--no-messages&lt;br /&gt;
&lt;br /&gt;
Подавляет сообщения о несуществующих или нечитаемых файлах.&lt;br /&gt;
&lt;br /&gt;
Предупреждение: традиционные версии последних двух опции (-q и -s) не соответствуют стандарту POSIX.2 и не совпадают с GNU версиями. Поэтому их нельзя применять в скриптах для командной оболочки. Просто перенаправляйте вывод на /dev/null.&lt;br /&gt;
&lt;br /&gt;
== Опции - расширения GNU ==&lt;br /&gt;
&lt;br /&gt;
'''Опции'''&lt;br /&gt;
-A --after-context=ЧИСЛО_СТРОК&lt;br /&gt;
&lt;br /&gt;
-B --before-context=ЧИСЛО_СТРОК&lt;br /&gt;
&lt;br /&gt;
-C --context=ЧИСЛО_СТРОК&lt;br /&gt;
&lt;br /&gt;
С этими тремя опциями мы уже познакомились в четвертой Хитрости, они позволяют посмотреть соседние строки. -A: количество строк после совпадения с ОБРАЗЦОМ,&lt;br /&gt;
&lt;br /&gt;
-B: количество строк перед совпадением, и -C: количество строк вокруг совпадения.&lt;br /&gt;
&lt;br /&gt;
Опция --colour[=КОГДА]&lt;br /&gt;
&lt;br /&gt;
Выделяет найденные строки цветом. Значения КОГДА могут быть: never (никогда), always (всегда), или auto. Пример:&lt;br /&gt;
&lt;br /&gt;
  grep -o 'английскими' --color grep-ru.txt&lt;br /&gt;
  английскими&lt;br /&gt;
&lt;br /&gt;
=== Опция -D ДЕЙСТВИЕ ===&lt;br /&gt;
&lt;br /&gt;
--devices=ДЕЙСТВИЕ&lt;br /&gt;
&lt;br /&gt;
Если исследуемый файл является файлом устройства, FIFO (именованным каналом) или сокетом, то следует применять эту опцию. ДЕЙСТВИЙ всего два: read (прочесть), и skip (пропустить). Если вы указываете ДЕЙСТВИЕ read (используется по умолчанию), то программа попытается прочесть специальный файл, как если бы он был обычным файлом; если указываете ДЕЙСТВИЕ skip, то файлы устройств, FIFO и сокеты будут молча проигнорированы.&lt;br /&gt;
&lt;br /&gt;
=== Опция -d ДЕЙСТВИЕ ===&lt;br /&gt;
&lt;br /&gt;
--directories=ДЕЙСТВИЕ&lt;br /&gt;
&lt;br /&gt;
Если входной файл является директорией, то используйте эту опцию. ДЕЙСТВИЕ read (прочесть) попытается прочесть директорию как обычный файл (некоторые ОС и файловые системы запрещают это; тогда появятся соответствующие сообщения, либо директории молча пропустят). Если ДЕЙСТВИЕ skip (пропустить), то директории будут молча проигнорированы. Если ДЕЙСТВИЕ recurse (рекурсивно), то grep будет просматривать все файлы и субдиректории внутри заданного каталога рекурсивно. Это эквивалент опции -r, с которой мы уже познакомились.&lt;br /&gt;
&lt;br /&gt;
=== Опция -H ===&lt;br /&gt;
&lt;br /&gt;
--with-filename&lt;br /&gt;
&lt;br /&gt;
Выдает имя файла для каждого совпадения с ОБРАЗЦОМ. Мы успешно делали это без всяких опций в Хитрости второй.&lt;br /&gt;
&lt;br /&gt;
=== Опция -h ===&lt;br /&gt;
&lt;br /&gt;
--no-filename&lt;br /&gt;
&lt;br /&gt;
Подавляет вывод имен файлов, когда задано несколько файлов для исследования.&lt;br /&gt;
&lt;br /&gt;
=== Опция -I ===&lt;br /&gt;
&lt;br /&gt;
Обрабатывает бинарные файлы как не содержащие совпадений с ОБРАЗЦОМ; эквивалент опции --binary-files=without-match.&lt;br /&gt;
&lt;br /&gt;
=== Опция --include=ОБРАЗЕЦ_имени_файла ===&lt;br /&gt;
&lt;br /&gt;
При рекурсивном исследовании директорий обследовать только файлы, содержащие в своем имени ОБРАЗЕЦ_имени_файла.&lt;br /&gt;
&lt;br /&gt;
=== Опция --exclude=ОБРАЗЕЦ_имени_файла ===&lt;br /&gt;
&lt;br /&gt;
При рекурсивном исследовании директорий пропускать файлы, содержащие в своем имени ОБРАЗЕЦ_имени_файла.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Опция -m ЧИСЛО_СТРОК ===&lt;br /&gt;
&lt;br /&gt;
--max-count=ЧИСЛО_СТРОК&lt;br /&gt;
&lt;br /&gt;
Прекратить обработку файла после того, как количество совпадений с ОБРАЗЦОМ достигнет ЧИСЛА_СТРОК:&lt;br /&gt;
&lt;br /&gt;
  grep -m 2 'kot' kot.txt&lt;br /&gt;
  kot&lt;br /&gt;
  kotoroe&lt;br /&gt;
&lt;br /&gt;
=== Опция -y ===&lt;br /&gt;
&lt;br /&gt;
Синоним опции -i (не различать верхний и нижний регистр символов).&lt;br /&gt;
&lt;br /&gt;
Опции -U и -u применяются только под MS-DOS и MS-Windows, тут нечего о них говорить.&lt;br /&gt;
&lt;br /&gt;
=== Опция --mmap ===&lt;br /&gt;
&lt;br /&gt;
Использует системный вызов mmap вместо системного вызова read. Может дать лучшую производительность, а может привести к ошибкам. Это для продвинутых пользователей.&lt;br /&gt;
&lt;br /&gt;
=== Опция -Z ===&lt;br /&gt;
&lt;br /&gt;
--null&lt;br /&gt;
&lt;br /&gt;
Если в выводе программы имена файлов (например при опции -l), то опция -Z после каждого имени файла выводит нулевой байт вместо символа новой строки (как обычно происходит). Это делает вывод однозначным, даже если имена файлов содержат символы новой строки. Эта опция может быть использована совместно с такими командами как: find -print0, perl -0, sort -z, xargs -0 для обработки файловых имен, составленных необычно, даже содержащих символы новой строки.&lt;br /&gt;
(Хотел бы я знать, как можно включить символ новой строки в имя файла. Если кто знает, не поленитесь - сообщите мне.)&lt;br /&gt;
&lt;br /&gt;
=== Опция -z ===&lt;br /&gt;
&lt;br /&gt;
--null-data&lt;br /&gt;
&lt;br /&gt;
Рассматривает ввод как набор строк, каждая из которых заканчивается не символом новой строки, а нулевым байтом. Как и предыдущая опция, используется совместно с вышеперечисленными командами для обработки экзотических имен файлов.&lt;br /&gt;
&lt;br /&gt;
== Команда grep и регулярные выражения ==&lt;br /&gt;
&lt;br /&gt;
Регулярные выражения (Regular Expressions) это система синтаксического разбора текстовых фрагментов по формализованному шаблону, основанная на системе записи ОБРАЗЦОВ для поиска. Проще говоря, регулярное выражение - тот же, уже привычный нам ОБРАЗЕЦ для поиска, только составленный по определенным правилам. Как математические формулы составляются при помощи набора операторов (плюс, минус, степень, корень и прочее), так и регулярные выражения конструируются при помощи различных операторов (?, *, +, {n} и прочие).&lt;br /&gt;
&lt;br /&gt;
Тема регулярных выражений настолько обширна, что требует для своего освещения отдельной статьи; в данной статье мы не будем ее подробно разбирать. Скажу лишь, что существует несколько версий синтаксиса регулярных выражений: Базовый (basic) BRE, Расширенный (extended) ERE и регулярные выражения языка Perl.&lt;br /&gt;
&lt;br /&gt;
=== Опция -G ===&lt;br /&gt;
&lt;br /&gt;
--basic-regexp&lt;br /&gt;
&lt;br /&gt;
Рассматривает ОБРАЗЕЦ как базовое регулярное выражение. Эта опция используется по умолчанию.&lt;br /&gt;
&lt;br /&gt;
=== Опция -E ===&lt;br /&gt;
&lt;br /&gt;
--extended-regexp&lt;br /&gt;
&lt;br /&gt;
Рассматривает ОБРАЗЕЦ как расширенное регулярное выражение.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Опция -P ===&lt;br /&gt;
&lt;br /&gt;
--perl-regexp&lt;br /&gt;
&lt;br /&gt;
Рассматривает ОБРАЗЕЦ как регулярное выражение языка Perl.&lt;br /&gt;
&lt;br /&gt;
=== Опция -F ===&lt;br /&gt;
&lt;br /&gt;
--fixed-strings&lt;br /&gt;
&lt;br /&gt;
Рассматривает ОБРАЗЕЦ как список &amp;quot;фиксированных выражений&amp;quot; (fixed strings - термин из области регулярных выражений), разделенных символами новой строки. Будет искать соответствия любому из них.&lt;br /&gt;
&lt;br /&gt;
Кроме того, существуют две альтернативные команды EGREP и FGREP. Обе они соответствуют опциям -E и -F соответственно.&lt;br /&gt;
&lt;br /&gt;
Опции --help и --version (-V) общеизвестны, и я не буду на них останавливаться.&lt;br /&gt;
&lt;br /&gt;
== Команда grep и символы кириллицы. ==&lt;br /&gt;
&lt;br /&gt;
Читая эту статью, вы не могли не заметить, что большинство примеров составлено на русском языке. Я еще не встречал консольных команд, столь хорошо &amp;quot;владеющих русским&amp;quot;. Теперь, когда я разобрался с этой командой, то уже не понимаю, как мог обходиться без нее при написании статей (по-русски, разумеется). Лишь некоторые опции &amp;quot;дают прокол&amp;quot; при обработке символов кириллицы.&lt;br /&gt;
&lt;br /&gt;
== Резюме команды grep ==&lt;br /&gt;
&lt;br /&gt;
Команда grep настолько полезна, многофункциональна и проста в употреблении, что, однажды познакомившись с ней, невозможно представить себе работы без нее. Особенно полезна эта команда в качестве фильтра в составе программных каналов (pipes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Информация взята с [http://open-club.ru/main/reading/HuMan_grep open-club.ru]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Man]]&lt;br /&gt;
[[Категория:Не наши статьи]]&lt;br /&gt;
[[Категория:Хорошая статья]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=96</id>
		<title>Uvesafb</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=96"/>
		<updated>2011-03-24T16:29:57Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Он поддерживает больше функций, чем стандартный vesafb и является более предпочтительным в использовании (особенно это касается систем с nvidia-видеокартами с проприетарным видеодрайвером). Требования к поддержке оборудования такие же, как и для vesafb. &lt;br /&gt;
&lt;br /&gt;
= Демон виртуализации  =&lt;br /&gt;
&lt;br /&gt;
Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации. &lt;br /&gt;
&lt;br /&gt;
Дальнейшие инструкции предназначены для ArchLinux. Для остальных дистрибутивов инструкции будут дополнены позднее. &lt;br /&gt;
&lt;br /&gt;
== v86d  ==&lt;br /&gt;
&lt;br /&gt;
Установите v86d с помощью pacman &lt;br /&gt;
&lt;br /&gt;
 # pacman -S v86d&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc. &lt;br /&gt;
&lt;br /&gt;
= Подготовка к установке  =&lt;br /&gt;
&lt;br /&gt;
#Удалите любые параметры ядра, относящиеся к настройке фреймбуфера с конфигурации загрузчика: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux).&lt;br /&gt;
&lt;br /&gt;
#Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации ''Ctrl+Alt+Del''. Для карт Intel укажите в конфиг-файле Grub параметр &amp;lt;nowiki&amp;gt;i915.modeset=0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Параметры uvesafb  ==&lt;br /&gt;
&lt;br /&gt;
Все параметры модуля Вы сможете найти в /etc/modprobe.d/uvesafb.conf (или в общем конфиге /etc/modprobe.d/modprobe.conf). Исходный файл пакета v86d содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию: &lt;br /&gt;
&lt;br /&gt;
 #This file sets the parameters for uvesafb module. &lt;br /&gt;
 #The following format should be used: &lt;br /&gt;
 #options uvesafb mode=&amp;amp;lt;xres&amp;amp;gt;x&amp;amp;lt;yres&amp;amp;gt;[-&amp;amp;lt;bpp&amp;amp;gt;][@&amp;amp;lt;refresh&amp;amp;gt;] scroll=&amp;amp;lt;ywrap|ypan|redraw&amp;amp;gt; ... &lt;br /&gt;
 #&lt;br /&gt;
 #For more details see: &lt;br /&gt;
 #http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt &lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 options uvesafb mode=1280x800-32 scroll=ywrap  &lt;br /&gt;
 &lt;br /&gt;
 C 2.6.27 и выше строчка options должна выглядеть так: &lt;br /&gt;
 &lt;br /&gt;
 ... options uvesafb mode_option=1280x800-32 scroll=ywrap &lt;br /&gt;
&lt;br /&gt;
Для получения списков поддерживаемых режимов экрана наберите &lt;br /&gt;
&lt;br /&gt;
 cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes&lt;br /&gt;
&lt;br /&gt;
== Hooks  ==&lt;br /&gt;
&lt;br /&gt;
Добавьте &amp;lt;nowiki&amp;gt;v86d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Руководства]]&lt;br /&gt;
[[Категория:Графика]]&lt;br /&gt;
[[Категория:Незавершённые статьи]]&lt;br /&gt;
[[Категория:Переводы с английского]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%97%D0%B2%D1%83%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D1%8B_BIOS&amp;diff=95</id>
		<title>Звуковые сигналы BIOS</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%97%D0%B2%D1%83%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D1%8B_BIOS&amp;diff=95"/>
		<updated>2011-03-24T16:28:08Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Во время начальной загрузки компьютера при помощи программ, записанных в BIOS происходит первоначальная проверка. В случае сбоя во время проверки BIOS может выдать информацию, позволяющую выявить причину сбоя. Кроме вывода сообщения на монитор, используется звуковой сигнал, воспроизводимый при помощи встроенного динамика. Звуковые сигналы по высоте тона, продолжительности и комбинациям могут разниться в зависимости от производителя и версии BIOS. &lt;br /&gt;
&lt;br /&gt;
== Таблицы звуковых сигналов  ==&lt;br /&gt;
&lt;br /&gt;
=== IBM BIOS  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Последовательность звуковых сигналов&lt;br /&gt;
! Описание ошибки&lt;br /&gt;
|-&lt;br /&gt;
| 1 короткий &lt;br /&gt;
| Успешный [[POST|POST]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 сигнал и пустой экран &lt;br /&gt;
| Неисправна видеосистема&lt;br /&gt;
|-&lt;br /&gt;
| 2 коротких &lt;br /&gt;
| Неисправна видеосистема (не подключен монитор)&lt;br /&gt;
|-&lt;br /&gt;
| 3 длинных &lt;br /&gt;
| Неисправна материнская плата (ошибка контроллера клавиатуры)&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 1 короткий &lt;br /&gt;
| Неисправна материнская плата&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 2 коротких &lt;br /&gt;
| Неисправна видеосистема (Mono/CGA)&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 3 коротких &lt;br /&gt;
| Неисправна видеосистема (EGA/VGA)&lt;br /&gt;
|-&lt;br /&gt;
| Повторяющийся короткий &lt;br /&gt;
| Неисправности связаны с блоком питания&lt;br /&gt;
|-&lt;br /&gt;
| Непрерывный &lt;br /&gt;
| Проблемы с блоком питания&lt;br /&gt;
|-&lt;br /&gt;
| Отсутствует &lt;br /&gt;
| Неисправен блок питания&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Award BIOS  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Последовательность звуковых сигналов&lt;br /&gt;
! Описание ошибки&lt;br /&gt;
|-&lt;br /&gt;
| 1 короткий &lt;br /&gt;
| Успешный [[POST|POST]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 коротких &lt;br /&gt;
| Обнаружены незначительные ошибки. На экране монитора появляется предложение войти в программу CMOS Setup Utility и исправить ситуацию. Проверьте надежность крепления шлейфов в разъемах жесткого диска и материнской платы.&lt;br /&gt;
|-&lt;br /&gt;
| 3 длинных &lt;br /&gt;
| Ошибка контроллера клавиатуры&lt;br /&gt;
|-&lt;br /&gt;
| 1 короткий, 1 длинный &lt;br /&gt;
| Ошибка оперативной памяти (RAM)&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 2 коротких &lt;br /&gt;
| Ошибка видеокарты&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 3 коротких &lt;br /&gt;
| Ошибка при инициализации клавиатуры или Ошибка видеокарты&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 9 коротких &lt;br /&gt;
| Ошибка при чтении из ПЗУ&lt;br /&gt;
|-&lt;br /&gt;
| Повторяющийся короткий &lt;br /&gt;
| Проблемы с блоком питания&lt;br /&gt;
|-&lt;br /&gt;
| Повторяющийся длинный &lt;br /&gt;
| Проблемы с ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| Повторяющаяся высокая-низкая частота &lt;br /&gt;
| Проблемы с CPU&lt;br /&gt;
|-&lt;br /&gt;
| Непрерывный &lt;br /&gt;
| Проблемы с блоком питания&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== AMI BIOS  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Последовательность звуковых сигналов&lt;br /&gt;
! Описание ошибки&lt;br /&gt;
|-&lt;br /&gt;
| 1 короткий &lt;br /&gt;
| Ошибок не обнаружено, ПК исправен&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 1 короткий &lt;br /&gt;
| Проблемы с блоком питания&lt;br /&gt;
|-&lt;br /&gt;
| 2 коротких &lt;br /&gt;
| Ошибка чётности RAM или вы забыли выключить Сканер или Принтер&lt;br /&gt;
|-&lt;br /&gt;
| 3 коротких &lt;br /&gt;
| Ошибка в первых 64 КБ RAM&lt;br /&gt;
|-&lt;br /&gt;
| 4 коротких &lt;br /&gt;
| Неисправность системного таймера&lt;br /&gt;
|-&lt;br /&gt;
| 5 коротких &lt;br /&gt;
| Проблемы с процессором&lt;br /&gt;
|-&lt;br /&gt;
| 6 коротких &lt;br /&gt;
| Ошибка инициализации контроллера клавиатуры&lt;br /&gt;
|-&lt;br /&gt;
| 7 коротких &lt;br /&gt;
| Проблемы с материнской платой&lt;br /&gt;
|-&lt;br /&gt;
| 8 коротких &lt;br /&gt;
| Ошибка памяти видеокарты&lt;br /&gt;
|-&lt;br /&gt;
| 9 коротких &lt;br /&gt;
| Контрольная сумма BIOS неверна&lt;br /&gt;
|-&lt;br /&gt;
| 10 коротких &lt;br /&gt;
| Ошибка записи в CMOS&lt;br /&gt;
|-&lt;br /&gt;
| 11 коротких &lt;br /&gt;
| Ошибка Кэша, расположенного на системной плате&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 2 коротких &lt;br /&gt;
| Ошибка видеокарты (Mono-CGA)&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 3 коротких &lt;br /&gt;
| Ошибка видеокарты (EGA-VGA)&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 8 коротких &lt;br /&gt;
| Проблемы с видеокартой или не подключён монитор&lt;br /&gt;
|-&lt;br /&gt;
| Отсутствует &lt;br /&gt;
| Неисправен Процессор. Возможно изогнут контакт микросхемы. Если не помогло, замените процессор.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== AST BIOS  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Последовательность звуковых сигналов&lt;br /&gt;
! Описание ошибки&lt;br /&gt;
|-&lt;br /&gt;
| 1 короткий &lt;br /&gt;
| Ошибка при проверке регистров Процессора. Неисправность Процессора&lt;br /&gt;
|-&lt;br /&gt;
| 2 коротких &lt;br /&gt;
| Ошибка буфера клавиатурного контроллера. Неисправность клавиатурного контроллера.&lt;br /&gt;
|-&lt;br /&gt;
| 3 коротких &lt;br /&gt;
| Ошибка сброса клавиатурного контроллера. Неисправность клавиатурного контроллера или системной платы.&lt;br /&gt;
|-&lt;br /&gt;
| 4 коротких &lt;br /&gt;
| Ошибка связи с клавиатурой.&lt;br /&gt;
|-&lt;br /&gt;
| 5 коротких &lt;br /&gt;
| Ошибка клавиатурного ввода.&lt;br /&gt;
|-&lt;br /&gt;
| 6 коротких &lt;br /&gt;
| Ошибка системной платы.&lt;br /&gt;
|-&lt;br /&gt;
| 9 коротких &lt;br /&gt;
| Несовпадение контрольной суммы ПЗУ BIOS. Неисправна микросхема ПЗУ BIOS.&lt;br /&gt;
|-&lt;br /&gt;
| 10 коротких &lt;br /&gt;
| Ошибка системного таймера. Системная Микросхема таймера неисправна.&lt;br /&gt;
|-&lt;br /&gt;
| 11 коротких &lt;br /&gt;
| Ошибка чипсета.&lt;br /&gt;
|-&lt;br /&gt;
| 12 коротких &lt;br /&gt;
| Ошибка регистра управления питанием в энергонезависимой памяти.&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный &lt;br /&gt;
| Ошибка контроллера DMA 0. Неисправна Микросхема контроллера DMA канала 0.&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 1 короткий &lt;br /&gt;
| Ошибка контроллера DMA 1. Неисправна микросхема контроллера DMA канала 1.&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 2 коротких &lt;br /&gt;
| Ошибка гашения обратного хода кадровой развёртки. Возможно, неисправен видеоадаптер.&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 3 коротких &lt;br /&gt;
| Ошибка в видеопамяти. Неисправна память видеоадаптера.&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 4 коротких &lt;br /&gt;
| Ошибка видеоадаптера. Неисправен видеоадаптер.&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 5 коротких &lt;br /&gt;
| Ошибка памяти 64K.&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 6 коротких &lt;br /&gt;
| Не удалось загрузить векторы прерываний. BIOS не смог загрузить векторы прерываний в память&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 7 коротких &lt;br /&gt;
| Не удалось инициализировать видеооборудование.&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный, 8 коротких &lt;br /&gt;
| Ошибка видеопамяти.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Phoenix BIOS  ===&lt;br /&gt;
&lt;br /&gt;
Beep-коды представлены в количестве звуковых сигналов. Например, 1-1-2 означает 1 звуковой сигнал, пауза, 1 звуковой сигнал, пауза, и 2 звуковых сигнала. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Последовательность звуковых сигналов&lt;br /&gt;
! Описание ошибки&lt;br /&gt;
|-&lt;br /&gt;
| 1-1-2&lt;br /&gt;
|-&lt;br /&gt;
| 1-1-3 &lt;br /&gt;
| Ошибка записи/чтения данных в/из CMOS-памяти.&lt;br /&gt;
|-&lt;br /&gt;
| 1-1-4 &lt;br /&gt;
| Обнаружена ошибка при подсчете контрольной суммы содержимого BIOS.&lt;br /&gt;
|-&lt;br /&gt;
| 1-2-1 &lt;br /&gt;
| Ошибка инициализации материнской платы.&lt;br /&gt;
|-&lt;br /&gt;
| 1-2-2 или 1-2-3 &lt;br /&gt;
| Ошибка инициализации контроллера DMA.&lt;br /&gt;
|-&lt;br /&gt;
| 1-3-1 &lt;br /&gt;
| Ошибка инициализации схемы регенерации оперативной памяти.&lt;br /&gt;
|-&lt;br /&gt;
| 1-3-3 или 1-3-4 &lt;br /&gt;
| Ошибка инициализации первых 64 Кбайт оперативной памяти.&lt;br /&gt;
|-&lt;br /&gt;
| 1-4-1 &lt;br /&gt;
| Ошибка инициализации материнской платы.&lt;br /&gt;
|-&lt;br /&gt;
| 1-4-2 &lt;br /&gt;
| Ошибка инициализации оперативной памяти.&lt;br /&gt;
|-&lt;br /&gt;
| 1-4-3 &lt;br /&gt;
| Ошибка инициализации системного таймера.&lt;br /&gt;
|-&lt;br /&gt;
| 1-4-4 &lt;br /&gt;
| Ошибка записи/чтения в/из одного из портов ввода/вывода.&lt;br /&gt;
|-&lt;br /&gt;
| 2-1-1 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 0-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-1-2 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 1-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-1-3 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 2-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-1-4 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 3-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-2-1 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 4-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-2-2 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 5-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-2-3 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 6-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-2-4 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 7-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-3-1 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 8-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-3-2 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 9-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-3-3 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 10-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-3-4 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 11-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-4-1 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 12-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-4-2 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 13-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-4-3 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 14-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 2-4-4 &lt;br /&gt;
| Обнаружена ошибка при чтении/записи 15-го бита (в шестнадцатеричном представлении) первых 64 Кбайт ОЗУ&lt;br /&gt;
|-&lt;br /&gt;
| 3-1-1 &lt;br /&gt;
| Ошибка инициализации второго канала DMA.&lt;br /&gt;
|-&lt;br /&gt;
| 3-1-2 или 3-1-4 &lt;br /&gt;
| Ошибка инициализации первого канала DMA.&lt;br /&gt;
|-&lt;br /&gt;
| 3-2-4 &lt;br /&gt;
| Ошибка инициализации контроллера клавиатуры.&lt;br /&gt;
|-&lt;br /&gt;
| 3-3-4 &lt;br /&gt;
| Ошибка инициализации видеопамяти.&lt;br /&gt;
|-&lt;br /&gt;
| 3-4-1 &lt;br /&gt;
| Возникли серьёзные проблемы при попытке обращения к монитору.&lt;br /&gt;
|-&lt;br /&gt;
| 3-4-2 &lt;br /&gt;
| Не удается инициализировать BIOS видеоплаты.&lt;br /&gt;
|-&lt;br /&gt;
| 4-2-1 &lt;br /&gt;
| Ошибка инициализации системного таймера.&lt;br /&gt;
|-&lt;br /&gt;
| 4-2-2 &lt;br /&gt;
| Тестирование завершено.&lt;br /&gt;
|-&lt;br /&gt;
| 4-2-3 &lt;br /&gt;
| Ошибка инициализации контроллера клавиатуры.&lt;br /&gt;
|-&lt;br /&gt;
| 4-2-4 &lt;br /&gt;
| Критическая ошибка при переходе центрального процессора в защищенный режим.&lt;br /&gt;
|-&lt;br /&gt;
| 4-3-1 &lt;br /&gt;
| Ошибка инициализации оперативной памяти.&lt;br /&gt;
|-&lt;br /&gt;
| 4-3-2 &lt;br /&gt;
| Ошибка инициализации первого таймера.&lt;br /&gt;
|-&lt;br /&gt;
| 4-3-3 &lt;br /&gt;
| Ошибка инициализации второго таймера.&lt;br /&gt;
|-&lt;br /&gt;
| 4-4-1 &lt;br /&gt;
| Ошибка инициализации одного из последовательных портов.&lt;br /&gt;
|-&lt;br /&gt;
| 4-4-2 &lt;br /&gt;
| Ошибка инициализации параллельного порта.&lt;br /&gt;
|-&lt;br /&gt;
| 4-4-3 &lt;br /&gt;
| Ошибка инициализации математического сопроцессора.&lt;br /&gt;
|-&lt;br /&gt;
| Длинные, непрекращающиеся сигналы &lt;br /&gt;
| Неисправна материнская плата.&lt;br /&gt;
|-&lt;br /&gt;
| Звук сирены с высокого на низкую частоту &lt;br /&gt;
| Неисправна видеокарта, проверить электролитические емкости, на утечку или заменить все на новые заведомо исправные.&lt;br /&gt;
|-&lt;br /&gt;
| Непрерывный сигнал &lt;br /&gt;
| Неподключен (неисправен) кулер CPU.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Compaq BIOS  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Звуки &lt;br /&gt;
! Описание&lt;br /&gt;
|-&lt;br /&gt;
| 1 короткий &lt;br /&gt;
| Ошибок нет. Нормальная загрузка системы.&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный + 1 короткий &lt;br /&gt;
| Ошибка контрольной суммы памяти CMOS BIOS. Возможно сел аккумулятор ROM.&lt;br /&gt;
|-&lt;br /&gt;
| 2 короткий &lt;br /&gt;
| Глобальная ошибка. (Epic Fail)&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный + 2 короткий &lt;br /&gt;
| Ошибка инициализации видеокарты. Проверьте правильность установки видеокарты.&lt;br /&gt;
|-&lt;br /&gt;
| 7 сигналов (1 длинный, 1 с, 1?, 1 короткий, пауза, 1 длинный, 1 короткий, 1 короткий) &lt;br /&gt;
| Неисправность видеокарты AGP. Проверьте правильность установки.&lt;br /&gt;
|-&lt;br /&gt;
| 1 длинный постоянный &lt;br /&gt;
| Ошибка оперативной памяти, попробуйте перезагрузиться.&lt;br /&gt;
|-&lt;br /&gt;
| 1 короткий + 2 длинных &lt;br /&gt;
| Неисправность оперативной памяти. Перезагрузитесь через Reset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DELL BIOS  ===&lt;br /&gt;
&lt;br /&gt;
Beep-коды представлены в количестве звуковых сигналов. Например, 1-1-2 означает 1 звуковой сигнал, пауза, 1 звуковой сигнал, пауза, и 2 звуковых сигнала. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Последовательность звуковых сигналов&lt;br /&gt;
! Описание ошибки&lt;br /&gt;
|-&lt;br /&gt;
| 1-2 &lt;br /&gt;
| Не подключена видеокарта&lt;br /&gt;
|-&lt;br /&gt;
| 1-2-2-3 &lt;br /&gt;
| Ошибка контрольной суммы ПЗУ BIOS&lt;br /&gt;
|-&lt;br /&gt;
| 1-3-1-1 &lt;br /&gt;
| Ошибка обновления DRAM&lt;br /&gt;
|-&lt;br /&gt;
| 1-3-1-3 &lt;br /&gt;
| Ошибка клавиатуры 8742&lt;br /&gt;
|-&lt;br /&gt;
| 1-3-3-1 &lt;br /&gt;
| Неисправна память&lt;br /&gt;
|-&lt;br /&gt;
| 1-3-4-1 &lt;br /&gt;
| Ошибка ОЗУ на линии xxx&lt;br /&gt;
|-&lt;br /&gt;
| 1-3-4-3 &lt;br /&gt;
| Ошибка ОЗУ на младшем бите xxx&lt;br /&gt;
|-&lt;br /&gt;
| 1-4-1-1 &lt;br /&gt;
| Ошибка ОЗУ на старшем бите xxx&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== См. также  ==&lt;br /&gt;
 &lt;br /&gt;
*[[POST|POST]] &lt;br /&gt;
&lt;br /&gt;
== Ссылки  ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.ixbt.com/mainboard/faq/biosfaq.shtml#q16 Часто задаваемые вопросы о BIOS] &lt;br /&gt;
*[http://www.umopit.ru/CompLab/BIOSbeeps.htm Звуковые коды сообщений BIOS разных производителей] &lt;br /&gt;
*[http://bios-master.ru/ Все о BIOS и его настройке] &lt;br /&gt;
*[http://icbook.com.ua/post/_amibeep/amibios8_bootblock_beep_codes.html Звуковые сообщения загрузочного блока AMIBIOS8] &lt;br /&gt;
*[http://icbook.com.ua/post/_amibeep/amibios8_post_beep_codes.html Звуковые сообщения AMIBIOS8 POST]&lt;br /&gt;
&lt;br /&gt;
[[Категория:BIOS]]&lt;br /&gt;
[[Категория:Теория]]&lt;br /&gt;
[[Категория:Устранение неисправностей]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=94</id>
		<title>Uvesafb</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=94"/>
		<updated>2011-03-24T16:26:03Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Он поддерживает больше функций, чем стандартный vesafb и является более предпочтительным в использовании (особенно это касается систем с nvidia-видеокартами с проприетарным видеодрайвером). Требования к поддержке оборудования такие же, как и для vesafb. &lt;br /&gt;
&lt;br /&gt;
= Демон виртуализации  =&lt;br /&gt;
&lt;br /&gt;
Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации. &lt;br /&gt;
&lt;br /&gt;
Дальнейшие инструкции предназначены для ArchLinux. Для остальных дистрибутивов инструкции будут дополнены позднее. &lt;br /&gt;
&lt;br /&gt;
== v86d  ==&lt;br /&gt;
&lt;br /&gt;
Установите v86d с помощью pacman &lt;br /&gt;
&lt;br /&gt;
 # pacman -S v86d&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc. &lt;br /&gt;
&lt;br /&gt;
= Подготовка к установке  =&lt;br /&gt;
&lt;br /&gt;
#Удалите любые параметры ядра, относящиеся к настройке фреймбуфера с конфигурации загрузчика: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux).&lt;br /&gt;
&lt;br /&gt;
#Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации ''Ctrl+Alt+Del''. Для карт Intel укажите в конфиг-файле Grub параметр &amp;lt;nowiki&amp;gt;i915.modeset=0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Параметры uvesafb  ==&lt;br /&gt;
&lt;br /&gt;
Все параметры модуля Вы сможете найти в /etc/modprobe.d/uvesafb.conf (или в общем конфиге /etc/modprobe.d/modprobe.conf). Исходный файл пакета v86d содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию: &lt;br /&gt;
&lt;br /&gt;
 #This file sets the parameters for uvesafb module. &lt;br /&gt;
 #The following format should be used: &lt;br /&gt;
 #options uvesafb mode=&amp;amp;lt;xres&amp;amp;gt;x&amp;amp;lt;yres&amp;amp;gt;[-&amp;amp;lt;bpp&amp;amp;gt;][@&amp;amp;lt;refresh&amp;amp;gt;] scroll=&amp;amp;lt;ywrap|ypan|redraw&amp;amp;gt; ... &lt;br /&gt;
 #&lt;br /&gt;
 #For more details see: &lt;br /&gt;
 #http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt &lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 options uvesafb mode=1280x800-32 scroll=ywrap  &lt;br /&gt;
 &lt;br /&gt;
 C 2.6.27 и выше строчка options должна выглядеть так: &lt;br /&gt;
 &lt;br /&gt;
 ... options uvesafb mode_option=1280x800-32 scroll=ywrap &lt;br /&gt;
&lt;br /&gt;
Для получения списков поддерживаемых режимов экрана наберите &lt;br /&gt;
&lt;br /&gt;
 cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes&lt;br /&gt;
&lt;br /&gt;
== Hooks  ==&lt;br /&gt;
&lt;br /&gt;
Добавьте &amp;lt;nowiki&amp;gt;v86d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Man]]&lt;br /&gt;
[[Категория:Графика]]&lt;br /&gt;
[[Категория:Незавершённые статьи]]&lt;br /&gt;
[[Категория:Переводы с английского]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=POST&amp;diff=93</id>
		<title>POST</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=POST&amp;diff=93"/>
		<updated>2011-03-24T16:25:42Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''POST''' ({{lang-en|Power-On Self-Test}}) — самотестирование после включения. Проверка аппаратного обеспечения компьютера, выполняемая при его включении. Выполняется программами, входящими в BIOS материнской платы.&lt;br /&gt;
&lt;br /&gt;
Сокращённый тест включает:&lt;br /&gt;
# Проверку целостности программ BIOS в ПЗУ, используя контрольную сумму.&lt;br /&gt;
# Обнаружение и инициализацию основных контроллеров, системных шин и подключенных устройств (графического адаптера, контроллеров дисководов и т. п.), а также выполнение программ, входящих в BIOS устройств и обеспечивающих их самоинициализацию.&lt;br /&gt;
# Определение размера оперативной памяти и тестирования первого сегмента (64 килобайт).&lt;br /&gt;
&lt;br /&gt;
Полный регламент работы POST:&lt;br /&gt;
# Проверка регистров процессора;&lt;br /&gt;
# Проверка контрольной суммы ПЗУ;&lt;br /&gt;
# Проверка системного таймера и порта звуковой сигнализации (для IBM PC — ИМС i8255 или аналог);&lt;br /&gt;
# Тест контроллера прямого доступа к памяти;&lt;br /&gt;
# Тест регенератора оперативной памяти;&lt;br /&gt;
# Тест нижней области ОЗУ для проецирования резидентных программ в BIOS;&lt;br /&gt;
# Загрузка резидентных программ;&lt;br /&gt;
# Тест стандартного графического адаптера (VGA);&lt;br /&gt;
# Тест оперативной памяти;&lt;br /&gt;
# Тест основных устройств ввода (НЕ манипуляторов);&lt;br /&gt;
# Тест CMOS&lt;br /&gt;
# Тест основных портов LPT/COM;&lt;br /&gt;
# Тест накопителей на гибких магнитных дисках (НГМД);&lt;br /&gt;
# Тест накопителей на жёстких магнитных дисках (НЖМД);&lt;br /&gt;
# Самодиагностика функциональных подсистем BIOS;&lt;br /&gt;
# Передача управления загрузчику.&lt;br /&gt;
&lt;br /&gt;
Выбор между прохождением полного или сокращенного набора тестов при включении компьютера можно задать в программе настройки базовой системы ввода-вывода, Setup BIOS.&lt;br /&gt;
&lt;br /&gt;
В большинстве персональных компьютеров в случае успешного прохождения POST системный динамик издаёт один короткий звуковой сигнал, в случае сбоя — различные последовательности звуковых сигналов.&lt;br /&gt;
Кроме того, BIOS генерирует код текущего состояния загрузки (и, в случае сбоя, соответственно ошибки), который можно узнать при помощи комбинации светодиодов или семисегментных индикаторов (на некоторых материнских платах), а также на POST Card — плате, которая вставляется в слот расширения и отображает код ошибки.&lt;br /&gt;
&lt;br /&gt;
Сопоставить конкретный звуковой код, текстовое сообщение на мониторе или код POST с причиной сбоя во время загрузки компьютера можно по документации производителя BIOS, обычно материнской платы или дополнительной платы контроллера устройства.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Звуковые сигналы BIOS]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://bios-master.ru/ Все о BIOS и его настройке]&lt;br /&gt;
* [http://icbook.com.ua/post/_award6/iboot.html Post коды Award BIOS 6.0 Medallion]&lt;br /&gt;
* [http://icbook.com.ua/post/_phoenix/index.html Post коды Phoenix BIOS]&lt;br /&gt;
* [http://www.intel.com/support/ru/motherboards/desktop/sb/CS-025434.htm Системные платы для настольных ПК Intel]&lt;br /&gt;
&lt;br /&gt;
[[Категория:BIOS]]&lt;br /&gt;
[[Категория:Теория]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%B5%D0%BC_%D0%B8_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0_SMS_%D0%B2_Linux&amp;diff=92</id>
		<title>Прием и отправка SMS в Linux</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%B5%D0%BC_%D0%B8_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0_SMS_%D0%B2_Linux&amp;diff=92"/>
		<updated>2011-03-24T16:11:07Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Прием и отправка SMS в Linux&lt;br /&gt;
Для организации автоматизации приема и отправки SMS в Linux можно использовать пакет&lt;br /&gt;
gnokii и подключенный к системе телефон. В&lt;br /&gt;
простейшем случае можно использовать возможность консольной утилиты gnokii из&lt;br /&gt;
пакета gnokii-cli, но при необходимости более сложной автоматизации имеет смысл&lt;br /&gt;
воспользоваться Perl-модулем GSM::SMS или GSMD::Gnokii.&lt;br /&gt;
&lt;br /&gt;
Устанавливаем gnokii, для Debian/Ubuntu:&lt;br /&gt;
&lt;br /&gt;
   sudo apt-get install gnokii-cli gnokii-smsd xgnokii&lt;br /&gt;
&lt;br /&gt;
где gnokii-cli - интерфейс командной строки, gnokii-smsd демон для работы с&lt;br /&gt;
SMS, а xgnokii - GUI интерфейс. Последние два ставим на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Подключаем телефон через USB-порт. Смотрим в /var/log/messages к какому&lt;br /&gt;
устройству осуществилась привязка (например, /dev/ttyACM0)&lt;br /&gt;
&lt;br /&gt;
Создаем файл конфигурации /home/mc/.gnokiirc&lt;br /&gt;
&lt;br /&gt;
   [global]&lt;br /&gt;
   model = AT&lt;br /&gt;
   connection = serial&lt;br /&gt;
   port = /dev/ttyACM0&lt;br /&gt;
&lt;br /&gt;
где model - тип устройства: AT - для большинства телефонов, series40 - для&lt;br /&gt;
телефонов Nokia с системой series40, gnapplet для старых телефонов Nokia Series60.&lt;br /&gt;
&lt;br /&gt;
connection - тип соединения serial - USB/RS-232, irda - инфракрасный порт, bluetooth - Bluetooth.&lt;br /&gt;
&lt;br /&gt;
port - порт, для USB - /dev/ttyACM0 или /dev/ttyUSB0, для Bluetooth указываем&lt;br /&gt;
адрес устройства (&amp;quot;aa:bb:cc:dd:ee:ff&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Для USB-устройств также можно попробовать сочетание connection=dku2libusb и&lt;br /&gt;
port = N, где N - номер устройства.&lt;br /&gt;
&lt;br /&gt;
Проверяем поддерживается ли телефон:&lt;br /&gt;
&lt;br /&gt;
   gnokii --identify&lt;br /&gt;
&lt;br /&gt;
   GNOKII Version 0.6.28&lt;br /&gt;
   IMEI         : IMEI56565656565656&lt;br /&gt;
   Manufacturer : Motorola CE, Copyright 2000&lt;br /&gt;
   Model        : GSM900&amp;quot;,&amp;quot;GSM1800&amp;quot;,&amp;quot;GSM1900&amp;quot;,&amp;quot;MO&lt;br /&gt;
   Product name : GSM900&amp;quot;,&amp;quot;GSM1800&amp;quot;,&amp;quot;GSM1900&amp;quot;,&amp;quot;MO&lt;br /&gt;
   Revision     : R368_G_0B.A0.0FR&lt;br /&gt;
&lt;br /&gt;
Для мониторинга активности:&lt;br /&gt;
&lt;br /&gt;
   gnokii --monitor&lt;br /&gt;
&lt;br /&gt;
Возможности gnokii позволяют достаточно полно контролировать телефон, но нас&lt;br /&gt;
интересует работа с SMS.&lt;br /&gt;
&lt;br /&gt;
Чтение SMS:&lt;br /&gt;
&lt;br /&gt;
   gnokii --getsms тип_памяти старт стоп&lt;br /&gt;
&lt;br /&gt;
где тип_памяти: SM - для SIM-карты, ME - для внутренней памяти и MT для&lt;br /&gt;
комбинированных хранилищ, IN - inbox, OU - outbox. Посмотреть какое хранилище&lt;br /&gt;
используется на телефоне можно командой &amp;quot;gnokii --showsmsfolderstatus&amp;quot;&lt;br /&gt;
старт - начальная позиция сообщения&lt;br /&gt;
cтоп - конечная позиция сообщения, если не указать будет прочитано одно&lt;br /&gt;
сообщение, если указать &amp;quot;end&amp;quot; будут выведены все сообщения до конечной позиции&lt;br /&gt;
&lt;br /&gt;
Пример для вывода всех сохраненных SMS:&lt;br /&gt;
&lt;br /&gt;
   gnokii --getsms MT 1 end&lt;br /&gt;
&lt;br /&gt;
Для отправки SMS можно использовать команду:&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;текст&amp;quot; | gnokii --sendsms номер&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;тест&amp;quot; | gnokii --sendsms '+79094126426'&lt;br /&gt;
&lt;br /&gt;
   Send succeeded with reference 131!&lt;br /&gt;
&lt;br /&gt;
Другой способ отправки: в комплекте с Perl-модулем SMS::Send поставляется&lt;br /&gt;
утилита xpl-sender, которую можно использовать не только как пример для&lt;br /&gt;
написания скриптов, но и отправлять через неё сообщения:&lt;br /&gt;
&lt;br /&gt;
   xpl-sender -m xpl-cmnd -c sendmsg.basic to=+7909344355 body=&amp;quot;test&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Вывод содержимого адресной книги:&lt;br /&gt;
&lt;br /&gt;
   gnokii --getphonebook MT 1 end&lt;br /&gt;
&lt;br /&gt;
Адресную книгу можно сохранить, а затем восстановить:&lt;br /&gt;
&lt;br /&gt;
   gnokii --getphonebook MT 1 end --vcard &amp;gt; phonebook.txt&lt;br /&gt;
   gnokii --writephonebook --vcard &amp;lt; phonebook.txt&lt;br /&gt;
&lt;br /&gt;
Настройка SMS-шлюза&lt;br /&gt;
&lt;br /&gt;
В состав gnokii входит демон SMSD, который позволяет организовать работу&lt;br /&gt;
полноценного SMS-шлюза, на лету обрабатывающего входящие SMS. Для хранения&lt;br /&gt;
отправляемых и получаемых сообщений SMSD может использовать СУБД MySQL,&lt;br /&gt;
PostgreSQL (плагины gnokii-smsd-mysql и gnokii-smsd-pgsql) или файловое&lt;br /&gt;
хранилище (--module file).&lt;br /&gt;
&lt;br /&gt;
Ставим недостающие пакеты:&lt;br /&gt;
&lt;br /&gt;
   sudo apt-get install gnokii-smsd-mysql mysql-server&lt;br /&gt;
&lt;br /&gt;
Создаем БД&lt;br /&gt;
&lt;br /&gt;
  mysql -u smsgw&lt;br /&gt;
  &amp;gt; create database smsgw;&lt;br /&gt;
&lt;br /&gt;
Создаем структуру БД, используя поставляемый в комплекте с gnokii-smsd-mysql пример:&lt;br /&gt;
&lt;br /&gt;
  mysql -u smsgw smsgw &amp;lt; /usr/share/doc/gnokii-smsd-mysql/sms.tables.mysql.sql&lt;br /&gt;
&lt;br /&gt;
в результате будут созданы три простые таблицы inbox, outbox и multipartinbox,&lt;br /&gt;
структура которых имеет следующий вид:&lt;br /&gt;
&lt;br /&gt;
   CREATE TABLE inbox (&lt;br /&gt;
     id int(10) unsigned NOT NULL auto_increment,&lt;br /&gt;
     number varchar(20) NOT NULL default '',&lt;br /&gt;
     smsdate datetime NOT NULL default '0000-00-00 00:00:00',&lt;br /&gt;
     insertdate timestamp DEFAULT CURRENT_TIMESTAMP,&lt;br /&gt;
     text text,&lt;br /&gt;
     phone tinyint(4),&lt;br /&gt;
     processed tinyint(4) NOT NULL default '0',&lt;br /&gt;
     PRIMARY KEY  (id)&lt;br /&gt;
   );&lt;br /&gt;
   CREATE TABLE outbox (&lt;br /&gt;
     id int(10) unsigned NOT NULL auto_increment,&lt;br /&gt;
     number varchar(20) NOT NULL default '',&lt;br /&gt;
     processed_date timestamp DEFAULT 0,&lt;br /&gt;
     insertdate timestamp DEFAULT CURRENT_TIMESTAMP,&lt;br /&gt;
     text varchar(160) default NULL,&lt;br /&gt;
     phone tinyint(4),&lt;br /&gt;
     processed tinyint(4) NOT NULL default '0',&lt;br /&gt;
     error tinyint(4) NOT NULL default '-1',&lt;br /&gt;
     dreport tinyint(4) NOT NULL default '0',&lt;br /&gt;
     not_before time NOT NULL default '00:00:00',&lt;br /&gt;
     not_after time  NOT NULL default '23:59:59',&lt;br /&gt;
     PRIMARY KEY  (id)&lt;br /&gt;
   );&lt;br /&gt;
   CREATE TABLE multipartinbox (&lt;br /&gt;
     id int(10) unsigned NOT NULL auto_increment,&lt;br /&gt;
     number varchar(20) NOT NULL default '',&lt;br /&gt;
     smsdate datetime NOT NULL default '0000-00-00 00:00:00',&lt;br /&gt;
     insertdate timestamp DEFAULT CURRENT_TIMESTAMP,&lt;br /&gt;
     text text,&lt;br /&gt;
     phone tinyint(4),&lt;br /&gt;
     processed tinyint(4) NOT NULL default '0',&lt;br /&gt;
     refnum int(8) default NULL,&lt;br /&gt;
     maxnum int(8) default NULL,&lt;br /&gt;
     curnum int(8) default NULL,&lt;br /&gt;
     PRIMARY KEY  (id)&lt;br /&gt;
   );&lt;br /&gt;
  &lt;br /&gt;
Запускаем smsd:&lt;br /&gt;
&lt;br /&gt;
  /usr/sbin/smsd -u smsgw -d smsgw -c localhost -m mysql -f /var/log/smsdaemon.log&lt;br /&gt;
&lt;br /&gt;
где &amp;quot;-u&amp;quot; - имя пользователя БД, &amp;quot;-d&amp;quot; - имя базы, &amp;quot;-с&amp;quot; - хост, а &amp;quot;-m&amp;quot; - модуль хранения.&lt;br /&gt;
&lt;br /&gt;
Отправив теперь SMS на подключенный к компьютеру телефон, smsd сразу перехватит&lt;br /&gt;
его и запишет в базу.&lt;br /&gt;
&lt;br /&gt;
выполнив &amp;quot;select * from inbox;&amp;quot;  увидим примерно такое:&lt;br /&gt;
&lt;br /&gt;
  | id |     number     |       smsdate       |   insertdate   | text | phone | processed |&lt;br /&gt;
  |  1 | +7909343156224 | 2011-01-20 10:12:05 | 20110120130123 | Test | NULL  |     0     |&lt;br /&gt;
&lt;br /&gt;
Для отправки сообщения достаточно добавить новую запись в таблицу outbox, smsd&lt;br /&gt;
сразу его подхватит его и отправит. Например:&lt;br /&gt;
&lt;br /&gt;
   insert into outbox (number,text) values('+7909344355', 'Тест);&lt;br /&gt;
&lt;br /&gt;
В заключение можно отметить, что smsd  может работать без СУБД, используя&lt;br /&gt;
файловое хранилище. Пример запуска:&lt;br /&gt;
&lt;br /&gt;
   /usr/sbin/smsd -m file -c spool-директория&lt;br /&gt;
&lt;br /&gt;
Для отправки SMS в spool-директории нужно создать файл с любым именем в формате:&lt;br /&gt;
&lt;br /&gt;
   номер&lt;br /&gt;
   текст&lt;br /&gt;
&lt;br /&gt;
после успешной отправки файл будет удален.&lt;br /&gt;
&lt;br /&gt;
Через опцию &amp;quot;-u&amp;quot; можно указать путь к скрипту, который будет выполняться при&lt;br /&gt;
каждом получении SMS. Иначе входящие сообщения будут выводиться в стандартный&lt;br /&gt;
выходной поток в формате &amp;quot;действие номер дата &amp;lt; текст&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Дополнение: Вместо gnokii можно использовать интенсивно развивающийся форк [http://wammu.eu/ gammu], содержащий поддержку некоторых дополнительных телефонов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Информация взята с [http://www.opennet.ru/tips/2510_gnokii_sms_gateway_phone.shtml opennet.ru]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Руководства]]&lt;br /&gt;
[[Категория:Не наши статьи]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%B5%D0%BC_%D0%B8_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0_SMS_%D0%B2_Linux&amp;diff=91</id>
		<title>Прием и отправка SMS в Linux</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%B5%D0%BC_%D0%B8_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0_SMS_%D0%B2_Linux&amp;diff=91"/>
		<updated>2011-03-24T16:06:29Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Прием и отправка SMS в Linux&lt;br /&gt;
Для организации автоматизации приема и отправки SMS в Linux можно использовать пакет&lt;br /&gt;
gnokii и подключенный к системе телефон. В&lt;br /&gt;
простейшем случае можно использовать возможность консольной утилиты gnokii из&lt;br /&gt;
пакета gnokii-cli, но при необходимости более сложной автоматизации имеет смысл&lt;br /&gt;
воспользоваться Perl-модулем GSM::SMS или GSMD::Gnokii.&lt;br /&gt;
&lt;br /&gt;
Устанавливаем gnokii, для Debian/Ubuntu:&lt;br /&gt;
&lt;br /&gt;
   sudo apt-get install gnokii-cli gnokii-smsd xgnokii&lt;br /&gt;
&lt;br /&gt;
где gnokii-cli - интерфейс командной строки, gnokii-smsd демон для работы с&lt;br /&gt;
SMS, а xgnokii - GUI интерфейс. Последние два ставим на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Подключаем телефон через USB-порт. Смотрим в /var/log/messages к какому&lt;br /&gt;
устройству осуществилась привязка (например, /dev/ttyACM0)&lt;br /&gt;
&lt;br /&gt;
Создаем файл конфигурации /home/mc/.gnokiirc&lt;br /&gt;
&lt;br /&gt;
   [global]&lt;br /&gt;
   model = AT&lt;br /&gt;
   connection = serial&lt;br /&gt;
   port = /dev/ttyACM0&lt;br /&gt;
&lt;br /&gt;
где model - тип устройства: AT - для большинства телефонов, series40 - для&lt;br /&gt;
телефонов Nokia с системой series40, gnapplet для старых телефонов Nokia Series60.&lt;br /&gt;
&lt;br /&gt;
connection - тип соединения serial - USB/RS-232, irda - инфракрасный порт, bluetooth - Bluetooth.&lt;br /&gt;
&lt;br /&gt;
port - порт, для USB - /dev/ttyACM0 или /dev/ttyUSB0, для Bluetooth указываем&lt;br /&gt;
адрес устройства (&amp;quot;aa:bb:cc:dd:ee:ff&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Для USB-устройств также можно попробовать сочетание connection=dku2libusb и&lt;br /&gt;
port = N, где N - номер устройства.&lt;br /&gt;
&lt;br /&gt;
Проверяем поддерживается ли телефон:&lt;br /&gt;
&lt;br /&gt;
   gnokii --identify&lt;br /&gt;
&lt;br /&gt;
   GNOKII Version 0.6.28&lt;br /&gt;
   IMEI         : IMEI56565656565656&lt;br /&gt;
   Manufacturer : Motorola CE, Copyright 2000&lt;br /&gt;
   Model        : GSM900&amp;quot;,&amp;quot;GSM1800&amp;quot;,&amp;quot;GSM1900&amp;quot;,&amp;quot;MO&lt;br /&gt;
   Product name : GSM900&amp;quot;,&amp;quot;GSM1800&amp;quot;,&amp;quot;GSM1900&amp;quot;,&amp;quot;MO&lt;br /&gt;
   Revision     : R368_G_0B.A0.0FR&lt;br /&gt;
&lt;br /&gt;
Для мониторинга активности:&lt;br /&gt;
&lt;br /&gt;
   gnokii --monitor&lt;br /&gt;
&lt;br /&gt;
Возможности gnokii позволяют достаточно полно контролировать телефон, но нас&lt;br /&gt;
интересует работа с SMS.&lt;br /&gt;
&lt;br /&gt;
Чтение SMS:&lt;br /&gt;
&lt;br /&gt;
   gnokii --getsms тип_памяти старт стоп&lt;br /&gt;
&lt;br /&gt;
где тип_памяти: SM - для SIM-карты, ME - для внутренней памяти и MT для&lt;br /&gt;
комбинированных хранилищ, IN - inbox, OU - outbox. Посмотреть какое хранилище&lt;br /&gt;
используется на телефоне можно командой &amp;quot;gnokii --showsmsfolderstatus&amp;quot;&lt;br /&gt;
старт - начальная позиция сообщения&lt;br /&gt;
cтоп - конечная позиция сообщения, если не указать будет прочитано одно&lt;br /&gt;
сообщение, если указать &amp;quot;end&amp;quot; будут выведены все сообщения до конечной позиции&lt;br /&gt;
&lt;br /&gt;
Пример для вывода всех сохраненных SMS:&lt;br /&gt;
&lt;br /&gt;
   gnokii --getsms MT 1 end&lt;br /&gt;
&lt;br /&gt;
Для отправки SMS можно использовать команду:&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;текст&amp;quot; | gnokii --sendsms номер&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;тест&amp;quot; | gnokii --sendsms '+79094126426'&lt;br /&gt;
&lt;br /&gt;
   Send succeeded with reference 131!&lt;br /&gt;
&lt;br /&gt;
Другой способ отправки: в комплекте с Perl-модулем SMS::Send поставляется&lt;br /&gt;
утилита xpl-sender, которую можно использовать не только как пример для&lt;br /&gt;
написания скриптов, но и отправлять через неё сообщения:&lt;br /&gt;
&lt;br /&gt;
   xpl-sender -m xpl-cmnd -c sendmsg.basic to=+7909344355 body=&amp;quot;test&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Вывод содержимого адресной книги:&lt;br /&gt;
&lt;br /&gt;
   gnokii --getphonebook MT 1 end&lt;br /&gt;
&lt;br /&gt;
Адресную книгу можно сохранить, а затем восстановить:&lt;br /&gt;
&lt;br /&gt;
   gnokii --getphonebook MT 1 end --vcard &amp;gt; phonebook.txt&lt;br /&gt;
   gnokii --writephonebook --vcard &amp;lt; phonebook.txt&lt;br /&gt;
&lt;br /&gt;
Настройка SMS-шлюза&lt;br /&gt;
&lt;br /&gt;
В состав gnokii входит демон SMSD, который позволяет организовать работу&lt;br /&gt;
полноценного SMS-шлюза, на лету обрабатывающего входящие SMS. Для хранения&lt;br /&gt;
отправляемых и получаемых сообщений SMSD может использовать СУБД MySQL,&lt;br /&gt;
PostgreSQL (плагины gnokii-smsd-mysql и gnokii-smsd-pgsql) или файловое&lt;br /&gt;
хранилище (--module file).&lt;br /&gt;
&lt;br /&gt;
Ставим недостающие пакеты:&lt;br /&gt;
&lt;br /&gt;
   sudo apt-get install gnokii-smsd-mysql mysql-server&lt;br /&gt;
&lt;br /&gt;
Создаем БД&lt;br /&gt;
&lt;br /&gt;
  mysql -u smsgw&lt;br /&gt;
  &amp;gt; create database smsgw;&lt;br /&gt;
&lt;br /&gt;
Создаем структуру БД, используя поставляемый в комплекте с gnokii-smsd-mysql пример:&lt;br /&gt;
&lt;br /&gt;
  mysql -u smsgw smsgw &amp;lt; /usr/share/doc/gnokii-smsd-mysql/sms.tables.mysql.sql&lt;br /&gt;
&lt;br /&gt;
в результате будут созданы три простые таблицы inbox, outbox и multipartinbox,&lt;br /&gt;
структура которых имеет следующий вид:&lt;br /&gt;
&lt;br /&gt;
   CREATE TABLE inbox (&lt;br /&gt;
     id int(10) unsigned NOT NULL auto_increment,&lt;br /&gt;
     number varchar(20) NOT NULL default '',&lt;br /&gt;
     smsdate datetime NOT NULL default '0000-00-00 00:00:00',&lt;br /&gt;
     insertdate timestamp DEFAULT CURRENT_TIMESTAMP,&lt;br /&gt;
     text text,&lt;br /&gt;
     phone tinyint(4),&lt;br /&gt;
     processed tinyint(4) NOT NULL default '0',&lt;br /&gt;
     PRIMARY KEY  (id)&lt;br /&gt;
   );&lt;br /&gt;
   CREATE TABLE outbox (&lt;br /&gt;
     id int(10) unsigned NOT NULL auto_increment,&lt;br /&gt;
     number varchar(20) NOT NULL default '',&lt;br /&gt;
     processed_date timestamp DEFAULT 0,&lt;br /&gt;
     insertdate timestamp DEFAULT CURRENT_TIMESTAMP,&lt;br /&gt;
     text varchar(160) default NULL,&lt;br /&gt;
     phone tinyint(4),&lt;br /&gt;
     processed tinyint(4) NOT NULL default '0',&lt;br /&gt;
     error tinyint(4) NOT NULL default '-1',&lt;br /&gt;
     dreport tinyint(4) NOT NULL default '0',&lt;br /&gt;
     not_before time NOT NULL default '00:00:00',&lt;br /&gt;
     not_after time  NOT NULL default '23:59:59',&lt;br /&gt;
     PRIMARY KEY  (id)&lt;br /&gt;
   );&lt;br /&gt;
   CREATE TABLE multipartinbox (&lt;br /&gt;
     id int(10) unsigned NOT NULL auto_increment,&lt;br /&gt;
     number varchar(20) NOT NULL default '',&lt;br /&gt;
     smsdate datetime NOT NULL default '0000-00-00 00:00:00',&lt;br /&gt;
     insertdate timestamp DEFAULT CURRENT_TIMESTAMP,&lt;br /&gt;
     text text,&lt;br /&gt;
     phone tinyint(4),&lt;br /&gt;
     processed tinyint(4) NOT NULL default '0',&lt;br /&gt;
     refnum int(8) default NULL,&lt;br /&gt;
     maxnum int(8) default NULL,&lt;br /&gt;
     curnum int(8) default NULL,&lt;br /&gt;
     PRIMARY KEY  (id)&lt;br /&gt;
   );&lt;br /&gt;
  &lt;br /&gt;
Запускаем smsd:&lt;br /&gt;
&lt;br /&gt;
  /usr/sbin/smsd -u smsgw -d smsgw -c localhost -m mysql -f /var/log/smsdaemon.log&lt;br /&gt;
&lt;br /&gt;
где &amp;quot;-u&amp;quot; - имя пользователя БД, &amp;quot;-d&amp;quot; - имя базы, &amp;quot;-с&amp;quot; - хост, а &amp;quot;-m&amp;quot; - модуль хранения.&lt;br /&gt;
&lt;br /&gt;
Отправив теперь SMS на подключенный к компьютеру телефон, smsd сразу перехватит&lt;br /&gt;
его и запишет в базу.&lt;br /&gt;
&lt;br /&gt;
выполнив &amp;quot;select * from inbox;&amp;quot;  увидим примерно такое:&lt;br /&gt;
&lt;br /&gt;
  | id |     number     |       smsdate       |   insertdate   | text | phone | processed |&lt;br /&gt;
  |  1 | +7909343156224 | 2011-01-20 10:12:05 | 20110120130123 | Test | NULL  |     0     |&lt;br /&gt;
&lt;br /&gt;
Для отправки сообщения достаточно добавить новую запись в таблицу outbox, smsd&lt;br /&gt;
сразу его подхватит его и отправит. Например:&lt;br /&gt;
&lt;br /&gt;
   insert into outbox (number,text) values('+7909344355', 'Тест);&lt;br /&gt;
&lt;br /&gt;
В заключение можно отметить, что smsd  может работать без СУБД, используя&lt;br /&gt;
файловое хранилище. Пример запуска:&lt;br /&gt;
&lt;br /&gt;
   /usr/sbin/smsd -m file -c spool-директория&lt;br /&gt;
&lt;br /&gt;
Для отправки SMS в spool-директории нужно создать файл с любым именем в формате:&lt;br /&gt;
&lt;br /&gt;
   номер&lt;br /&gt;
   текст&lt;br /&gt;
&lt;br /&gt;
после успешной отправки файл будет удален.&lt;br /&gt;
&lt;br /&gt;
Через опцию &amp;quot;-u&amp;quot; можно указать путь к скрипту, который будет выполняться при&lt;br /&gt;
каждом получении SMS. Иначе входящие сообщения будут выводиться в стандартный&lt;br /&gt;
выходной поток в формате &amp;quot;действие номер дата &amp;lt; текст&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Дополнение: Вместо gnokii можно использовать интенсивно развивающийся форк [http://wammu.eu/ gammu], содержащий поддержку некоторых дополнительных телефонов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Информация взята с [http://www.opennet.ru/tips/2510_gnokii_sms_gateway_phone.shtml opennet.ru]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Руководство]]&lt;br /&gt;
[[Категория:Не наши статьи]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=90</id>
		<title>Uvesafb</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=90"/>
		<updated>2011-03-24T15:55:05Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Он поддерживает больше функций, чем стандартный vesafb и является более предпочтительным в использовании (особенно это касается систем с nvidia-видеокартами с проприетарным видеодрайвером). Требования к поддержке оборудования такие же, как и для vesafb. &lt;br /&gt;
&lt;br /&gt;
= Демон виртуализации  =&lt;br /&gt;
&lt;br /&gt;
Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации. &lt;br /&gt;
&lt;br /&gt;
Дальнейшие инструкции предназначены для ArchLinux. Для остальных дистрибутивов инструкции будут дополнены позднее. &lt;br /&gt;
&lt;br /&gt;
== v86d  ==&lt;br /&gt;
&lt;br /&gt;
Установите v86d с помощью pacman &lt;br /&gt;
&lt;br /&gt;
 # pacman -S v86d&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc. &lt;br /&gt;
&lt;br /&gt;
= Подготовка к установке  =&lt;br /&gt;
&lt;br /&gt;
#Удалите любые параметры ядра, относящиеся к настройке фреймбуфера с конфигурации загрузчика: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux).&lt;br /&gt;
&lt;br /&gt;
#Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации ''Ctrl+Alt+Del''. Для карт Intel укажите в конфиг-файле Grub параметр &amp;lt;nowiki&amp;gt;i915.modeset=0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Параметры uvesafb  ==&lt;br /&gt;
&lt;br /&gt;
Все параметры модуля Вы сможете найти в /etc/modprobe.d/uvesafb.conf (или в общем конфиге /etc/modprobe.d/modprobe.conf). Исходный файл пакета v86d содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию: &lt;br /&gt;
&lt;br /&gt;
 #This file sets the parameters for uvesafb module. &lt;br /&gt;
 #The following format should be used: &lt;br /&gt;
 #options uvesafb mode=&amp;amp;lt;xres&amp;amp;gt;x&amp;amp;lt;yres&amp;amp;gt;[-&amp;amp;lt;bpp&amp;amp;gt;][@&amp;amp;lt;refresh&amp;amp;gt;] scroll=&amp;amp;lt;ywrap|ypan|redraw&amp;amp;gt; ... &lt;br /&gt;
 #&lt;br /&gt;
 #For more details see: &lt;br /&gt;
 #http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt &lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 options uvesafb mode=1280x800-32 scroll=ywrap  &lt;br /&gt;
 &lt;br /&gt;
 C 2.6.27 и выше строчка options должна выглядеть так: &lt;br /&gt;
 &lt;br /&gt;
 ... options uvesafb mode_option=1280x800-32 scroll=ywrap &lt;br /&gt;
&lt;br /&gt;
Для получения списков поддерживаемых режимов экрана наберите &lt;br /&gt;
&lt;br /&gt;
 cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes&lt;br /&gt;
&lt;br /&gt;
== Hooks  ==&lt;br /&gt;
&lt;br /&gt;
Добавьте &amp;lt;nowiki&amp;gt;v86d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Man]]&lt;br /&gt;
[[Категория:Графика]]&lt;br /&gt;
[[Категория:Незавершённые статьи]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=89</id>
		<title>Uvesafb</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=89"/>
		<updated>2011-03-24T15:52:50Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Он поддерживает больше функций, чем стандартный vesafb и является более предпочтительным в использовании (особенно это касается систем с nvidia-видеокартами с проприетарным видеодрайвером). Требования к поддержке оборудования такие же, как и для vesafb. &lt;br /&gt;
&lt;br /&gt;
= Демон виртуализации  =&lt;br /&gt;
&lt;br /&gt;
Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации. &lt;br /&gt;
&lt;br /&gt;
Дальнейшие инструкции предназначены для ArchLinux. Для остальных дистрибутивов инструкции будут дополнены позднее. &lt;br /&gt;
&lt;br /&gt;
== v86d  ==&lt;br /&gt;
&lt;br /&gt;
Установите v86d с помощью pacman &lt;br /&gt;
&lt;br /&gt;
 # pacman -S v86d&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc. &lt;br /&gt;
&lt;br /&gt;
= Подготовка к установке  =&lt;br /&gt;
&lt;br /&gt;
#Удалите любые параметры ядра, относящиеся к настройке фреймбуфера с конфигурации загрузчика: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux).&lt;br /&gt;
&lt;br /&gt;
#Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации ''Ctrl+Alt+Del''. Для карт Intel укажите в конфиг-файле Grub параметр &amp;lt;nowiki&amp;gt;i915.modeset=0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Параметры uvesafb  ==&lt;br /&gt;
&lt;br /&gt;
Все параметры модуля Вы сможете найти в /etc/modprobe.d/uvesafb.conf (или в общем конфиге /etc/modprobe.d/modprobe.conf). Исходный файл пакета v86d содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию: &lt;br /&gt;
&lt;br /&gt;
 #This file sets the parameters for uvesafb module. &lt;br /&gt;
 #The following format should be used: &lt;br /&gt;
 #options uvesafb mode=&amp;amp;lt;xres&amp;amp;gt;x&amp;amp;lt;yres&amp;amp;gt;[-&amp;amp;lt;bpp&amp;amp;gt;][@&amp;amp;lt;refresh&amp;amp;gt;] scroll=&amp;amp;lt;ywrap|ypan|redraw&amp;amp;gt; ... &lt;br /&gt;
 #&lt;br /&gt;
 #For more details see: &lt;br /&gt;
 #http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt &lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 options uvesafb mode=1280x800-32 scroll=ywrap  &lt;br /&gt;
 &lt;br /&gt;
 C 2.6.27 и выше строчка options должна выглядеть так: &lt;br /&gt;
 &lt;br /&gt;
 ... options uvesafb mode_option=1280x800-32 scroll=ywrap &lt;br /&gt;
&lt;br /&gt;
Для получения списков поддерживаемых режимов экрана наберите &lt;br /&gt;
&lt;br /&gt;
 cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes&lt;br /&gt;
&lt;br /&gt;
== Hooks  ==&lt;br /&gt;
&lt;br /&gt;
Добавьте &amp;lt;nowiki&amp;gt;v86d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Man]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Графика]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=88</id>
		<title>Uvesafb</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=88"/>
		<updated>2011-03-24T15:48:25Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Он поддерживает больше функций, чем стандартный vesafb и является более предпочтительным в использовании (особенно это касается систем с nvidia-видеокартами с проприетарным видеодрайвером). Требования к поддержке оборудования такие же, как и для vesafb. &lt;br /&gt;
&lt;br /&gt;
= Демон виртуализации  =&lt;br /&gt;
&lt;br /&gt;
Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации. &lt;br /&gt;
&lt;br /&gt;
Дальнейшие инструкции предназначены для ArchLinux. Для остальных дистрибутивов инструкции будут дополнены позднее. &lt;br /&gt;
&lt;br /&gt;
== v86d  ==&lt;br /&gt;
&lt;br /&gt;
Установите v86d с помощью pacman &lt;br /&gt;
&lt;br /&gt;
 # pacman -S v86d&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc. &lt;br /&gt;
&lt;br /&gt;
= Подготовка к установке  =&lt;br /&gt;
&lt;br /&gt;
#Удалите любые параметры ядра, относящиеся к настройке фреймбуфера с конфигурации загрузчика: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux).&lt;br /&gt;
&lt;br /&gt;
#Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации ''Ctrl+Alt+Del''. Для карт Intel укажите в конфиг-файле Grub параметр &amp;lt;nowiki&amp;gt;i915.modeset=0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Параметры uvesafb  ==&lt;br /&gt;
&lt;br /&gt;
Все параметры модуля Вы сможете найти в /etc/modprobe.d/uvesafb.conf (или в общем конфиге /etc/modprobe.d/modprobe.conf). Исходный файл пакета v86d содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию: &lt;br /&gt;
&lt;br /&gt;
 #This file sets the parameters for uvesafb module. &lt;br /&gt;
 #The following format should be used: &lt;br /&gt;
 #options uvesafb mode=&amp;amp;lt;xres&amp;amp;gt;x&amp;amp;lt;yres&amp;amp;gt;[-&amp;amp;lt;bpp&amp;amp;gt;][@&amp;amp;lt;refresh&amp;amp;gt;] scroll=&amp;amp;lt;ywrap|ypan|redraw&amp;amp;gt; ... &lt;br /&gt;
 #&lt;br /&gt;
 #For more details see: &lt;br /&gt;
 #http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt &lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 options uvesafb mode=1280x800-32 scroll=ywrap  &lt;br /&gt;
 &lt;br /&gt;
 C 2.6.27 и выше строчка options должна выглядеть так: &lt;br /&gt;
 &lt;br /&gt;
 ... options uvesafb mode_option=1280x800-32 scroll=ywrap &lt;br /&gt;
&lt;br /&gt;
Для получения списков поддерживаемых режимов экрана наберите &lt;br /&gt;
&lt;br /&gt;
 cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes&lt;br /&gt;
&lt;br /&gt;
== Hooks  ==&lt;br /&gt;
&lt;br /&gt;
Добавьте &amp;lt;nowiki&amp;gt;v86d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:Категория:Man]]&lt;br /&gt;
&lt;br /&gt;
[[:Категория:Графика]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=86</id>
		<title>Uvesafb</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=86"/>
		<updated>2011-03-24T15:45:32Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Он поддерживает больше функций, чем стандартный vesafb и является более предпочтительным в использовании (особенно это касается систем с nvidia-видеокартами с проприетарным видеодрайвером). Требования к поддержке оборудования такие же, как и для vesafb. &lt;br /&gt;
&lt;br /&gt;
= Демон виртуализации  =&lt;br /&gt;
&lt;br /&gt;
Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации. &lt;br /&gt;
&lt;br /&gt;
Дальнейшие инструкции предназначены для ArchLinux. Для остальных дистрибутивов инструкции будут дополнены позднее. &lt;br /&gt;
&lt;br /&gt;
== v86d  ==&lt;br /&gt;
&lt;br /&gt;
Установите v86d с помощью pacman &lt;br /&gt;
&lt;br /&gt;
 # pacman -S v86d&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc. &lt;br /&gt;
&lt;br /&gt;
= Подготовка к установке  =&lt;br /&gt;
&lt;br /&gt;
#Удалите любые параметры ядра, относящиеся к настройке фреймбуфера с конфигурации загрузчика: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux).&lt;br /&gt;
&lt;br /&gt;
#Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации ''Ctrl+Alt+Del''. Для карт Intel укажите в конфиг-файле Grub параметр &amp;lt;nowiki&amp;gt;i915.modeset=0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Параметры uvesafb  ==&lt;br /&gt;
&lt;br /&gt;
Все параметры модуля Вы сможете найти в /etc/modprobe.d/uvesafb.conf (или в общем конфиге /etc/modprobe.d/modprobe.conf). Исходный файл пакета v86d содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию: &lt;br /&gt;
&lt;br /&gt;
 #This file sets the parameters for uvesafb module. &lt;br /&gt;
 #The following format should be used: &lt;br /&gt;
 #options uvesafb mode=&amp;amp;lt;xres&amp;amp;gt;x&amp;amp;lt;yres&amp;amp;gt;[-&amp;amp;lt;bpp&amp;amp;gt;][@&amp;amp;lt;refresh&amp;amp;gt;] scroll=&amp;amp;lt;ywrap|ypan|redraw&amp;amp;gt; ... &lt;br /&gt;
 #&lt;br /&gt;
 #For more details see: &lt;br /&gt;
 #http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt &lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 options uvesafb mode=1280x800-32 scroll=ywrap  &lt;br /&gt;
 &lt;br /&gt;
 C 2.6.27 и выше строчка options должна выглядеть так: &lt;br /&gt;
 &lt;br /&gt;
 ... options uvesafb mode_option=1280x800-32 scroll=ywrap &lt;br /&gt;
&lt;br /&gt;
Для получения списков поддерживаемых режимов экрана наберите &lt;br /&gt;
&lt;br /&gt;
 cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes&lt;br /&gt;
&lt;br /&gt;
== Hooks  ==&lt;br /&gt;
&lt;br /&gt;
Добавьте &amp;lt;nowiki&amp;gt;v86d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:Category:Man]]&lt;br /&gt;
&lt;br /&gt;
[[:Category:Графика]]&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%90%D0%B9_%D0%B4%D0%B0_Linux_Wiki:%D0%90%D0%B2%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BE&amp;diff=84</id>
		<title>Ай да Linux Wiki:Авторское право</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%90%D0%B9_%D0%B4%D0%B0_Linux_Wiki:%D0%90%D0%B2%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BE&amp;diff=84"/>
		<updated>2011-03-24T14:18:08Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Лицензирование материалов ==&lt;br /&gt;
&lt;br /&gt;
Большинство статей, контент, исходные коды и другие виды информации, помещенные на этой вики, авторами которых являются основатели проекта и если в теле страницы не указана иная лицензия, будут обнародованы на условиях лицензии СС BY-NC-SA&amp;lt;ref name=&amp;quot;СС BY-NC-SA&amp;quot;&amp;gt;[http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode Юридический текст лицензии CC BY-NC-SA на английском языке], &amp;lt;/ref&amp;gt;, т.е. все наши труды будут ограниченно свободны. Вы сможете использовать, модифицировать и исправлять все имеющие в нашем проекте материалы на некоммерческой основе с указанием авторства, эти условия сохраняются и для производных работ. Для статей, чьими авторами являются третьи лица, не относящиеся к проекту, будут действовать те лицензии, на условиях которых они были помещены в свободный доступ.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=83</id>
		<title>Шаблон:Главная страница</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=83"/>
		<updated>2011-03-24T14:16:05Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Добро пожаловать на главную страницу Wiki проекта '''Ай Да Linux''', где авторы поставили себе амбициозную цель - создать всеобщую Энциклопедию по всем аспектам свободных технологий в общем и GNU/Linux в частности. Конечно, мы не первые, кто захотел покорить мир таким образом, просто нам хочется сделать мир чуточку лучше, а поиск - чуточку проще. Тем более, что Вы совершенно свободно можете нам помочь в этом, ставь одним из авторов нашего Wiki и блога. И для этого даже не требуется писать только об OSS, Вам лишь нужно переговорить с основателями, нам интересны не всякие темы. И учтите условия принятой нами лицензии.&lt;br /&gt;
&lt;br /&gt;
'''На данный момент наша база содержит мало статей, пока мы работаем над техническими проблемами сайта и оформлением. Многие функции Wiki или недоделаны, или отсутствуют вовсе. Дайте нам чуточку времени, мы исправимся.'''&lt;br /&gt;
&lt;br /&gt;
Вы можете воспользоваться поиском или [[Служебная:AllPages|посмотреть]] названия всех статей и выбрать необходимую Вам. Так же можно вернуться на сайт http://aidalinux.ru.&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=82</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=82"/>
		<updated>2011-03-24T12:45:51Z</updated>

		<summary type="html">&lt;p&gt;Angelo: Содержимое страницы заменено на «== О проекте Ай Да Linux ==

{{Главная страница}}»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О проекте Ай Да Linux ==&lt;br /&gt;
&lt;br /&gt;
{{Главная страница}}&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=81</id>
		<title>Шаблон:Главная страница</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=81"/>
		<updated>2011-03-24T12:45:06Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Добро пожаловать на главную страницу Wiki проекта Ай Да Linux, где авторы поставили себе амбициозную цель - создать всеобщую Энциклопедию по всем аспектам свободных технологий в общем и GNU/Linux в частности. Конечно, мы не первые, кто захотел покорить мир таким образом, просто нам хочется сделать мир чуточку лучше, а поиск - чуточку проще. Тем более, что Вы совершенно свободно можете нам помочь в этом, ставь одним из автором нашего Wiki и блога. И для этого даже не требуется писать только об OSS.&lt;br /&gt;
&lt;br /&gt;
На данный момент наша база содержит мало статей, пока мы работаем над техническими проблемами сайта. Многие функции Wiki или не доделаны, или отсутствуют вовсе. Дайте нам чуточку времени, мы исправимся.&lt;br /&gt;
&lt;br /&gt;
Вы можете воспользоваться поиском или [[Служебная:AllPages|посмотреть]] названия всех статей и выбрать понравившуюся. Так же можно вернуться на сайт http://aidalinux.ru.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='divtable' style='font-size:95%'&amp;gt; &amp;lt;div id='lefthalf' class='divtablecell' style='width:45%;'&amp;gt;&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=80</id>
		<title>Шаблон:Главная страница</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=80"/>
		<updated>2011-03-24T12:42:59Z</updated>

		<summary type="html">&lt;p&gt;Angelo: Новая страница: «Тест»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Тест&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=79</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=79"/>
		<updated>2011-03-24T12:33:51Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О проекте Ай Да Linux ==&lt;br /&gt;
&lt;br /&gt;
Добро пожаловать на главную страницу Wiki проекта Ай Да Linux, где авторы поставили себе амбициозную цель - создать всеобщую Энциклопедию по всем аспектам свободных технологий в общем и GNU/Linux в частности. Конечно, мы не первые, кто захотел покорить мир таким образом, просто нам хочется сделать мир чуточку лучше, а поиск - чуточку проще. Тем более, что Вы совершенно свободно можете нам помочь в этом, ставь одним из автором нашего Wiki и блога. И для этого даже не требуется писать только об OSS.&lt;br /&gt;
&lt;br /&gt;
На данный момент наша база содержит мало статей, пока мы работаем над техническими проблемами сайта. Многие функции Wiki или не доделаны, или отсутствуют вовсе. Дайте нам чуточку времени, мы исправимся.&lt;br /&gt;
&lt;br /&gt;
Вы можете воспользоваться поиском или [[Служебная:AllPages|посмотреть]] названия всех статей и выбрать понравившуюся. Так же можно вернуться на сайт http://aidalinux.ru.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class='divtable' style='font-size:95%'&amp;gt; &amp;lt;div id='lefthalf' class='divtablecell' style='width:45%;'&amp;gt;&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%90%D0%B9_%D0%B4%D0%B0_Linux_Wiki:%D0%90%D0%B2%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BE&amp;diff=78</id>
		<title>Ай да Linux Wiki:Авторское право</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%90%D0%B9_%D0%B4%D0%B0_Linux_Wiki:%D0%90%D0%B2%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BE&amp;diff=78"/>
		<updated>2011-03-24T11:56:00Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Лицензирование материалов ==&lt;br /&gt;
&lt;br /&gt;
Большинство статей, контент, исходные коды и другие виды, помещенные на этой вики, авторами которых являются основатели проекта и если в теле страницы не указана иная лицензия, будут обнародованы на условиях лицензии СС BY-NC-SA&amp;lt;ref name=&amp;quot;СС BY-NC-SA&amp;quot;&amp;gt;[http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode Юридический текст лицензии CC BY-NC-SA на английском языке], &amp;lt;/ref&amp;gt;, т.е. все наши труды будут ограниченно свободны. Вы сможете использовать, модифицировать и исправлять все имеющие в нашем проекте материалы на некоммерческой основе с указанием авторства, эти условия сохраняются и для производных работ. Для статей, чьими авторами являются третьи лица, не относящиеся к проекту, будут действовать те лицензии, на условиях которых они были помещены в свободный доступ.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%90%D0%B9_%D0%B4%D0%B0_Linux_Wiki:%D0%90%D0%B2%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BE&amp;diff=77</id>
		<title>Ай да Linux Wiki:Авторское право</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%90%D0%B9_%D0%B4%D0%B0_Linux_Wiki:%D0%90%D0%B2%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BE&amp;diff=77"/>
		<updated>2011-03-24T11:49:02Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Лицензирование материалов ==&lt;br /&gt;
&lt;br /&gt;
Большинство статей, контент и исходные коды, помещенные на этой вики и авторами которых являются основатели проекта, будут обнародованы на условиях лицензии СС BY-NC-SA&amp;lt;ref name=&amp;quot;СС BY-NC-SA&amp;quot;&amp;gt;[http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode Юридический текст лицензии CC BY-NC-SA на английском языке], &amp;lt;/ref&amp;gt;, т.е. все наши труды будут ограниченно свободны. Вы сможете использовать, модифицировать и исправлять все имеющие в нашем проекте материалы на некоммерческой основе с указанием авторства, эти условия сохраняются и для производных работ. Для статей, чьими авторами являются третьи лица, не относящиеся к проекту, будут действовать те лицензии, на условиях которых они были помещены в свободный доступ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%90%D0%B9_%D0%B4%D0%B0_Linux_Wiki:%D0%90%D0%B2%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BE&amp;diff=76</id>
		<title>Ай да Linux Wiki:Авторское право</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%90%D0%B9_%D0%B4%D0%B0_Linux_Wiki:%D0%90%D0%B2%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BE&amp;diff=76"/>
		<updated>2011-03-24T11:38:14Z</updated>

		<summary type="html">&lt;p&gt;Angelo: Новая страница: «== Лицензирование материалов ==  Большинство статей, помещенные на этой вики и авторами кот...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Лицензирование материалов ==&lt;br /&gt;
&lt;br /&gt;
Большинство статей, помещенные на этой вики и авторами которых являются основатели проекта, будут обнародованы на условиях лицензии &amp;lt;ref name=&amp;quot;СС BY-NC-SA&amp;quot;&amp;gt;[http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode], Юридический текст лицензии CC BY-NC-SA на английском языке&amp;lt;/ref&amp;gt;, т.е. все наши труды будут ограниченно свободны. Вы сможете использовать, модифицировать и исправлять все имеющие в нашем проекте материалы на некоммерческой основе с указанием авторства, эти условия сохраняются и для производных работ. Текст лицензии вы сможете найти здесь Основной Вы имеете полное право копировать, модифицировать, использовать в других проектах эти статьи. Однако в&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=35</id>
		<title>Uvesafb</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=35"/>
		<updated>2011-03-10T19:10:09Z</updated>

		<summary type="html">&lt;p&gt;Angelo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Он поддерживает больше функций, чем стандартный vesafb и является более предпочтительным в использовании (особенно это касается систем с nvidia-видеокартами с проприетарным видеодрайвером). Требования к поддержке оборудования такие же, как и для vesafb.&lt;br /&gt;
&lt;br /&gt;
= Демон виртуализации =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации.&lt;br /&gt;
&lt;br /&gt;
Дальнейшие инструкции предназначены для ArchLinux. Для остальных дистрибутивов инструкции будут дополнены позднее.&lt;br /&gt;
&lt;br /&gt;
== v86d ==&lt;br /&gt;
&lt;br /&gt;
Установите v86d с помощью pacman&lt;br /&gt;
&lt;br /&gt;
 # pacman -S v86d&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc.&lt;br /&gt;
&lt;br /&gt;
= Подготовка к установке =&lt;br /&gt;
&lt;br /&gt;
# Удалите любые параметры ядра, относящиеся к настройке фреймбуфера с конфигурации загрузчика: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux).&lt;br /&gt;
&lt;br /&gt;
# Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации ''Ctrl+Alt+Del''. Для карт Intel укажите в конфиг-файле Grub параметр &amp;lt;nowiki&amp;gt;i915.modeset=0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Параметры uvesafb ==&lt;br /&gt;
&lt;br /&gt;
Все параметры модуля Вы сможете найти в /etc/modprobe.d/uvesafb.conf (или в общем конфиге /etc/modprobe.d/modprobe.conf). Исходный файл пакета v86d содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию:&lt;br /&gt;
&lt;br /&gt;
# This file sets the parameters for uvesafb module.&lt;br /&gt;
# The following format should be used:&lt;br /&gt;
# options uvesafb mode=&amp;lt;xres&amp;gt;x&amp;lt;yres&amp;gt;[-&amp;lt;bpp&amp;gt;][@&amp;lt;refresh&amp;gt;] scroll=&amp;lt;ywrap|ypan|redraw&amp;gt; ...&lt;br /&gt;
#&lt;br /&gt;
# For more details see:&lt;br /&gt;
# http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt&lt;br /&gt;
#&lt;br /&gt;
options uvesafb mode=1280x800-32 scroll=ywrap&lt;br /&gt;
&lt;br /&gt;
C 2.6.27 и выше строчка options должна выглядеть так:&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
options uvesafb mode_option=1280x800-32 scroll=ywrap&lt;br /&gt;
&lt;br /&gt;
Для получения списков поддерживаемых режимов экрана наберите&lt;br /&gt;
&lt;br /&gt;
 cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes&lt;br /&gt;
&lt;br /&gt;
== Hooks ==&lt;br /&gt;
&lt;br /&gt;
Добавьте &amp;lt;nowiki&amp;gt;v86d&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=34</id>
		<title>Uvesafb</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=34"/>
		<updated>2011-03-10T17:36:54Z</updated>

		<summary type="html">&lt;p&gt;Angelo: Новая страница: «Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Он п...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Он поддерживает больше функций, чем стандартный vesafb и является более предпочтительным в использовании (особенно это касается систем с nvidia-видеокартами с проприетарным видеодрайвером). Требования к поддержке оборудования такие же, как и для vesafb.&lt;br /&gt;
&lt;br /&gt;
= Демон виртуализации =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации.&lt;/div&gt;</summary>
		<author><name>Angelo</name></author>
	</entry>
</feed>