<?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=Langator</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=Langator"/>
	<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/Langator"/>
	<updated>2026-05-09T15:15:58Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=MediaWiki:Deletereason-dropdown&amp;diff=13478</id>
		<title>MediaWiki:Deletereason-dropdown</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=MediaWiki:Deletereason-dropdown&amp;diff=13478"/>
		<updated>2016-07-31T19:26:06Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «* Типовые причины удаления ** Спам ** вандализм ** по запросу автора ** нарушение авторских п…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Типовые причины удаления&lt;br /&gt;
** Спам&lt;br /&gt;
** вандализм&lt;br /&gt;
** по запросу автора&lt;br /&gt;
** нарушение авторских прав&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%BE%D0%B2&amp;diff=13468</id>
		<title>Создание зашифрованных архивов</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%BE%D0%B2&amp;diff=13468"/>
		<updated>2015-12-13T15:10:06Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Иногда бывает нужно зашифровать файлы к консоли. Самый распространённый архиватор tar, са…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Иногда бывает нужно зашифровать файлы к консоли. Самый распространённый архиватор tar, сам не умеет зашифровавыать архив. Да и графические утилиты разве что могут &amp;quot;запаролить&amp;quot; zip, или rar архив, что на мой взгляд не самый лучший вариант.&lt;br /&gt;
&lt;br /&gt;
Итак. Проще всего с паролем сделать zip архив:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;zip -e -r test.zip test/&amp;lt;/source&amp;gt; &lt;br /&gt;
После ввода этой команды, zip дважды спросит пароль для архива, и запакует директорию или нужный файл. Чтобы распаковать запароленный архив можно использовать unzip:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;unzip -P testpass test.zip&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Если не указывать пароль, то unzip спросит его интерактивно.&lt;br /&gt;
&lt;br /&gt;
К сожалению zip лишь просто будет требовать пароль. Никакого шифрования от него ждать не стоит. Поэтому лучше использовать gpg или openssl.&lt;br /&gt;
&lt;br /&gt;
Создание запороленного zip архива пожалуй самое простое. С остальными утилитами, и в частности с tar дело обстоит не так хорошо. Эти программы придерживаются идеологии &amp;quot;делать одну вещь, но делать её хорошо&amp;quot;, и у них нет никаких встроенных средств для шифрования, или для &amp;quot;запороливания&amp;quot; архива. Поэтому для того, чтобы получить архив с паролем, надо прибегать к помощи сторонних утилит таких как gpg или openssl, которые ещё и зашифруют содержимое архива.&lt;br /&gt;
&lt;br /&gt;
Чтобы зашифровать архив с помощью gpg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;gpg -c test.tar&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Gpg спросит пароль и подтверждение пароля. На выходе получим файл - test.tar.gpg. Чтобы распаковать содержимое никакой ключ к gpg не требуется:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;gpg test.tar.gpg&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того, таким образом не обязательно запаковывать именно архив. Можно просто зашифровать какой либо файл.&lt;br /&gt;
&lt;br /&gt;
И способ с использованием openssl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;openssl des3 -salt -in test.tar -out test.tar.des3&lt;br /&gt;
enter des-ede3-cbc encryption password:&lt;br /&gt;
Verifying - enter des-ede3-cbc encryption password:&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы расшифровать:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;openssl des3 -d -salt -in test.tar.des3 -out test.tar&lt;br /&gt;
enter des-ede3-cbc decryption password:&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C_CD_%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%B2_%D0%B2_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8&amp;diff=13464</id>
		<title>Запись CD дисков в консоли</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C_CD_%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%B2_%D0%B2_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8&amp;diff=13464"/>
		<updated>2014-06-27T13:55:58Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Зачастую проще воспользоваться консолью для записи CD/DVD дисков, нежели использовать гра…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Зачастую проще воспользоваться консолью для записи CD/DVD дисков, нежели использовать графические утилиты, а зачастую это единственный вариант. И нет ничего проще! Для этого нам понадобятся: cdrecord и mkisofs. В gentoo они находятся в app-cdr/cdrtools.&lt;br /&gt;
&lt;br /&gt;
Несколько терминов, связанных с форматами файлов:&lt;br /&gt;
&lt;br /&gt;
 - Yellow Book: физический формат CD с данными.&lt;br /&gt;
 - Orange Book: физический формат для записываемых компакт-дисков.&lt;br /&gt;
 - CD-MO --- магнито-оптические диски.&lt;br /&gt;
 - CD-WO --- единожды записываемые диски (включают в себя и гибриды наподобие Фото-CD).&lt;br /&gt;
 - CD-RW --- перезаписываемые диски.&lt;br /&gt;
 - ISO-9660: Старый стандарт расположения данных, позволяющий использовать только стандарт 8.3 для имен файлов (т.е. 8 символов - имя файла и 3 - расширение).&lt;br /&gt;
 - Rock Ridge: Расширение ISO-9660, предполагающее использование длинных имен для файлов и UNIX-подобных ссылок. Позволяет сохранить все атрибуты файла, такие как владелец и права доступа. Атрибуты UNIX-файлов при чтении диска в Windows не отображаются.&lt;br /&gt;
 - Joliet: Расширение ISO-9660, разработанное Microsoft, которое позволяет использовать символы Unicode в именах файлов, так же как и использовать длинные  имена файлов. Кроме того, Joliet предоставляет возможность создания урезанных имен для совместимости с MS-DOS, выглядящих наподобие FILENA~1.TXT. Позволяет использовать имена файлов длиной до 64 символов, включая пробелы.&lt;br /&gt;
 - El Torito: Спецификация для загрузочных компакт-дисков.&lt;br /&gt;
 - HFS (Hierarchical File System): Оригинальная файловая система компьютеров Macintosh.&lt;br /&gt;
 - Мультисессия: Позволяет добавлять файлы в любое время, после записи одиночной сессии. Для того, чтобы диски читались, сессия должна быть закрыта. Однако такой подход исключает добавление файлов. Мультисессия позволяет связать отдельные сессии и обновленное содержание диска выглядит как один каталог.&lt;br /&gt;
 - CD-UDF (Universal Disk Format): файловая система-стандарт пошаговой записи пакетов данных.&lt;br /&gt;
&lt;br /&gt;
Процесс записи выбранных вами файлов состоит из двух этапов. Вначале необходимо создать с помощью mkisofs iso-образ, и потом записать его на диск, используя программу cdrecord. Для создания образа воспользуемся следующим синтаксисом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mkisofs -o test.iso -Jrv -V test_disk /home/usver/test_dir&lt;br /&gt;
&lt;br /&gt;
   -o - имя создаваемого iso-файла (test.iso);&lt;br /&gt;
   -J - используем записи Joliet для совместимости с системой Windows;&lt;br /&gt;
   -r - Rock Ridge расширение для совсестимости с *nix;&lt;br /&gt;
   -v - так называемый verbose-режим;&lt;br /&gt;
   -V - указываем имя тома (test_disk);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для просмотра содержимого можно смонтировать iso-образ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mount -t iso9660 -o ro,loop=/dev/loop0 test.iso /mnt/iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее нам нужно найти адрес пишещего устройства:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cdrecord -scanbus&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И записываем диск:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; cdrecord -v -eject speed=48 dev=0,0,0 test.iso&lt;br /&gt;
&lt;br /&gt;
   -v - verbose-режим. Обозначает тоже, что и в предыдущем случае&lt;br /&gt;
   -eject - выдвигает лоток привода после окончания процесса записи&lt;br /&gt;
   -speed - указываем скорость записи диска. В нашем случае - 48х&lt;br /&gt;
   -dev - записывающее устройство. Числа взяты из вывода программы cdrecord с параметром scanbus&lt;br /&gt;
   -multi - создания мультисессийного диска&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для очистки CD-RW необходимо в качестве параметров указать следующее:&lt;br /&gt;
&lt;br /&gt;
   blank=all - очистить весь диск&lt;br /&gt;
   blank=disc - то же самое&lt;br /&gt;
   blank=fast - быстрая очистка диска&lt;br /&gt;
   blank=session - очистить последнюю сессию&lt;br /&gt;
   blank=unclose - открыть последнюю записанную сессию&lt;br /&gt;
&lt;br /&gt;
То есть, например команда для быстрой очистки диска будет выглядеть следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cdrecord dev=0,0,0 blank=fast -eject -speed=4 -v&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для прямого копирования содержимого с одного диска на другой можно воспользоваться командой вида:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cdrecord -v dev=0,0,0 speed=4 -isosize /dev/scd1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Но для пущей надежности лучше сначала сделать образ диска:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd if=/dev/scd1 of=/tmp/diskfile.iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы добавить еще одну сессию, программе mkisofs необходимо знать номера начального и конечного секторов диска. Узнать это можно следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cdrecord dev=0,0,0 -msinfo&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате, команда для создания iso-образа будет иметь следующий вид:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mkisofs -o test2.iso -Jr -V Session2 -C 0,27139 -M 0,0,0 /path/to/files&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно так же эту команду объединить с предыдущей. В итоге, получим следующее:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mkisofs -o test2.iso -Jr -V Session2 -C `cdrecord dev=0,0,0 -msinfo` -M 0,0,0 /files/path/&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь привод считает информацию о последней записанной сессии и объединит ее содержание с содержанием новой сессии. Предполагается, что последняя сессия записана с опцией  '''-multi'''&lt;/div&gt;</summary>
		<author><name>Langator</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=13463</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=13463"/>
		<updated>2014-02-17T15:52:40Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div  ALIGN=JUSTIFY&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%; padding-right: 3%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--############ == О проекте Ай Да Linux == #############--&amp;gt;&lt;br /&gt;
== О проекте Ай Да Linux ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;[[File:Larry-hi.png|moo|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Главная страница}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-----########### == Getting started == #############-----&amp;gt;&lt;br /&gt;
== Getting started ==&lt;br /&gt;
Вы можете редактировать и создавать страницы на этой Wiki.&lt;br /&gt;
&lt;br /&gt;
Для навигации по сайту можно воспользоваться поиском, посмотреть [[Служебная:AllPages|все]] имеющиеся статьи или [[%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Random|случайную]].&lt;br /&gt;
Прежде чем редактировать или создавать новые страницы, пожалуйста, обратитесь к [[Справка:Содержание|справке]]. Так же можно заглянуть в [http://meta.wikimedia.org/wiki/Help:Contents MediaWiki User's Guide] содержащий информацию о работе wiki.&lt;br /&gt;
&lt;br /&gt;
Если у Вас возникнут какие-либо вопросы, Вы всегда можете написать нам по адресу [mailto:aidalinux@gmail.com aidalinux@gmail.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Grep&amp;diff=426</id>
		<title>Grep</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Grep&amp;diff=426"/>
		<updated>2012-12-04T20:30:00Z</updated>

		<summary type="html">&lt;p&gt;Langator: Откат правок Ipodsoft (обсуждение) к версии Langator&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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;grep ОБРАЗЕЦ имя_файла&amp;lt;/source&amp;gt;&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;
[http://open-club.ru/main/reading/HuMan_grep open-club.ru]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Man]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_ping_%D0%B8_traceroute&amp;diff=424</id>
		<title>Блокировка запросов ping и traceroute</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_ping_%D0%B8_traceroute&amp;diff=424"/>
		<updated>2012-09-08T23:03:53Z</updated>

		<summary type="html">&lt;p&gt;Langator: /* Запрет соединений с помощью iptables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В некотором случае такие утилиты, как ping и traceroute применяются в качестве простого метода для выявления доступных по сети хостов и для определения схемы подключения этих хостов к Internet. Обычно таким способом хакер находит удобные для атаки цели. Блокируя запросы этих утилит, можно удалить свой компьютер из перечня компьютеров, которые будут обнаружены хакером, и предот­вратить вероятную атаку.&lt;br /&gt;
Рассмотрим пример использования утилиты ping относительно обычного компьютера.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;  ping  -c  1  192.168.1.102&lt;br /&gt;
  &lt;br /&gt;
  PING 192.168.1.102   (192.168.1.102)   from 10.5.5.108   :   56(84)   bytes of data.&lt;br /&gt;
  64 bytes  from target.example.com (192.168.1.102):   ICMP_seq=0 ttl=255 time=1.140 ms&lt;br /&gt;
  - – - 192.168.1.102 ping statistics  – - -&lt;br /&gt;
  1 packets transmitted,   1 packets  received,   0% packet  loss&lt;br /&gt;
  round-trip min/avg/max/mdev = 1.140/1.140/1.140/0.000 ms&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А теперь применим traceroute относительно того же компьютера.&lt;br /&gt;
&lt;br /&gt;
  traceroute 192.168.1.102&lt;br /&gt;
  &lt;br /&gt;
  traceroute to 192.168.1.102  (192.168.1.102),   30 hops max,   38 byte packets&lt;br /&gt;
  1  hacker-firewall.hack_er.edu (192.163.2.1)     2.892 ms    2.803 ms    2.746 ms&lt;br /&gt;
  2  hacker-gateway.hack_er.edu (171.678.90.1)   3.881 ms    3.789 ms 3.686 ms&lt;br /&gt;
  {адреса нескольких промежуточных маршрутизаторов были удалены}&lt;br /&gt;
  13 veloci.example.com (192.168.1.1)     168.650 ms    183.821 ms    173.287 ms&lt;br /&gt;
  14 target.example.com (192.168.1.102)  122.819 ms    87.835 ms    104.117 ms&lt;br /&gt;
&lt;br /&gt;
Утилита traceroute отправляет UDP-пакеты с установленным значением поля TTL (время жизни) начиная с 1. В каждом следующем пакете значение поля TTL будет увеличи­ваться на 1 до тех пор, пока не будут пройдены все маршрутизаторы между отправителем и по­лучателем. Параметр -I сообщает о необходимости использования IСМР-пакетов, как показа­но ниже.&lt;br /&gt;
&lt;br /&gt;
  traceroute -I   192.168.1.102&lt;br /&gt;
  &lt;br /&gt;
  traceroute to 192.168.1.102   (192.168.1.102),   30 hops max,   38 byte packets&lt;br /&gt;
  {адреса промежуточных маршрутизаторов тот же, что и в предыдущем листинге}&lt;br /&gt;
&lt;br /&gt;
=== Запрет соединений с помощью iptables ===&lt;br /&gt;
&lt;br /&gt;
Следующая команда iptables позволяет блокировать ping-запросы в виде ICMP-пакетов.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;/sbin/iptables -A INPUT -s 0/0 -d 192.168.1.102 -р icmp --icmp-type echo-request -j DROP&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр -А указывает программе iptables о необходимости добавить правило в набор правил INPUT, в котором определяется способ обработки входящих сообщений. Согласно этой команде, при получении от хоста-отправителя (-s) с любым IP-адресом (0/0) ICMP-запроса (icmp-type echo-request), предназначенного хосту-получателю (-d) с IP-адресом 192.168.1.102 (наш компьютер) и с использованием указанного протокола (-р icmp), следует перейти (-j) к правилу DROP. В результате применения этого правила все поступающие на хост 192.168.1.102 эхо-запросы ICMP, независимо от отправителя, будут отбрасываться.&lt;br /&gt;
&lt;br /&gt;
Теперь попытка установить соединение с хостом 192.168.1.102 посредством команды ping закончится неудачей.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;  ping  -с 5  192.168.1.102&lt;br /&gt;
  &lt;br /&gt;
  PING   192.168.1.102  (192.168.1.102)   from 10.5.5.108   :   56(84)   bytes of data&lt;br /&gt;
  - – - 192.168.1.102 ping statistics – - -&lt;br /&gt;
  5 packets  transmitted,   0  packets   received,   100%  packet loss&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Для блокирования уделенных запросов с помощью утилиты traceroute добавим правило для отбрасывания всех UDP-пакетов, поступающих на порты в диапазоне от 33435 до 33525.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;/sbin/iptables -A INPUT -s 0/0 -d 192.168.1.102 -p udp --dport 33435:33525 -j DROP&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на то, как указан диапазон портов (33435 : 33525). При попытке хаке­ром использовать traceroute, он получит следующий результат.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;   traoaroute 192.168.1.102&lt;br /&gt;
   &lt;br /&gt;
   traceroute to 192.168.1.102   (192.168.1.102),   30 hops max,   38 byte packets&lt;br /&gt;
   1  cracker-firewall.crack_er.edu (192.168.2.1)     2.892 ms    2.803 ms    2.746 ms&lt;br /&gt;
   2  cracker-gateway.crack_er.edu (171.678.90.1)   3.881 ms     3.789 ms   3.686 ms&lt;br /&gt;
   {пропущены записи о нескольких промежуточных маршрутизаторах}&lt;br /&gt;
   12 cisco.example.com (254.192.1.20)     158.888 ms    161.422 ms    160.884 ms&lt;br /&gt;
   13 veloci.example.com (192.168.1.1)   168.650 ms    183.821 ms    173.287 ms&lt;br /&gt;
   14 *  *  *&lt;br /&gt;
   15 *  *  *&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак, мы успешно блокировали обмен потенциально опасными пакетами с нашим компь­ютером. Однако промежуточные хосты на пути доставки пакетов от хоста хакера к нашему хосту по-прежнему отвечают. В идеальном варианте следует настроить все контролируемые хосты на отбрасывание “разведывательных” пакетов.&lt;br /&gt;
&lt;br /&gt;
'''''Внимание:''''' Заблокированные в примере порты являются стандартными портами, которые использует UNIX-утилита traceroute. В других версиях этой программы (например mtr) диапазон используемых портов может быть иным.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
[http://securos.org.ua/iptables-pravila-blokirovki-zaprosov-ping-i-traceroute/ securos.org.ua]&lt;br /&gt;
[[Категория:Руководства]] [[Категория:Безопасность]] [[Категория:Iptables]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_mediawiki&amp;diff=423</id>
		<title>Резервное копирование и восстановление mediawiki</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_mediawiki&amp;diff=423"/>
		<updated>2012-03-17T02:18:43Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Backup]]&lt;br /&gt;
[[Category:Script]]&lt;br /&gt;
Представлен скрипт для создания резервных копий, восстановления, обновления mediawiki и расширений.&lt;br /&gt;
Особенность обновления расширений заключается в том, что контроль версий поддерживается через svn.&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
ColorOff='\\e[0m'       # Text Reset&lt;br /&gt;
BWhite='\\e[1;37m'      # Bold White&lt;br /&gt;
Blue='\e[0;34m'&lt;br /&gt;
&lt;br /&gt;
#Обязательно вставьте свои значения&lt;br /&gt;
WIKIPATH=&amp;quot;/www/wiki&amp;quot; #директория установки wiki&lt;br /&gt;
BACKUPPATH=&amp;quot;/root/backup&amp;quot; #Куда бекапим&lt;br /&gt;
MYSQLUSER=&amp;quot;user&amp;quot; # mysql пользователь&lt;br /&gt;
MYSQLHOST=&amp;quot;localhost&amp;quot; # Хост mysql&lt;br /&gt;
WIKIDB=&amp;quot;wikidb&amp;quot; #mysql база wiki&lt;br /&gt;
&lt;br /&gt;
mediawiki=$1&lt;br /&gt;
if [ -z $mediawiki ]&lt;br /&gt;
        then&lt;br /&gt;
                echo -e &amp;quot;               Введите название архива с wiki для обновления\n\&lt;br /&gt;
                \e[0;34mbackup\\e[0m или \e[0;34m -b \\e[0m для архивации всех файлов и базы данных wiki\n\&lt;br /&gt;
                \e[0;34mextensions\\e[0m или \e[0;34m -e \\e[0m для обновления плагинов\n\&lt;br /&gt;
                \e[0;34mrestorewiki &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -w &amp;lt;name&amp;gt;\\e[0m для восстановления wiki из бекапа\n\&lt;br /&gt;
                \e[0;34mrestoredb &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -d &amp;lt;name&amp;gt;\\e[0m для восстановления базы данных wiki из бекапа&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
&lt;br /&gt;
elif [ `id -u` != 0 ]&lt;br /&gt;
        then&lt;br /&gt;
                echo Вы не root&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
dir=`pwd`&lt;br /&gt;
&lt;br /&gt;
case $mediawiki in&lt;br /&gt;
&lt;br /&gt;
        backup | -b)&lt;br /&gt;
                echo &amp;quot;start backup datebase. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 mysqldump -h $MYSQLHOST -u $MYSQLUSER -p $WIKIDB -c |\&lt;br /&gt;
                nice -n 19 /bin/gzip -9 &amp;gt; $BACKUPPATH/wiki-wikidb-$(date '+%Y%m%d').sql.gz&lt;br /&gt;
                echo &amp;quot;backup of database completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                echo &amp;quot;start backup wiki folder. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 tar -czf $BACKUPPATH/aidalinux-wiki-$(date '+%Y%m%d').tar.gz $WIKIPATH&lt;br /&gt;
                echo &amp;quot;backup wiki completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        extensions | -e)&lt;br /&gt;
                for extensions in `ls $WIKIPATH/extensions`&lt;br /&gt;
                        do&lt;br /&gt;
                                cd $WIKIPATH/extensions/&amp;quot;$extensions&amp;quot;&lt;br /&gt;
                                svn update&lt;br /&gt;
                                cd ..&lt;br /&gt;
                done&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restorewiki | -w)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите назазвание бекапа с wiki&amp;quot; &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
                backup_wiki=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore wiki files&amp;quot;&lt;br /&gt;
                tar xzvf &amp;quot;$backup_wiki&amp;quot; -C $WIKIPATH --strip-components=1&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restoredb | -d)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите название бекапа базы данных wiki&amp;quot; &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
                wiki_wikidb=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore datebase&amp;quot;&lt;br /&gt;
                gunzip -c &amp;quot;$wiki_wikidb&amp;quot; | mysql -h $MYSQLHOST -u $MYSQLUSER -p $WIKIDB&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
#Определение расширения архива с mediawiki&lt;br /&gt;
arch=`echo $mediawiki | awk -F. '{ print $NF}'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$arch&amp;quot; = gz ]&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;start update mediawiki&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;Вы ошиблись в вводе аргумента&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;$dir&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#update mediawiki&lt;br /&gt;
tar xzf $mediawiki -C $WIKIPATH --strip-components=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;update database&amp;quot;&lt;br /&gt;
php $WIKIPATH/maintenance/update.php&lt;br /&gt;
echo &amp;quot;is all!!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_wordpress&amp;diff=422</id>
		<title>Резервное копирование и восстановление wordpress</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_wordpress&amp;diff=422"/>
		<updated>2012-03-17T02:17:27Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Backup]]&lt;br /&gt;
[[Category:Script]]&lt;br /&gt;
Представлен скрипт для создания резервных копий, восстановления и обновления wordpress.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#вставьте свои значения &lt;br /&gt;
path=&amp;quot;/www/youpath&amp;quot; #Путь до wordpress&lt;br /&gt;
BACKUPPATH=&amp;quot;/root/backup&amp;quot; #Куда бекапим&lt;br /&gt;
MYSQLUSER=&amp;quot;user&amp;quot; #mysql юзер&lt;br /&gt;
MYSQLHOST=&amp;quot;localhost&amp;quot; #хост mysql&lt;br /&gt;
WORDPRESSDB=&amp;quot;wordpressdb&amp;quot; #база данных wordpress&lt;br /&gt;
&lt;br /&gt;
arg=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$arg&amp;quot; ]&lt;br /&gt;
        then&lt;br /&gt;
        echo -e &amp;quot;Введите:&lt;br /&gt;
        \e[0;34mupgrade\\e[0m или \e[0;34m -u \\e[0m для обновления\n\&lt;br /&gt;
        \e[0;34mbackup\\e[0m или \e[0;34m -b \\e[0m для архивации всех файлов и базы данных wordpress\n\&lt;br /&gt;
        \e[0;34mextensions\\e[0m или \e[0;34m -e \\e[0m для обновления плагинов\n\&lt;br /&gt;
        \e[0;34mrestorewordpress &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -w &amp;lt;name&amp;gt;\\e[0m для восстановления wordpress из бекапа\n\&lt;br /&gt;
        \e[0;34mrestoredb &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -d &amp;lt;name&amp;gt;\\e[0m для восстановления базы данных wordpress из бекапа&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
&lt;br /&gt;
elif [ `id -u` != 0 ]&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;Вы не root&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
case $arg in&lt;br /&gt;
        backup | -b)&lt;br /&gt;
                echo &amp;quot;start backup datebase. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 mysqldump -h $MYSQLHOST -u $MYSQLUSER -p $WORDPRESSDB -c |\&lt;br /&gt;
                nice -n 19 /bin/gzip -9 &amp;gt; $BACKUPPATH/wordpress-db-$(date '+%Y%m%d').sql.gz&lt;br /&gt;
                echo &amp;quot;backup of database completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                echo &amp;quot;start backup wordpress folder. Wait...&amp;quot;&lt;br /&gt;
                # Для исключения файла или каталога используйте --exclude=&amp;quot;./youdir&amp;quot;&lt;br /&gt;
                # точка обязательна и не ставить слэш в конце имени директории &lt;br /&gt;
                cd $path; nice -n 19 tar -cvzf $BACKUPPATH/wordpress-$(date '+%Y%m%d').tar.gz . --exclude=&amp;quot;./wiki&amp;quot; --exclude=&amp;quot;./upload&amp;quot;&lt;br /&gt;
                echo &amp;quot;backup wordpress completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restorewordpress | -w)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите назазвание бекапа с wordpress&amp;quot; &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
                backup_wordpress=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore wordpress files&amp;quot;&lt;br /&gt;
                tar xzvf &amp;quot;$backup_wordpress&amp;quot; -C $path --strip-components=1&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restoredb | -d)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите название бекапа базы данных wordpress&amp;quot; &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
                wordpress_db=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore database&amp;quot;&lt;br /&gt;
                gunzip -c &amp;quot;$wordpress_db&amp;quot; | mysql -h $MYSQLHOST -u $MYSQLUSER -p $WORDPRESSDB&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        upgrade | -u)&lt;br /&gt;
                wordpress=&amp;quot;$2&amp;quot;&lt;br /&gt;
                arch=`echo &amp;quot;$wordpress&amp;quot; | awk -F. '{ print $NF}'`&lt;br /&gt;
                if [ &amp;quot;$arch&amp;quot; = &amp;quot;zip&amp;quot; -o &amp;quot;$arch&amp;quot; = &amp;quot;gz&amp;quot; ]&lt;br /&gt;
                        then&lt;br /&gt;
                                echo &amp;quot;prepare to upgrade&amp;quot;&lt;br /&gt;
                                [ -d $path/upload/ ] || mkdir $path/upload/&lt;br /&gt;
                                cp -v -R $path/wp-content/ $path/wp-config.php $path/.htaccess $path/upload/&lt;br /&gt;
                                rm $path/wp*.php $path/license.txt $path/readme.html $path/xmlrpc.php&lt;br /&gt;
                                rm -rf $path/wp-admin/ $path/wp-includes/&lt;br /&gt;
                                cp $path/upload/wp-config.php $path&lt;br /&gt;
&lt;br /&gt;
                                echo &amp;quot;update wordpress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                                if [ $arch = zip ]&lt;br /&gt;
                                        then&lt;br /&gt;
                                                        unzip -o $wordpress -d $path&lt;br /&gt;
                                elif [ $arch = gz ]&lt;br /&gt;
                                        then&lt;br /&gt;
                                                        tar xzf $wordpress -C $path --strip-components=1&lt;br /&gt;
                                        else&lt;br /&gt;
                                                exit 1&lt;br /&gt;
                                fi&lt;br /&gt;
&lt;br /&gt;
                                cp -rf $path/upload/* $path&lt;br /&gt;
                                rm -rf $path/upload&lt;br /&gt;
&lt;br /&gt;
                                echo &amp;quot;=====================================================================================&amp;quot;&lt;br /&gt;
                                echo &amp;quot;==== For update database you need open &amp;lt;yousite&amp;gt;/wp-admin/upgrade.php in browser ====&amp;quot;&lt;br /&gt;
                                echo &amp;quot;=====================================================================================&amp;quot;&lt;br /&gt;
                        else&lt;br /&gt;
                                echo &amp;quot;Неизвестный тип архива, автоопределение работает только для zip и tar.gz&amp;quot;&lt;br /&gt;
                                exit 1&lt;br /&gt;
&lt;br /&gt;
                fi&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;is all!!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_wordpress&amp;diff=421</id>
		<title>Резервное копирование и восстановление wordpress</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_wordpress&amp;diff=421"/>
		<updated>2012-03-17T01:58:48Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Backup]]&lt;br /&gt;
[[Category:Script]]&lt;br /&gt;
Представлен скрипт для создания резервных копий, восстановления и обновления wordpress.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#вставьте свои значения &lt;br /&gt;
path=&amp;quot;/www/youpath&amp;quot; #Путь до wordpress&lt;br /&gt;
BACKUPPATH=&amp;quot;/root/backup&amp;quot; #Куда бекапим&lt;br /&gt;
MYSQLUSER=&amp;quot;user&amp;quot; #mysql юзер&lt;br /&gt;
MYSQLHOST=&amp;quot;localhost&amp;quot; #хост mysql&lt;br /&gt;
WORDPRESSDB=&amp;quot;wordpressdb&amp;quot; #база данных wordpress&lt;br /&gt;
&lt;br /&gt;
arg=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$arg&amp;quot; ]&lt;br /&gt;
        then&lt;br /&gt;
        echo -e &amp;quot;Введите:&lt;br /&gt;
        \e[0;34mupgrade\\e[0m или \e[0;34m -u \\e[0m для обновления\n\&lt;br /&gt;
        \e[0;34mbackup\\e[0m или \e[0;34m -b \\e[0m для архивации всех файлов и базы данных wordpress\n\&lt;br /&gt;
        \e[0;34mextensions\\e[0m или \e[0;34m -e \\e[0m для обновления плагинов\n\&lt;br /&gt;
        \e[0;34mrestorewordpress &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -w &amp;lt;name&amp;gt;\\e[0m для восстановления wordpress из бекапа\n\&lt;br /&gt;
        \e[0;34mrestoredb &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -d &amp;lt;name&amp;gt;\\e[0m для восстановления базы данных wordpress из бекапа&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
&lt;br /&gt;
elif [ `id -u` != 0 ]&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;Вы не root&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
case $arg in&lt;br /&gt;
        backup | -b)&lt;br /&gt;
                echo &amp;quot;start backup datebase. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 mysqldump -h $MYSQLHOST -u $MYSQLUSER -p $WORDPRESSDB -c |\&lt;br /&gt;
                nice -n 19 /bin/gzip -9 &amp;gt; $BACKUPPATH/wordpress-db-$(date '+%Y%m%d').sql.gz&lt;br /&gt;
                echo &amp;quot;backup of database completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                echo &amp;quot;start backup wordpress folder. Wait...&amp;quot;&lt;br /&gt;
                # Для исключения файла или каталога используйте --exclude=&amp;quot;./youdir&amp;quot;&lt;br /&gt;
                # точка обязательна и не ставить слэш в конце имени директории &lt;br /&gt;
                cd $path; nice -n 19 tar -cvzf $BACKUPPATH/wordpress-$(date '+%Y%m%d').tar.gz . --exclude=&amp;quot;./wiki&amp;quot; --exclude=&amp;quot;./upload&amp;quot;&lt;br /&gt;
                echo &amp;quot;backup wordpress completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restorewordpress | -w)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите назазвание бекапа с wordpress&amp;quot; &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
                backup_wordpress=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore wordpress files&amp;quot;&lt;br /&gt;
                tar xzvf &amp;quot;$backup_wordpress&amp;quot; -C $path --strip-components=1&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
restoredb | -d)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите название бекапа базы данных wordpress&amp;quot; &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
                wordpress_db=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore database&amp;quot;&lt;br /&gt;
                gunzip -c &amp;quot;$wordpress_db&amp;quot; | mysql -h $MYSQLHOST -u $MYSQLUSER -p $WORDPRESSDB&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        upgrade | -u)&lt;br /&gt;
                wordpress=&amp;quot;$2&amp;quot;&lt;br /&gt;
                arch=`echo &amp;quot;$wordpress&amp;quot; | awk -F. '{ print $NF}'`&lt;br /&gt;
                if [ &amp;quot;$arch&amp;quot; = &amp;quot;zip&amp;quot; -o &amp;quot;$arch&amp;quot; = &amp;quot;gz&amp;quot; ]&lt;br /&gt;
                        then&lt;br /&gt;
                                echo &amp;quot;prepare to upgrade&amp;quot;&lt;br /&gt;
                                [ -d $path/upload/ ] || mkdir $path/upload/&lt;br /&gt;
                                cp -v -R $path/wp-content/ $path/wp-config.php $path/.htaccess $path/upload/&lt;br /&gt;
                                rm $path/wp*.php $path/license.txt $path/readme.html $path/xmlrpc.php&lt;br /&gt;
                                rm -rf $path/wp-admin/ $path/wp-includes/&lt;br /&gt;
                                cp $path/upload/wp-config.php $path&lt;br /&gt;
&lt;br /&gt;
                                echo &amp;quot;update wordpress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                                if [ $arch = zip ]&lt;br /&gt;
                                        then&lt;br /&gt;
                                                        unzip -o $wordpress -d $path&lt;br /&gt;
                                elif [ $arch = gz ]&lt;br /&gt;
                                        then&lt;br /&gt;
                                                        tar xzf $wordpress -C $path --strip-components=1&lt;br /&gt;
                                        else&lt;br /&gt;
                                                exit 1&lt;br /&gt;
                                fi&lt;br /&gt;
&lt;br /&gt;
                                cp -rf $path/upload/* $path&lt;br /&gt;
                                rm -rf $path/upload&lt;br /&gt;
&lt;br /&gt;
                                echo &amp;quot;=====================================================================================&amp;quot;&lt;br /&gt;
                                echo &amp;quot;==== For update database you need open &amp;lt;yousite&amp;gt;/wp-admin/upgrade.php in browser ====&amp;quot;&lt;br /&gt;
                                echo &amp;quot;=====================================================================================&amp;quot;&lt;br /&gt;
                        else&lt;br /&gt;
                                echo &amp;quot;Неизвестный тип архива, автоопределение работает только для zip и tar.gz&amp;quot;&lt;br /&gt;
                                exit 1&lt;br /&gt;
&lt;br /&gt;
                fi&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;is all!!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_mediawiki&amp;diff=420</id>
		<title>Резервное копирование и восстановление mediawiki</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_mediawiki&amp;diff=420"/>
		<updated>2012-03-17T01:35:00Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Backup]]&lt;br /&gt;
[[Category:Script]]&lt;br /&gt;
Представлен скрипт для создания резервных копий, восстановления, обновления mediawiki и расширений.&lt;br /&gt;
Особенность обновления расширений заключается в том, что контроль версий поддерживается через svn.&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
ColorOff='\\e[0m'       # Text Reset&lt;br /&gt;
BWhite='\\e[1;37m'      # Bold White&lt;br /&gt;
Blue='\e[0;34m'&lt;br /&gt;
&lt;br /&gt;
#Обязательно вставьте свои значения&lt;br /&gt;
WIKIPATH=&amp;quot;/www/wiki&amp;quot; #директория установки wiki&lt;br /&gt;
BACKUPPATH=&amp;quot;/root/backup&amp;quot; #Куда бекапим&lt;br /&gt;
MYSQLUSER=&amp;quot;user&amp;quot; # mysql пользователь&lt;br /&gt;
MYSQLHOST=&amp;quot;localhost&amp;quot; # Хост mysql&lt;br /&gt;
WIKIDB=&amp;quot;wikidb&amp;quot; #mysql база wiki&lt;br /&gt;
&lt;br /&gt;
mediawiki=$1&lt;br /&gt;
if [ -z $mediawiki ]&lt;br /&gt;
        then&lt;br /&gt;
                echo -e &amp;quot;               Введите название архива с wiki для обновления\n\&lt;br /&gt;
                \e[0;34mbackup\\e[0m или \e[0;34m -b \\e[0m для архивации всех файлов и базы данных wiki\n\&lt;br /&gt;
                \e[0;34mextensions\\e[0m или \e[0;34m -e \\e[0m для обновления плагинов\n\&lt;br /&gt;
                \e[0;34mrestorewiki &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -w &amp;lt;name&amp;gt;\\e[0m для восстановления wiki из бекапа\n\&lt;br /&gt;
                \e[0;34mrestoredb &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -d &amp;lt;name&amp;gt;\\e[0m для восстановления базы данных wiki из бекапа&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
&lt;br /&gt;
elif [ `id -u` != 0 ]&lt;br /&gt;
        then&lt;br /&gt;
                echo Вы не root&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
dir=`pwd`&lt;br /&gt;
&lt;br /&gt;
case $mediawiki in&lt;br /&gt;
&lt;br /&gt;
        backup | -b)&lt;br /&gt;
                echo &amp;quot;start backup datebase. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 mysqldump -h $MYSQLHOST -u $MYSQLUSER -p $WIKIDB -c |\&lt;br /&gt;
                nice -n 19 /bin/gzip -9 &amp;gt; $BACKUPPATH/wiki-wikidb-$(date '+%Y%m%d').sql.gz&lt;br /&gt;
                echo &amp;quot;backup of database completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                echo &amp;quot;start backup wiki folder. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 tar -czf $BACKUPPATH/aidalinux-wiki-$(date '+%Y%m%d').tar.gz $WIKIPATH&lt;br /&gt;
                echo &amp;quot;backup wiki completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        extensions | -e)&lt;br /&gt;
                for extensions in `ls $WIKIPATH/extensions`&lt;br /&gt;
                        do&lt;br /&gt;
                                cd $WIKIPATH/extensions/&amp;quot;$extensions&amp;quot;&lt;br /&gt;
                                svn update&lt;br /&gt;
                                cd ..&lt;br /&gt;
                done&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restorewiki | -w)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите назазвание бекапа с wiki&amp;quot;; exit 1&lt;br /&gt;
&lt;br /&gt;
                backup_wiki=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore wiki files&amp;quot;&lt;br /&gt;
                tar xzvf &amp;quot;$backup_wiki&amp;quot; -C $WIKIPATH --strip-components=1&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restoredb | -d)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите название бекапа базы данных wiki&amp;quot;; exit 1&lt;br /&gt;
&lt;br /&gt;
                wiki_wikidb=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore datebase&amp;quot;&lt;br /&gt;
                gunzip -c &amp;quot;$wiki_wikidb&amp;quot; | mysql -h $MYSQLHOST -u $MYSQLUSER -p $WIKIDB&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
#Определение расширения архива с mediawiki&lt;br /&gt;
arch=`echo $mediawiki | awk -F. '{ print $NF}'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$arch&amp;quot; = gz ]&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;start update mediawiki&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;Вы ошиблись в вводе аргумента&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;$dir&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#update mediawiki&lt;br /&gt;
tar xzf $mediawiki -C $WIKIPATH --strip-components=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;update database&amp;quot;&lt;br /&gt;
php $WIKIPATH/maintenance/update.php&lt;br /&gt;
echo &amp;quot;is all!!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_wordpress&amp;diff=419</id>
		<title>Резервное копирование и восстановление wordpress</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_wordpress&amp;diff=419"/>
		<updated>2012-03-17T01:34:28Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Backup]]&lt;br /&gt;
[[Category:Script]]&lt;br /&gt;
Представлен скрипт для создания резервных копий, восстановления и обновления wordpress.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#вставьте свои значения &lt;br /&gt;
path=&amp;quot;/www/youpath&amp;quot; #Путь до wordpress&lt;br /&gt;
BACKUPPATH=&amp;quot;/root/backup&amp;quot; #Куда бекапим&lt;br /&gt;
MYSQLUSER=&amp;quot;user&amp;quot; #mysql юзер&lt;br /&gt;
MYSQLHOST=&amp;quot;localhost&amp;quot; #хост mysql&lt;br /&gt;
WORDPRESSDB=&amp;quot;wordpressdb&amp;quot; #база данных wordpress&lt;br /&gt;
&lt;br /&gt;
arg=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$arg&amp;quot; ]&lt;br /&gt;
        then&lt;br /&gt;
        echo -e &amp;quot;Введите:&lt;br /&gt;
        \e[0;34mupgrade\\e[0m или \e[0;34m -u \\e[0m для обновления\n\&lt;br /&gt;
        \e[0;34mbackup\\e[0m или \e[0;34m -b \\e[0m для архивации всех файлов и базы данных wordpress\n\&lt;br /&gt;
        \e[0;34mextensions\\e[0m или \e[0;34m -e \\e[0m для обновления плагинов\n\&lt;br /&gt;
        \e[0;34mrestorewordpress &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -w &amp;lt;name&amp;gt;\\e[0m для восстановления wordpress из бекапа\n\&lt;br /&gt;
        \e[0;34mrestoredb &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -d &amp;lt;name&amp;gt;\\e[0m для восстановления базы данных wordpress из бекапа&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
&lt;br /&gt;
elif [ `id -u` != 0 ]&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;Вы не root&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
case $arg in&lt;br /&gt;
        backup | -b)&lt;br /&gt;
                echo &amp;quot;start backup datebase. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 mysqldump -h $MYSQLHOST -u $MYSQLUSER -p $WORDPRESSDB -c |\&lt;br /&gt;
                nice -n 19 /bin/gzip -9 &amp;gt; $BACKUPPATH/wordpress-db-$(date '+%Y%m%d').sql.gz&lt;br /&gt;
                echo &amp;quot;backup of database completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                echo &amp;quot;start backup wordpress folder. Wait...&amp;quot;&lt;br /&gt;
                # Для исключения файла или каталога используйте --exclude=&amp;quot;./youdir&amp;quot;&lt;br /&gt;
                # точка обязательна и не ставить слэш в конце имени директории &lt;br /&gt;
                cd $path; nice -n 19 tar -cvzf $BACKUPPATH/wordpress-$(date '+%Y%m%d').tar.gz . --exclude=&amp;quot;./wiki&amp;quot; --exclude=&amp;quot;./upload&amp;quot;&lt;br /&gt;
                echo &amp;quot;backup wordpress completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restorewordpress | -w)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите назазвание бекапа с wordpress&amp;quot;; exit 1&lt;br /&gt;
&lt;br /&gt;
                backup_wordpress=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore wordpress files&amp;quot;&lt;br /&gt;
                tar xzvf &amp;quot;$backup_wordpress&amp;quot; -C $path --strip-components=1&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
restoredb | -d)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите название бекапа базы данных wordpress&amp;quot;; exit 1&lt;br /&gt;
&lt;br /&gt;
                wordpress_db=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore database&amp;quot;&lt;br /&gt;
                gunzip -c &amp;quot;$wordpress_db&amp;quot; | mysql -h $MYSQLHOST -u $MYSQLUSER -p $WORDPRESSDB&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        upgrade | -u)&lt;br /&gt;
                wordpress=&amp;quot;$2&amp;quot;&lt;br /&gt;
                arch=`echo &amp;quot;$wordpress&amp;quot; | awk -F. '{ print $NF}'`&lt;br /&gt;
                if [ &amp;quot;$arch&amp;quot; = &amp;quot;zip&amp;quot; -o &amp;quot;$arch&amp;quot; = &amp;quot;gz&amp;quot; ]&lt;br /&gt;
                        then&lt;br /&gt;
                                echo &amp;quot;prepare to upgrade&amp;quot;&lt;br /&gt;
                                [ -d $path/upload/ ] || mkdir $path/upload/&lt;br /&gt;
                                cp -v -R $path/wp-content/ $path/wp-config.php $path/.htaccess $path/upload/&lt;br /&gt;
                                rm $path/wp*.php $path/license.txt $path/readme.html $path/xmlrpc.php&lt;br /&gt;
                                rm -rf $path/wp-admin/ $path/wp-includes/&lt;br /&gt;
                                cp $path/upload/wp-config.php $path&lt;br /&gt;
&lt;br /&gt;
                                echo &amp;quot;update wordpress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                                if [ $arch = zip ]&lt;br /&gt;
                                        then&lt;br /&gt;
                                                        unzip -o $wordpress -d $path&lt;br /&gt;
                                elif [ $arch = gz ]&lt;br /&gt;
                                        then&lt;br /&gt;
                                                        tar xzf $wordpress -C $path --strip-components=1&lt;br /&gt;
                                        else&lt;br /&gt;
                                                exit 1&lt;br /&gt;
                                fi&lt;br /&gt;
&lt;br /&gt;
                                cp -rf $path/upload/* $path&lt;br /&gt;
                                rm -rf $path/upload&lt;br /&gt;
&lt;br /&gt;
                                echo &amp;quot;=====================================================================================&amp;quot;&lt;br /&gt;
                                echo &amp;quot;==== For update database you need open &amp;lt;yousite&amp;gt;/wp-admin/upgrade.php in browser ====&amp;quot;&lt;br /&gt;
                                echo &amp;quot;=====================================================================================&amp;quot;&lt;br /&gt;
                        else&lt;br /&gt;
                                echo &amp;quot;Неизвестный тип архива, автоопределение работает только для zip и tar.gz&amp;quot;&lt;br /&gt;
                                exit 1&lt;br /&gt;
&lt;br /&gt;
                fi&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;is all!!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_mediawiki&amp;diff=418</id>
		<title>Резервное копирование и восстановление mediawiki</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_mediawiki&amp;diff=418"/>
		<updated>2012-03-17T01:27:22Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Представлен скрипт для создания резервных копий, восстановления, обновления mediawiki и расширений.&lt;br /&gt;
Особенность обновления расширений заключается в том, что контроль версий поддерживается через svn.&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
ColorOff='\\e[0m'       # Text Reset&lt;br /&gt;
BWhite='\\e[1;37m'      # Bold White&lt;br /&gt;
Blue='\e[0;34m'&lt;br /&gt;
&lt;br /&gt;
#Обязательно вставьте свои значения&lt;br /&gt;
WIKIPATH=&amp;quot;/www/wiki&amp;quot; #директория установки wiki&lt;br /&gt;
BACKUPPATH=&amp;quot;/root/backup&amp;quot; #Куда бекапим&lt;br /&gt;
MYSQLUSER=&amp;quot;user&amp;quot; # mysql пользователь&lt;br /&gt;
MYSQLHOST=&amp;quot;localhost&amp;quot; # Хост mysql&lt;br /&gt;
WIKIDB=&amp;quot;wikidb&amp;quot; #mysql база wiki&lt;br /&gt;
&lt;br /&gt;
mediawiki=$1&lt;br /&gt;
if [ -z $mediawiki ]&lt;br /&gt;
        then&lt;br /&gt;
                echo -e &amp;quot;               Введите название архива с wiki для обновления\n\&lt;br /&gt;
                \e[0;34mbackup\\e[0m или \e[0;34m -b \\e[0m для архивации всех файлов и базы данных wiki\n\&lt;br /&gt;
                \e[0;34mextensions\\e[0m или \e[0;34m -e \\e[0m для обновления плагинов\n\&lt;br /&gt;
                \e[0;34mrestorewiki &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -w &amp;lt;name&amp;gt;\\e[0m для восстановления wiki из бекапа\n\&lt;br /&gt;
                \e[0;34mrestoredb &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -d &amp;lt;name&amp;gt;\\e[0m для восстановления базы данных wiki из бекапа&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
&lt;br /&gt;
elif [ `id -u` != 0 ]&lt;br /&gt;
        then&lt;br /&gt;
                echo Вы не root&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
dir=`pwd`&lt;br /&gt;
&lt;br /&gt;
case $mediawiki in&lt;br /&gt;
&lt;br /&gt;
        backup | -b)&lt;br /&gt;
                echo &amp;quot;start backup datebase. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 mysqldump -h $MYSQLHOST -u $MYSQLUSER -p $WIKIDB -c |\&lt;br /&gt;
                nice -n 19 /bin/gzip -9 &amp;gt; $BACKUPPATH/wiki-wikidb-$(date '+%Y%m%d').sql.gz&lt;br /&gt;
                echo &amp;quot;backup of database completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                echo &amp;quot;start backup wiki folder. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 tar -czf $BACKUPPATH/aidalinux-wiki-$(date '+%Y%m%d').tar.gz $WIKIPATH&lt;br /&gt;
                echo &amp;quot;backup wiki completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        extensions | -e)&lt;br /&gt;
                for extensions in `ls $WIKIPATH/extensions`&lt;br /&gt;
                        do&lt;br /&gt;
                                cd $WIKIPATH/extensions/&amp;quot;$extensions&amp;quot;&lt;br /&gt;
                                svn update&lt;br /&gt;
                                cd ..&lt;br /&gt;
                done&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restorewiki | -w)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите назазвание бекапа с wiki&amp;quot;; exit 1&lt;br /&gt;
&lt;br /&gt;
                backup_wiki=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore wiki files&amp;quot;&lt;br /&gt;
                tar xzvf &amp;quot;$backup_wiki&amp;quot; -C $WIKIPATH --strip-components=1&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restoredb | -d)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите название бекапа базы данных wiki&amp;quot;; exit 1&lt;br /&gt;
&lt;br /&gt;
                wiki_wikidb=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore datebase&amp;quot;&lt;br /&gt;
                gunzip -c &amp;quot;$wiki_wikidb&amp;quot; | mysql -h $MYSQLHOST -u $MYSQLUSER -p $WIKIDB&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
#Определение расширения архива с mediawiki&lt;br /&gt;
arch=`echo $mediawiki | awk -F. '{ print $NF}'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$arch&amp;quot; = gz ]&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;start update mediawiki&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;Вы ошиблись в вводе аргумента&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;$dir&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#update mediawiki&lt;br /&gt;
tar xzf $mediawiki -C $WIKIPATH --strip-components=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;update database&amp;quot;&lt;br /&gt;
php $WIKIPATH/maintenance/update.php&lt;br /&gt;
echo &amp;quot;is all!!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_wordpress&amp;diff=417</id>
		<title>Резервное копирование и восстановление wordpress</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_wordpress&amp;diff=417"/>
		<updated>2012-03-17T01:25:16Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Представлен скрипт для создания резервных копий, восстановления и обновления wordpress. &amp;lt;source...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Представлен скрипт для создания резервных копий, восстановления и обновления wordpress.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#вставьте свои значения &lt;br /&gt;
path=&amp;quot;/www/youpath&amp;quot; #Путь до wordpress&lt;br /&gt;
BACKUPPATH=&amp;quot;/root/backup&amp;quot; #Куда бекапим&lt;br /&gt;
MYSQLUSER=&amp;quot;user&amp;quot; #mysql юзер&lt;br /&gt;
MYSQLHOST=&amp;quot;localhost&amp;quot; #хост mysql&lt;br /&gt;
WORDPRESSDB=&amp;quot;wordpressdb&amp;quot; #база данных wordpress&lt;br /&gt;
&lt;br /&gt;
arg=&amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$arg&amp;quot; ]&lt;br /&gt;
        then&lt;br /&gt;
        echo -e &amp;quot;Введите:&lt;br /&gt;
        \e[0;34mupgrade\\e[0m или \e[0;34m -u \\e[0m для обновления\n\&lt;br /&gt;
        \e[0;34mbackup\\e[0m или \e[0;34m -b \\e[0m для архивации всех файлов и базы данных wordpress\n\&lt;br /&gt;
        \e[0;34mextensions\\e[0m или \e[0;34m -e \\e[0m для обновления плагинов\n\&lt;br /&gt;
        \e[0;34mrestorewordpress &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -w &amp;lt;name&amp;gt;\\e[0m для восстановления wordpress из бекапа\n\&lt;br /&gt;
        \e[0;34mrestoredb &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -d &amp;lt;name&amp;gt;\\e[0m для восстановления базы данных wordpress из бекапа&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
&lt;br /&gt;
elif [ `id -u` != 0 ]&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;Вы не root&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
case $arg in&lt;br /&gt;
        backup | -b)&lt;br /&gt;
                echo &amp;quot;start backup datebase. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 mysqldump -h $MYSQLHOST -u $MYSQLUSER -p $WORDPRESSDB -c |\&lt;br /&gt;
                nice -n 19 /bin/gzip -9 &amp;gt; $BACKUPPATH/wordpress-db-$(date '+%Y%m%d').sql.gz&lt;br /&gt;
                echo &amp;quot;backup of database completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                echo &amp;quot;start backup wordpress folder. Wait...&amp;quot;&lt;br /&gt;
                # Для исключения файла или каталога используйте --exclude=&amp;quot;./youdir&amp;quot;&lt;br /&gt;
                # точка обязательна и не ставить слэш в конце имени директории &lt;br /&gt;
                cd $path; nice -n 19 tar -cvzf $BACKUPPATH/wordpress-$(date '+%Y%m%d').tar.gz . --exclude=&amp;quot;./wiki&amp;quot; --exclude=&amp;quot;./upload&amp;quot;&lt;br /&gt;
                echo &amp;quot;backup wordpress completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restorewordpress | -w)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите назазвание бекапа с wordpress&amp;quot;; exit 1&lt;br /&gt;
&lt;br /&gt;
                backup_wordpress=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore wordpress files&amp;quot;&lt;br /&gt;
                tar xzvf &amp;quot;$backup_wordpress&amp;quot; -C $path --strip-components=1&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
restoredb | -d)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите название бекапа базы данных wordpress&amp;quot;; exit 1&lt;br /&gt;
&lt;br /&gt;
                wordpress_db=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore database&amp;quot;&lt;br /&gt;
                gunzip -c &amp;quot;$wordpress_db&amp;quot; | mysql -h $MYSQLHOST -u $MYSQLUSER -p $WORDPRESSDB&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        upgrade | -u)&lt;br /&gt;
                wordpress=&amp;quot;$2&amp;quot;&lt;br /&gt;
                arch=`echo &amp;quot;$wordpress&amp;quot; | awk -F. '{ print $NF}'`&lt;br /&gt;
                if [ &amp;quot;$arch&amp;quot; = &amp;quot;zip&amp;quot; -o &amp;quot;$arch&amp;quot; = &amp;quot;gz&amp;quot; ]&lt;br /&gt;
                        then&lt;br /&gt;
                                echo &amp;quot;prepare to upgrade&amp;quot;&lt;br /&gt;
                                [ -d $path/upload/ ] || mkdir $path/upload/&lt;br /&gt;
                                cp -v -R $path/wp-content/ $path/wp-config.php $path/.htaccess $path/upload/&lt;br /&gt;
                                rm $path/wp*.php $path/license.txt $path/readme.html $path/xmlrpc.php&lt;br /&gt;
                                rm -rf $path/wp-admin/ $path/wp-includes/&lt;br /&gt;
                                cp $path/upload/wp-config.php $path&lt;br /&gt;
&lt;br /&gt;
                                echo &amp;quot;update wordpress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                                if [ $arch = zip ]&lt;br /&gt;
                                        then&lt;br /&gt;
                                                        unzip -o $wordpress -d $path&lt;br /&gt;
                                elif [ $arch = gz ]&lt;br /&gt;
                                        then&lt;br /&gt;
                                                        tar xzf $wordpress -C $path --strip-components=1&lt;br /&gt;
                                        else&lt;br /&gt;
                                                exit 1&lt;br /&gt;
                                fi&lt;br /&gt;
&lt;br /&gt;
                                cp -rf $path/upload/* $path&lt;br /&gt;
                                rm -rf $path/upload&lt;br /&gt;
&lt;br /&gt;
                                echo &amp;quot;=====================================================================================&amp;quot;&lt;br /&gt;
                                echo &amp;quot;==== For update database you need open &amp;lt;yousite&amp;gt;/wp-admin/upgrade.php in browser ====&amp;quot;&lt;br /&gt;
                                echo &amp;quot;=====================================================================================&amp;quot;&lt;br /&gt;
                        else&lt;br /&gt;
                                echo &amp;quot;Неизвестный тип архива, автоопределение работает только для zip и tar.gz&amp;quot;&lt;br /&gt;
                                exit 1&lt;br /&gt;
&lt;br /&gt;
                fi&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;is all!!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_mediawiki&amp;diff=416</id>
		<title>Резервное копирование и восстановление mediawiki</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_mediawiki&amp;diff=416"/>
		<updated>2012-03-16T20:53:01Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «__NOTOC__ Представлен скрипт для создания резервных копий, восстановления, обновления mediawiki ...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Представлен скрипт для создания резервных копий, восстановления, обновления mediawiki и расширений.&lt;br /&gt;
Особенность обновления расширений заключается в том, что контроль версий поддерживается через svn.&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
ColorOff='\\e[0m'       # Text Reset&lt;br /&gt;
BWhite='\\e[1;37m'      # Bold White&lt;br /&gt;
Blue='\e[0;34m'&lt;br /&gt;
&lt;br /&gt;
#Обязательно вставьте свои значения&lt;br /&gt;
WIKIPATH=&amp;quot;/www/wiki&amp;quot; #директория установки wiki&lt;br /&gt;
BACKUPPATH=&amp;quot;/root/backup&amp;quot; #Куда бекапим&lt;br /&gt;
MYSQLUSER=&amp;quot;user&amp;quot; # mysql пользователь&lt;br /&gt;
MYSQLHOST=&amp;quot;localhost&amp;quot; # Хост mysql&lt;br /&gt;
WIKIDB=&amp;quot;wikidb&amp;quot; #mysql база wiki&lt;br /&gt;
&lt;br /&gt;
mediawiki=$1&lt;br /&gt;
if [ -z $mediawiki ]&lt;br /&gt;
        then&lt;br /&gt;
                echo -e &amp;quot;               Введите название архива с wiki для обновления\n\&lt;br /&gt;
                \e[0;34mbackup\\e[0m или \e[0;34m -b \\e[0m для архивации всех файлов и базы данных wiki\n\&lt;br /&gt;
                \e[0;34mextensions\\e[0m или \e[0;34m -e \\e[0m для обновления плагинов\n\&lt;br /&gt;
                \e[0;34mrestorewiki &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -w &amp;lt;name&amp;gt;\\e[0m для восстановления wiki из бекапа\n\&lt;br /&gt;
                \e[0;34mrestoredb &amp;lt;name&amp;gt;\\e[0m или \e[0;34m -d &amp;lt;name&amp;gt;\\e[0m для восстановления базы данных wiki из бекапа&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
&lt;br /&gt;
elif [ `id -u` != 0 ]&lt;br /&gt;
        then&lt;br /&gt;
                echo Вы не root&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
dir=`pwd`&lt;br /&gt;
&lt;br /&gt;
case $mediawiki in&lt;br /&gt;
&lt;br /&gt;
        backup | -b)&lt;br /&gt;
                echo &amp;quot;start backup datebase. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 mysqldump -h $MYSQLHOST -u $MYSQLUSER -p $WIKIDB -c |\&lt;br /&gt;
                nice -n 19 /bin/gzip -9 &amp;gt; $BACKUPPATH/wiki-wikidb-$(date '+%Y%m%d').sql.gz&lt;br /&gt;
                echo &amp;quot;backup of database completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                echo &amp;quot;start backup wiki folder. Wait...&amp;quot;&lt;br /&gt;
                nice -n 19 tar -czf $BACKUPPATH/aidalinux-wiki-$(date '+%Y%m%d').tar.gz $WIKIPATH&lt;br /&gt;
                echo &amp;quot;backup wiki completed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        extensions | -e)&lt;br /&gt;
                for extensions in `ls $WIKIPATH/extensions`&lt;br /&gt;
                        do&lt;br /&gt;
                                cd $WIKIPATH/extensions/&amp;quot;$extensions&amp;quot;&lt;br /&gt;
                                svn update&lt;br /&gt;
                                cd ..&lt;br /&gt;
                done&lt;br /&gt;
&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restorewiki | -w)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите назазвание бекапа с wiki&amp;quot;; exit 1&lt;br /&gt;
&lt;br /&gt;
                backup_wiki=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore wiki files&amp;quot;&lt;br /&gt;
                tar xzvf &amp;quot;$backup_wiki&amp;quot; -C $WIKIPATH --strip-components=1&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
        restoredb | -d)&lt;br /&gt;
&lt;br /&gt;
                [[ -z &amp;quot;$2&amp;quot; ]] &amp;amp;&amp;amp; echo &amp;quot;Введите название бекапа базы данных wiki&amp;quot;; exit 1&lt;br /&gt;
&lt;br /&gt;
                wiki_wikidb=&amp;quot;$2&amp;quot;&lt;br /&gt;
                echo &amp;quot;restore datebase&amp;quot;&lt;br /&gt;
                gunzip -c &amp;quot;$wiki_wikidb&amp;quot; | mysql -h $MYSQLHOST -u $MYSQLUSER -p $WIKIDB&lt;br /&gt;
                echo &amp;quot;done&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
#Определение расширения архива с mediawiki&lt;br /&gt;
arch=`echo $mediawiki | awk -F. '{ print $NF}'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$arch&amp;quot; = gz ]&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;start update mediawiki&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;Вы ошиблись в вводе аргумента&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;$dir&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#update mediawiki&lt;br /&gt;
tar xzf $mediawiki -C $WIKIPATH --strip-components=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;update database&amp;quot;&lt;br /&gt;
php $WIKIPATH/maintenance/update.php&lt;br /&gt;
echo &amp;quot;is all!!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<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=415</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=415"/>
		<updated>2012-03-16T19:04:58Z</updated>

		<summary type="html">&lt;p&gt;Langator: &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;
{{Warning|в версии portsentry 1.2 было найдено несколько багов, и поэтому, я рекомендую использовать версию 1.2-r1. Хотя и там ситуация не изменилась. Проблема заключалась в некорректной остановке демона. Ниже будет приведено решение данной проблемы.}}&lt;br /&gt;
&lt;br /&gt;
Для этого необходимо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;echo net-analyzer/portsentry ~x86 &amp;gt;&amp;gt; /etc/portage/package.keywords&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устанавливаем программу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;emerge -av net-analyzer/portsentry&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Настройка =&lt;br /&gt;
&lt;br /&gt;
{{Warning|Если у вас проблемы с остановкой или перезапуском демона, то необходимо поправить файл {{Path|/etc/init.d/portsentry}}, а точнее разделы ''stop'' и ''restart''.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;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;
}&amp;lt;/source&amp;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;
  {{Path|/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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cp /etc/portsentry/portsentry.conf.sample /etc/portsentry/portsentry.conf&lt;br /&gt;
cp /etc/portsentry/portsentry.ignore.sample /etc/portsentry/portsentry.ignore&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Думаю, достаточно привести пример конфигурационного файла, а разобраться совсем просто.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;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&amp;lt;/source&amp;gt;&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;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;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@mail.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;
 ############################&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|Для работы скрипта необходимы: ''mail-client/mailx'' и ''net-dns/bind-tools''}}&lt;br /&gt;
&lt;br /&gt;
В случае фаервола естественно необходимо открыть прослушиваемые порты, для более успешной рыбалки.&lt;br /&gt;
&lt;br /&gt;
= См. также =&lt;br /&gt;
[http://odminblog.ru/portsentry-install/ odminblog.ru]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.lissyara.su/articles/freebsd/security/portsentry/ lissyara.su]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=MediaWiki&amp;diff=414</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=MediaWiki&amp;diff=414"/>
		<updated>2012-03-16T13:20:43Z</updated>

		<summary type="html">&lt;p&gt;Langator: /* Добавляем слева ссылки на другие вики */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка MediaWiki ==&lt;br /&gt;
&lt;br /&gt;
Установка крайне проста: скачиваем последнюю версию с официального сайта http://www.mediawiki.org и распаковываем в нужный каталог сайта (например &amp;lt;tt&amp;gt;/var/www/site/w/&amp;lt;/tt&amp;gt;); далее настраиваем через веб-интерфейс. Точка входа &amp;lt;nowiki&amp;gt;http://domain.ru/w/config/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробно об установке можно узнать из [http://www.mediawiki.org/wiki/Manual:Installation_guide/ru официальной инструкции], и ещё одна [http://www.mediawiki.org/wiki/Manual:Configuring_MediaWiki/ru здесь].&lt;br /&gt;
&lt;br /&gt;
Вики движок лучше не размещать в корне сайта. Почему, кратко объяснено в [http://www.mediawiki.org/wiki/Manual:Wiki_in_site_root_directory спец. статье].&lt;br /&gt;
&lt;br /&gt;
После установки хорошо бы ознакомиться с [http://www.mediawiki.org/wiki/Manual:System_administration/ru задачами администратора MediaWiki], где сказано что ещё можно доделать.&lt;br /&gt;
&lt;br /&gt;
== Как настроить (кратко) ==&lt;br /&gt;
&lt;br /&gt;
Хорошие краткие инструкции (ЧаВО или FAQ) есть на официальном сайте MediaWiki как на [http://www.mediawiki.org/wiki/Manual:FAQ/ru русском языке], так и на [http://www.mediawiki.org/wiki/Manual:FAQ английском].&lt;br /&gt;
&lt;br /&gt;
=== Запрещаем редактирование не авторизованным пользователям: ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$wgGroupPermissions['*']['createaccount'] = true;&lt;br /&gt;
$wgGroupPermissions['*']['read'] = true;&lt;br /&gt;
$wgGroupPermissions['*']['edit'] = false;&lt;br /&gt;
$wgGroupPermissions['*']['createpage'] = false;&lt;br /&gt;
$wgGroupPermissions['*']['createtalk'] = false;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Делаем ссылки короткими ===&lt;br /&gt;
&lt;br /&gt;
По умолчанию ссылки выглядят так: &amp;lt;nowiki&amp;gt;http://domain.ru/wiki/index.php?title=article&amp;lt;/nowiki&amp;gt;. Чтобы сделать их такими же короткими и наглядными, как в Википедии, есть [http://www.mediawiki.org/wiki/Manual:Short_URL много способов]. Один из них - это добавить в '''LocalSettings.php''':&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$wgScriptPath   = &amp;quot;/w&amp;quot;;  &lt;br /&gt;
$wgArticlePath  = &amp;quot;/wiki/$1&amp;quot;;&lt;br /&gt;
$wgUsePathInfo  = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где '''$wgScriptPath''' - каталог установки вики-сайта, а '''$wgArticlePath''' - виртуальный каталог,&amp;amp;nbsp;который нужно будет указать в URL при обращении к статье, имя не должно совпадать с реальным каталогом.&lt;br /&gt;
&lt;br /&gt;
Затем, в корневом каталоге сайта (т.е. рядом с каталогом &amp;quot;w&amp;quot;) нужно создать файл '''.htaccess''':&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;RewriteEngine On&lt;br /&gt;
RewriteRule ^wiki/(.*)$ /w/index.php?title=$1 [PT,L,QSA]&lt;br /&gt;
RewriteRule ^wiki/*$ /w/index.php [L,QSA]&lt;br /&gt;
RewriteRule ^/*$ /w/index.php [L,QSA]&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Для лучшего понимания этого кода можно подробней ознакомиться с [http://www.shtogrin.com/library/web/mod_rewrite/doc/RewriteRule/ синтаксисом дерективы RewriteRule].&lt;br /&gt;
&lt;br /&gt;
Если на сервере установлено несклько виртуальных хостов, то нужно ещё добавить&amp;amp;nbsp; настройку виртуального хоста в секцию '''&amp;amp;lt;VirtualHost&amp;amp;gt;''': &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;RewriteEngine On&lt;br /&gt;
RewriteOptions Inherit&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
и подключить модуль rewrite, после чего перезагрузить сервер. В Debian это делается следующим образом: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled&lt;br /&gt;
/etc/init.d/apache2 restart&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Добавляем логотип ===&lt;br /&gt;
&lt;br /&gt;
Картинку не более 135х135 пикселей с прозрачным фоном загружаем в папку images и добавляем в '''LocalSettings.php''':&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$wgLogo = “{$wgScriptPath}/images/logofinal.png”;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Меняем favicon''' ===&lt;br /&gt;
&lt;br /&gt;
Это изображение появляется возле адреса страницы в адресной строке сайта, а также в закладках. Его размер должен быть либо 16x16 либо 32x32 пикселей. Не все браузеры поддерживают формат favicon отличный от ico, подробней читайте на http://en.wikipedia.org/wiki/Favicon#Browser_support&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить favicon.ico можно &lt;br /&gt;
* положить как обычно в корневой каталог сайта, т.е. на одном уровне с каталогом &amp;quot;w/&amp;quot; или &lt;br /&gt;
* скопировать изображение в папку images и добавить в '''LocalSettings.php''':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$wgFavicon = &amp;quot;$wgScriptPath/images/favicon.ico&amp;quot;;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Настраиваем навигационную панель (слева) ===&lt;br /&gt;
&lt;br /&gt;
Создаём страницу '''MediaWiki:Sidebar''', где описываем содержание навигационной панели. &lt;br /&gt;
&lt;br /&gt;
'''Синтаксис:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
* &amp;lt;название блока 1&amp;gt;&lt;br /&gt;
** &amp;lt;ссылка на статью 1&amp;gt;|&amp;lt;отображаемый текст 1&amp;gt;&lt;br /&gt;
** &amp;lt;ссылка на статью 2&amp;gt;|&amp;lt;отображаемый текст 2&amp;gt;&lt;br /&gt;
* &amp;lt;название блока 2&amp;gt;&lt;br /&gt;
** &amp;lt;ссылка на статью 3&amp;gt;|&amp;lt;отображаемый текст 3&amp;gt;&lt;br /&gt;
** &amp;lt;ссылка на статью 4&amp;gt;|&amp;lt;отображаемый текст 4&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Пример:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|Начальная&lt;br /&gt;
** Служебная:AllPages|Все статьи&lt;br /&gt;
** Служебная:Categories|Все категории&lt;br /&gt;
** portal-url|Сообщество&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Популярное&lt;br /&gt;
** Служебная:PopularPages|Статьи&lt;br /&gt;
** Служебная:MostLinkedCategories|Категории&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Добавляем слева ссылки на другие вики===&lt;br /&gt;
&lt;br /&gt;
В случае многоязыковых проектов достаточно добавить в статью &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[[lang:Имя статьи]]&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где '''lang''' - префикс языка. См. файл '''languages/Names.php'''&lt;br /&gt;
&lt;br /&gt;
В случае, если нужно добавить ссылку на любой другой сайт, нужно создать интервики ссылку (см. ниже) и с таким же именем запись в languages/Names.php&lt;br /&gt;
&lt;br /&gt;
Например, в таблице ссылок интервики создали ссылку '''my-wiki''', тогда в Names.php добавляем строчку (в рамках объявления массива):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;'my-wiki' =&amp;gt; 'My Wiki',  # Link to my wiki&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь, в статью можно поместить строку:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[[my-wiki:Имя статьи]]&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробней читать на [http://www.mediawiki.org/wiki/Manual:Interwiki/ru офф. сайте].&lt;br /&gt;
&lt;br /&gt;
=== Меняем права пользователей ===&lt;br /&gt;
&lt;br /&gt;
Права пользователя можно поменять на '''Special:Userrights'''. Подробно описано в [http://www.mediawiki.org/wiki/Manual:User_rights_management официальном руководстве].&lt;br /&gt;
&lt;br /&gt;
=== Меняем пароль пользователя ===&lt;br /&gt;
&lt;br /&gt;
Пароль любого пользователя можно поменять SQL командой:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;mysql&amp;quot;&amp;gt;UPDATE user SET user_password = MD5(CONCAT(user_id, '-', MD5('Новый_Пароль'))) WHERE user_name = 'Имя_Пользователя';&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Разрешаем включать страницы из других вики===&lt;br /&gt;
&lt;br /&gt;
Чтобы включить страницу или шаблон из другой вики, она должна быть описана в таблице интервики ссылок и в LocalSettings.php нужно добавить параметр [http://www.mediawiki.org/wiki/Manual:$wgEnableScaryTranscluding $wgEnableScaryTranscluding]:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$wgEnableScaryTranscluding = true;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:'''!''' В версии '''MediaWiki 16.2''' при попытке подключить внешний шаблон &amp;lt;nowiki&amp;gt;{{WikiName:Template:TemplateName}}&amp;lt;/nowiki&amp;gt; PHP выдаёт ошибку:&lt;br /&gt;
&lt;br /&gt;
 PHP Fatal error:  Cannot redeclare class HttpRequest in /local_path_to_site/w/includes/HttpFunctions.php on line 122&lt;br /&gt;
&lt;br /&gt;
=== Разрешаем загружать файлы ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
# Позволяем загружать файлы&lt;br /&gt;
$wgEnableUploads = true;&lt;br /&gt;
&lt;br /&gt;
# Определяем макс. размер файла&lt;br /&gt;
$wgMaxUploadSize = 5000000; &lt;br /&gt;
&lt;br /&gt;
# Отключаем проверку расширения файла&lt;br /&gt;
$wgCheckFileExtensions = false;&lt;br /&gt;
$wgStrictFileExtensions = false;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последние два параметра разрешают загружать все файлы (что не безопасно). Если их не указывать, то по умолчанию будут разрешены только изображения.&lt;br /&gt;
&lt;br /&gt;
Чтобы самостоятельно задать тип файлов указываем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$wgFileExtensions = array('png', 'gif', 'jpg', 'jpeg', 'svg', 'pdf', 'doc', 'docx', 'xls', 'xlsx','ods','odg','odt');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы файлы могли быть загруженными, должен быть настроен и сам PHP. &lt;br /&gt;
&lt;br /&gt;
Подробней см. [http://www.mediawiki.org/wiki/Manual:Configuring_file_uploads/ru официальную документацию].&lt;br /&gt;
&lt;br /&gt;
=== Добавляем классы таблиц ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;frame collapsible collapsed&amp;quot; align=right&lt;br /&gt;
! код для shared.css&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=css&amp;gt;&lt;br /&gt;
/* -pm- as wikitable but without a table */&lt;br /&gt;
/*background and darker header background*/&lt;br /&gt;
table.standard {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
.standard th, .standard td {&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.standard th {&lt;br /&gt;
    background: #d2d2d2;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.standard caption {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -pm- as standart but with frame only */&lt;br /&gt;
table.frame {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
.frame th .frame td {&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.frame th {&lt;br /&gt;
    background: #d2d2d2;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.frame caption {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -pm- as standart but wide (100%) */&lt;br /&gt;
table.wide {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.wide th, .wide td {&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.wide th {&lt;br /&gt;
    background: #d2d2d2;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.wide caption {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -pm- as wide but with frame only*/&lt;br /&gt;
table.wide-frame {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.wide-frame th .wide-frame td {&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.wide-frame th {&lt;br /&gt;
    background: #d2d2d2;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.wide-frame caption {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
По умолчанию в движке MediaWiki определён только один класс таблиц wikitable. &lt;br /&gt;
* Чтобы определить свои классы нужно отредактировать файл &amp;lt;tt&amp;gt;skins/common/shared.css&amp;lt;/tt&amp;gt;. Вставьте в любое место приведённый справа код.&lt;br /&gt;
Пример классов таблиц:&lt;br /&gt;
{| class=frame &lt;br /&gt;
|- &lt;br /&gt;
! вид&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ wikitable&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*1||Ячейка 2*1&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*2||Ячейка 2*2&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*3||Ячейка 2*3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;standard sortable&amp;quot;&lt;br /&gt;
|+ standard&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
| 1 Ячейка || 2 Ячейка&lt;br /&gt;
|-&lt;br /&gt;
| 2 Ячейка || 1 Ячейка &lt;br /&gt;
|-&lt;br /&gt;
| 3 Ячейка || 3 Ячейка&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;frame sortable&amp;quot;&lt;br /&gt;
|+ frame&lt;br /&gt;
|-&lt;br /&gt;
!Латиница||Кириллица||class=&amp;quot;unsortable&amp;quot;|Цифры&lt;br /&gt;
|-&lt;br /&gt;
| D || Г || 3 &lt;br /&gt;
|-&lt;br /&gt;
| E || Щ || 2&lt;br /&gt;
|-&lt;br /&gt;
| F || Б || 11&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! код&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*1||Ячейка 2*1&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*2||Ячейка 2*2&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*3||Ячейка 2*3&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
| 1 Ячейка || 2 Ячейка&lt;br /&gt;
|-&lt;br /&gt;
| 2 Ячейка || 1 Ячейка &lt;br /&gt;
|-&lt;br /&gt;
| 3 Ячейка || 3 Ячейка&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;frame sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Латиница||Кириллица||class=&amp;quot;unsortable&amp;quot;|Цифры&lt;br /&gt;
|-&lt;br /&gt;
| D || Г || 3 &lt;br /&gt;
|-&lt;br /&gt;
| E || Щ || 2&lt;br /&gt;
|-&lt;br /&gt;
| F || Б || 11&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=frame width=600&lt;br /&gt;
|-&lt;br /&gt;
! width=50|широкие&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wide&amp;quot; &lt;br /&gt;
|+ wide&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*1||Ячейка 2*1&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*2||Ячейка 2*2&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*3||Ячейка 2*3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wide-frame&amp;quot; &lt;br /&gt;
|+ wide-frame&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*1||Ячейка 2*1&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*2||Ячейка 2*2&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*3||Ячейка 2*3&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Можно добавить возможность [http://www.mediawiki.org/wiki/Manual:Collapsible_tables сворачивать таблицы]. В официальной инструкции рекомендуется создать в вики страницы '''Common.js''' и '''Common.css''', но в случае вики семьи такое решение не подойдёт, так действует только на одну вики, поэтому я добавил код в конец следующих файлов в каталоге &amp;lt;tt&amp;gt;skins/common/&amp;lt;/tt&amp;gt;:&lt;br /&gt;
** код для Common.js добавил в &amp;lt;tt&amp;gt;ajax.js&amp;lt;/tt&amp;gt;&lt;br /&gt;
** код для Common.css добавил в &amp;lt;tt&amp;gt;shared.css&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Скопируйте и вставте следующий код в [[MediaWiki:Common.js]] и [[MediaWiki:Common.css]]:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;frame collapsible collapsed&amp;quot;&lt;br /&gt;
! код для Common.js&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=javascript&amp;gt;&lt;br /&gt;
/** Collapsible tables *********************************************************&lt;br /&gt;
 *&lt;br /&gt;
 *  Description: Allows tables to be collapsed, showing only the header. See&lt;br /&gt;
 *               http://www.mediawiki.org/wiki/Manual:Collapsible_tables.&lt;br /&gt;
 *  Maintainers: [[en:User:R. Koot]]&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
var autoCollapse = 2;&lt;br /&gt;
var collapseCaption = 'hide';&lt;br /&gt;
var expandCaption = 'show';&lt;br /&gt;
&lt;br /&gt;
function collapseTable( tableIndex ) {&lt;br /&gt;
    var Button = document.getElementById( 'collapseButton' + tableIndex );&lt;br /&gt;
    var Table = document.getElementById( 'collapsibleTable' + tableIndex );&lt;br /&gt;
&lt;br /&gt;
    if ( !Table || !Button ) {&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var Rows = Table.rows;&lt;br /&gt;
&lt;br /&gt;
    if ( Button.firstChild.data == collapseCaption ) {&lt;br /&gt;
        for ( var i = 1; i &amp;lt; Rows.length; i++ ) {&lt;br /&gt;
            Rows[i].style.display = 'none';&lt;br /&gt;
        }&lt;br /&gt;
        Button.firstChild.data = expandCaption;&lt;br /&gt;
    } else {&lt;br /&gt;
        for ( var i = 1; i &amp;lt; Rows.length; i++ ) {&lt;br /&gt;
            Rows[i].style.display = Rows[0].style.display;&lt;br /&gt;
        }&lt;br /&gt;
        Button.firstChild.data = collapseCaption;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function createCollapseButtons() {&lt;br /&gt;
    var tableIndex = 0;&lt;br /&gt;
    var NavigationBoxes = new Object();&lt;br /&gt;
    var Tables = document.getElementsByTagName( 'table' );&lt;br /&gt;
&lt;br /&gt;
    for ( var i = 0; i &amp;lt; Tables.length; i++ ) {&lt;br /&gt;
        if ( hasClass( Tables[i], 'collapsible' ) ) {&lt;br /&gt;
&lt;br /&gt;
            /* only add button and increment count if there is a header row to work with */&lt;br /&gt;
            var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];&lt;br /&gt;
            if ( !HeaderRow ) {&lt;br /&gt;
                continue;&lt;br /&gt;
            }&lt;br /&gt;
            var Header = HeaderRow.getElementsByTagName( 'th' )[0];&lt;br /&gt;
            if ( !Header ) {&lt;br /&gt;
                continue;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            NavigationBoxes[tableIndex] = Tables[i];&lt;br /&gt;
            Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );&lt;br /&gt;
&lt;br /&gt;
            var Button = document.createElement( 'span' );&lt;br /&gt;
            var ButtonLink = document.createElement( 'a' );&lt;br /&gt;
            var ButtonText = document.createTextNode( collapseCaption );&lt;br /&gt;
&lt;br /&gt;
            Button.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]]&lt;br /&gt;
&lt;br /&gt;
            ButtonLink.style.color = Header.style.color;&lt;br /&gt;
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );&lt;br /&gt;
            ButtonLink.setAttribute( 'href', &amp;quot;javascript:collapseTable(&amp;quot; + tableIndex + &amp;quot;);&amp;quot; );&lt;br /&gt;
            ButtonLink.appendChild( ButtonText );&lt;br /&gt;
&lt;br /&gt;
            Button.appendChild( document.createTextNode( '[' ) );&lt;br /&gt;
            Button.appendChild( ButtonLink );&lt;br /&gt;
            Button.appendChild( document.createTextNode( ']' ) );&lt;br /&gt;
&lt;br /&gt;
            Header.insertBefore( Button, Header.childNodes[0] );&lt;br /&gt;
            tableIndex++;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for ( var i = 0;  i &amp;lt; tableIndex; i++ ) {&lt;br /&gt;
        if ( hasClass( NavigationBoxes[i], 'collapsed' ) || ( tableIndex &amp;gt;= autoCollapse &amp;amp;&amp;amp; hasClass( NavigationBoxes[i], 'autocollapse' ) ) ) {&lt;br /&gt;
            collapseTable( i );&lt;br /&gt;
        } else if ( hasClass( NavigationBoxes[i], 'innercollapse' ) ) {&lt;br /&gt;
            var element = NavigationBoxes[i];&lt;br /&gt;
            while ( element = element.parentNode ) {&lt;br /&gt;
                if ( hasClass( element, 'outercollapse' ) ) {&lt;br /&gt;
                    collapseTable( i );&lt;br /&gt;
                    break;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
addOnloadHook( createCollapseButtons );&lt;br /&gt;
&lt;br /&gt;
/** Test if an element has a certain class **************************************&lt;br /&gt;
 *&lt;br /&gt;
 * Description: Uses regular expressions and caching for better performance.&lt;br /&gt;
 * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
var hasClass = ( function() {&lt;br /&gt;
    var reCache = {};&lt;br /&gt;
    return function( element, className ) {&lt;br /&gt;
        return ( reCache[className] ? reCache[className] : ( reCache[className] = new RegExp( &amp;quot;(?:\\s|^)&amp;quot; + className + &amp;quot;(?:\\s|$)&amp;quot; ) ) ).test( element.className );&lt;br /&gt;
    };&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{|class=&amp;quot;frame collapsible collapsed&amp;quot; &lt;br /&gt;
! код для Common.css&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=css&amp;gt;&lt;br /&gt;
table.collapsed tr.collapsible {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.collapseButton {        /* 'show'/'hide' buttons created dynamically by the        */&lt;br /&gt;
    float: right;        /* CollapsibleTables JavaScript in [[MediaWiki:Common.js]] */&lt;br /&gt;
    font-weight: normal;    /* are styled here so they can be customised.          */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
    width: auto;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Добавление расширений ==&lt;br /&gt;
&lt;br /&gt;
Список всех уже установленных расширений можно увидеть на странице [[:Special:Version]] а в руссифицированных версиях также [[:Служебная:Version]]&lt;br /&gt;
&lt;br /&gt;
Все расширения (extensions) устанавливаются в MediaWiki одинаково: &lt;br /&gt;
# копируются в свой подкаталог в каталоге extensions. Список расширений можно узнать из [http://www.mediawiki.org/wiki/Extension_Matrix официального списка].&lt;br /&gt;
# в '''LocalSettings.php''' добавляется строка:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
require_once( &amp;quot;$IP/extensions/Каталог_Расширения/Главный_Файл_Расширения.php&amp;quot; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Некоторые полезные расширения'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:FCKeditor_%28Official%29 FCKeditor] - визуальный (WYSIWYG) редактор. У этого расширения можно обновить сам [http://ckeditor.com/download редактор]. Подключаем:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
require_once( &amp;quot;$IP/extensions/FCKeditor/FCKeditor.php&amp;quot; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Cite/Cite.php Cite.php] - добавляет поддержку тэгов '''&amp;lt;nowiki&amp;gt;&amp;lt;ref&amp;gt;&amp;lt;/nowiki&amp;gt;''' и '''&amp;lt;nowiki&amp;gt;&amp;lt;references /&amp;gt;&amp;lt;/nowiki&amp;gt;''', что позволяет использовать в тексте статьи сноски. Подключаем:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
require_once( &amp;quot;$IP/extensions/Cite/Cite.php&amp;quot; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ParserFunctions/ru ParserFunctions] - позволяет использовать тэги: '''&amp;lt;nowiki&amp;gt;#expr: #if: #ifeq: #ifexist: #ifexpr: #switch: #time: #rel2abs: #titleparts: #iferror:&amp;lt;/nowiki&amp;gt;'''. На Википедии можно почитать как использовать [http://ru.wikipedia.org/wiki/Википедия:Функции_парсера функции парсера]. Устанавливать лучше из репозитория Subversion (скачать [http://subversion.apache.org/packages.html#windows клиент]):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd extensions/&lt;br /&gt;
svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ParserFunctions&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi SyntaxHighlight GeSHi] - подсветка синтаксиса программного кода, позволяет использовать тэги '''&amp;lt;nowiki&amp;gt;&amp;lt;syntaxhighlight&amp;gt; и &amp;lt;source&amp;gt;&amp;lt;/nowiki&amp;gt;'''. Это расширенная версия [http://www.mediawiki.org/wiki/Extension:Geshi GeSHi]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd extensions/&lt;br /&gt;
svn co  svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подключаем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
require_once(&amp;quot;$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Параметры:'''&lt;br /&gt;
&lt;br /&gt;
** '''lang'''=&amp;quot;??&amp;quot;: Определяет язык программировария, сказывается на самой подсветке&lt;br /&gt;
** '''line'''=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot;: Как нумеровать линии (по умолчанию никак)&lt;br /&gt;
** '''line start'''=&amp;quot;??&amp;quot;: Какой номер у первой строки, используется вместе с line&lt;br /&gt;
** '''highlight'''=&amp;quot;??&amp;quot;: Какую линию подсветить, не зависит от line start&lt;br /&gt;
** '''enclose'''=&amp;quot;??&amp;quot;: В какой контейнер поместить блок. Принимает значения &amp;quot;pre&amp;quot; (по умолчанию), &amp;quot;div&amp;quot;, &amp;quot;none&amp;quot;. &lt;br /&gt;
** '''strict''': Присутствие этого параметра указывает, что нужно использовать режим strict.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:CategoryTree CategoryTree] - добавляет более удобную навигацию по категориям. Позволяет использовать тэг &amp;lt;nowiki&amp;gt;&amp;lt;categorytree&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Копируем в каталог расширений и подключаем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
require_once(&amp;quot;$IP/extensions/CategoryTree/CategoryTree.php&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Collection Collection] - даёт возможность создавать книги в формате PDF из статей сайта.&lt;br /&gt;
&lt;br /&gt;
'''! Требует чтобы PHP поддерживал cURL !''' Возможно потребуется доуставить.&lt;br /&gt;
&lt;br /&gt;
Копируем в каталог расширений и подключаем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
require_once(&amp;quot;$IP/extensions/Collection/Collection.php&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы дать пользователям возможность сохранять и делиться своими книгами с другими, добавьте в Localsettings.php: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
$wgGroupPermissions['user']['collectionsaveasuserpage'] = true;&lt;br /&gt;
$wgGroupPermissions['user']['collectionsaveascommunitypage'] = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
С настройками по умолчанию книги будут генерироваться на сервере разработчика этого расширения.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:CharInsert CharInsert] - быстрое добавление любых символов или шаблонных тегов. Ниже окна редактирования размещается дополнительная панель инструментов.&lt;br /&gt;
&lt;br /&gt;
== Резервное копирование  ==&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать, как скачать дампы базы данных со статьями Википедии, см. [http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Linux/ru статью Википедии]&lt;br /&gt;
&lt;br /&gt;
Для создания собственного дампа локального сайта, использующего MediaWiki, есть [http://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki/ru подробная инструкция]. &lt;br /&gt;
&lt;br /&gt;
Если кратко, то полная резервная копия - это дамп из СУБД (у меня MySQL) в виде SQL выражений, а частичная в виде xml файла. Особенности последней в том, что она не зависит от структуры базы данных и может быть перенесена, например, на нувую версию MediaWiki с изменнённой структурой БД, но в xml не выгружаются информация о логинаx пользователей, журналы и метаданные изображений.&lt;br /&gt;
&lt;br /&gt;
*Для '''SQL''' дампа выполняем:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;mysql&amp;quot;&amp;gt;&lt;br /&gt;
mysqldump -h $SERVER -u $USER -p$PASSWORD --default-character-set=$CHARSET $DATABASE -c \&lt;br /&gt;
| /bin/gzip -9 &amp;gt; ~/backup/wiki-$(date '+%a').sql.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:параметры '''$USER''', '''$PASSWORD''' и '''$DATABASE''' берём из LocalSettings.php&lt;br /&gt;
:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cat ./LocalSettings.php  | grep wgDB&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:параметр '''--default-character-set=$CHARSET''' нужен, если возникли проблемы с кодировкой (подробней см. статью выше)&lt;br /&gt;
&lt;br /&gt;
:параметр '''-h $SERVER''' нужен если подключаемся не через сокет, иначе получим ошибку:&lt;br /&gt;
:&amp;lt;pre&amp;gt;mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для '''XML''' дампа используем скрипт [http://www.mediawiki.org/wiki/Manual:DumpBackup.php dumpBackup.php], расположенный в каталоге '''maintenance''':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php maintenance\dumpBackup.php --full &amp;gt; full.xml&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Список параметров dumpBackup.php можно получить, вызвав его без параметров, однако, в исходном коде этого скрипта есть ещё несколько недокументированных опций.&lt;br /&gt;
&lt;br /&gt;
== Редактировние статей ==&lt;br /&gt;
&lt;br /&gt;
Об этом можно подробно узнать из [[Справка:Содержание|Справки по редактированию]].&lt;br /&gt;
&lt;br /&gt;
== Уменьшение нагрузки ==&lt;br /&gt;
&lt;br /&gt;
Полезно запретить поисковым роботам индексировать все служебные страницы, а ограничить их только статьями. Для этого редактируем файл '''robots.txt''' в корне сайта:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;User-agent: *&lt;br /&gt;
Disallow: /w/&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае [[MediaWiki/Wiki_family_(farm)|вики семьи]] (фермы), в корневой каталог сайта кладём:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; User-agent: *&lt;br /&gt;
 Disallow: /w/&lt;br /&gt;
 Disallow: /ru/w-&lt;br /&gt;
 Disallow: /en/w-&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
а в языковые подкаталоги:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; User-agent: *&lt;br /&gt;
 Disallow: /w/&lt;br /&gt;
 Disallow: /w-&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробнее см. на [http://www.mediawiki.org/wiki/Robots.txt официальном сайте]&lt;br /&gt;
&lt;br /&gt;
==Дополнительные настройки==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Interwiki/ru Интервики] (interwiki) - это ссылки, оформленные как внутренние ссылки с использованием специального префикса, но ведущие на страницы других проектов. Интервики-ссылки позволяют сделать ссылку на страницы других вики-проектов, например Википедии, Викиучебника, Викиновостей и т.д., или, к примеру, на разделы вашего вики-проекта на разных языках.&lt;br /&gt;
** [http://www.mediawiki.org/wiki/Extension:Interwiki расширение Interwiki] позволяет редактировать таблицу интервики ссылок.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Tagline_(Site_Subtitle) Tagline] - можно изменить подпись &amp;quot;'''Материал из НазваниеВики'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
'''Документация:'''&lt;br /&gt;
* http://meta.wikimedia.org/wiki/Помощь:Содержание&lt;br /&gt;
* http://ru.wikibooks.org/wiki/Вики - небольшой Викиучебник&lt;br /&gt;
&lt;br /&gt;
'''Советы по настройке:'''&lt;br /&gt;
* http://ru.wikia.com/wiki/Настройка_вики &lt;br /&gt;
* http://docs.altlinux.org/archive/4.1/school_server/mediawiki/index.html&lt;br /&gt;
* http://homo-creativus.info/tag/mediawiki/&lt;br /&gt;
&lt;br /&gt;
'''Справочники:'''&lt;br /&gt;
* http://www.wikireality.ru/wiki/Настройки_конфигурации_MediaWiki_(по_алфавиту) - описание всех параметров LocalSettings.php на русском языке&lt;br /&gt;
&lt;br /&gt;
'''Скины:'''&lt;br /&gt;
* Инструкции как сделать свой скин &lt;br /&gt;
** на [http://wiki.auditory.ru/Создание_скинов_для_MediaWiki русском языке] &lt;br /&gt;
** на [http://www.siteground.com/tutorials/mediawiki/mediawiki_skins.htm английском]&lt;br /&gt;
** полная [http://www.mediawiki.org/wiki/Skinning официальная]&lt;br /&gt;
&lt;br /&gt;
* Сайты со скинами&lt;br /&gt;
** http://mediawiki2u.com/&lt;br /&gt;
&lt;br /&gt;
'''Утилиты:'''&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Word2MediaWikiPlus - Утилита для конвертации файлов MS Word 2007 в формат текста MediaWiki&lt;br /&gt;
&lt;br /&gt;
'''Описание движка MediaWiki:'''&lt;br /&gt;
* http://www.mediawiki.org/wiki/Category:MediaWiki_database_tables - Таблицы&lt;br /&gt;
[[Category:Руководства]] [[Категория:Net]][[Категория:MediaWiki]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=MediaWiki&amp;diff=413</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=MediaWiki&amp;diff=413"/>
		<updated>2012-03-16T13:15:57Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка MediaWiki ==&lt;br /&gt;
&lt;br /&gt;
Установка крайне проста: скачиваем последнюю версию с официального сайта http://www.mediawiki.org и распаковываем в нужный каталог сайта (например &amp;lt;tt&amp;gt;/var/www/site/w/&amp;lt;/tt&amp;gt;); далее настраиваем через веб-интерфейс. Точка входа &amp;lt;nowiki&amp;gt;http://domain.ru/w/config/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробно об установке можно узнать из [http://www.mediawiki.org/wiki/Manual:Installation_guide/ru официальной инструкции], и ещё одна [http://www.mediawiki.org/wiki/Manual:Configuring_MediaWiki/ru здесь].&lt;br /&gt;
&lt;br /&gt;
Вики движок лучше не размещать в корне сайта. Почему, кратко объяснено в [http://www.mediawiki.org/wiki/Manual:Wiki_in_site_root_directory спец. статье].&lt;br /&gt;
&lt;br /&gt;
После установки хорошо бы ознакомиться с [http://www.mediawiki.org/wiki/Manual:System_administration/ru задачами администратора MediaWiki], где сказано что ещё можно доделать.&lt;br /&gt;
&lt;br /&gt;
== Как настроить (кратко) ==&lt;br /&gt;
&lt;br /&gt;
Хорошие краткие инструкции (ЧаВО или FAQ) есть на официальном сайте MediaWiki как на [http://www.mediawiki.org/wiki/Manual:FAQ/ru русском языке], так и на [http://www.mediawiki.org/wiki/Manual:FAQ английском].&lt;br /&gt;
&lt;br /&gt;
=== Запрещаем редактирование не авторизованным пользователям: ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$wgGroupPermissions['*']['createaccount'] = true;&lt;br /&gt;
$wgGroupPermissions['*']['read'] = true;&lt;br /&gt;
$wgGroupPermissions['*']['edit'] = false;&lt;br /&gt;
$wgGroupPermissions['*']['createpage'] = false;&lt;br /&gt;
$wgGroupPermissions['*']['createtalk'] = false;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Делаем ссылки короткими ===&lt;br /&gt;
&lt;br /&gt;
По умолчанию ссылки выглядят так: &amp;lt;nowiki&amp;gt;http://domain.ru/wiki/index.php?title=article&amp;lt;/nowiki&amp;gt;. Чтобы сделать их такими же короткими и наглядными, как в Википедии, есть [http://www.mediawiki.org/wiki/Manual:Short_URL много способов]. Один из них - это добавить в '''LocalSettings.php''':&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$wgScriptPath   = &amp;quot;/w&amp;quot;;  &lt;br /&gt;
$wgArticlePath  = &amp;quot;/wiki/$1&amp;quot;;&lt;br /&gt;
$wgUsePathInfo  = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где '''$wgScriptPath''' - каталог установки вики-сайта, а '''$wgArticlePath''' - виртуальный каталог,&amp;amp;nbsp;который нужно будет указать в URL при обращении к статье, имя не должно совпадать с реальным каталогом.&lt;br /&gt;
&lt;br /&gt;
Затем, в корневом каталоге сайта (т.е. рядом с каталогом &amp;quot;w&amp;quot;) нужно создать файл '''.htaccess''':&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;RewriteEngine On&lt;br /&gt;
RewriteRule ^wiki/(.*)$ /w/index.php?title=$1 [PT,L,QSA]&lt;br /&gt;
RewriteRule ^wiki/*$ /w/index.php [L,QSA]&lt;br /&gt;
RewriteRule ^/*$ /w/index.php [L,QSA]&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Для лучшего понимания этого кода можно подробней ознакомиться с [http://www.shtogrin.com/library/web/mod_rewrite/doc/RewriteRule/ синтаксисом дерективы RewriteRule].&lt;br /&gt;
&lt;br /&gt;
Если на сервере установлено несклько виртуальных хостов, то нужно ещё добавить&amp;amp;nbsp; настройку виртуального хоста в секцию '''&amp;amp;lt;VirtualHost&amp;amp;gt;''': &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;RewriteEngine On&lt;br /&gt;
RewriteOptions Inherit&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
и подключить модуль rewrite, после чего перезагрузить сервер. В Debian это делается следующим образом: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled&lt;br /&gt;
/etc/init.d/apache2 restart&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Добавляем логотип ===&lt;br /&gt;
&lt;br /&gt;
Картинку не более 135х135 пикселей с прозрачным фоном загружаем в папку images и добавляем в '''LocalSettings.php''':&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$wgLogo = “{$wgScriptPath}/images/logofinal.png”;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Меняем favicon''' ===&lt;br /&gt;
&lt;br /&gt;
Это изображение появляется возле адреса страницы в адресной строке сайта, а также в закладках. Его размер должен быть либо 16x16 либо 32x32 пикселей. Не все браузеры поддерживают формат favicon отличный от ico, подробней читайте на http://en.wikipedia.org/wiki/Favicon#Browser_support&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить favicon.ico можно &lt;br /&gt;
* положить как обычно в корневой каталог сайта, т.е. на одном уровне с каталогом &amp;quot;w/&amp;quot; или &lt;br /&gt;
* скопировать изображение в папку images и добавить в '''LocalSettings.php''':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$wgFavicon = &amp;quot;$wgScriptPath/images/favicon.ico&amp;quot;;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Настраиваем навигационную панель (слева) ===&lt;br /&gt;
&lt;br /&gt;
Создаём страницу '''MediaWiki:Sidebar''', где описываем содержание навигационной панели. &lt;br /&gt;
&lt;br /&gt;
'''Синтаксис:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
* &amp;lt;название блока 1&amp;gt;&lt;br /&gt;
** &amp;lt;ссылка на статью 1&amp;gt;|&amp;lt;отображаемый текст 1&amp;gt;&lt;br /&gt;
** &amp;lt;ссылка на статью 2&amp;gt;|&amp;lt;отображаемый текст 2&amp;gt;&lt;br /&gt;
* &amp;lt;название блока 2&amp;gt;&lt;br /&gt;
** &amp;lt;ссылка на статью 3&amp;gt;|&amp;lt;отображаемый текст 3&amp;gt;&lt;br /&gt;
** &amp;lt;ссылка на статью 4&amp;gt;|&amp;lt;отображаемый текст 4&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Пример:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|Начальная&lt;br /&gt;
** Служебная:AllPages|Все статьи&lt;br /&gt;
** Служебная:Categories|Все категории&lt;br /&gt;
** portal-url|Сообщество&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Популярное&lt;br /&gt;
** Служебная:PopularPages|Статьи&lt;br /&gt;
** Служебная:MostLinkedCategories|Категории&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Добавляем слева ссылки на другие вики===&lt;br /&gt;
&lt;br /&gt;
В случае многоязыковых проектов достаточно добавить в статью &lt;br /&gt;
&amp;lt;pre&amp;gt;[[lang:Имя статьи]]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где '''lang''' - префикс языка. См. файл '''languages/Names.php'''&lt;br /&gt;
&lt;br /&gt;
В случае, если нужно добавить ссылку на любой другой сайт, нужно создать интервики ссылку (см. ниже) и с таким же именем запись в languages/Names.php&lt;br /&gt;
&lt;br /&gt;
Например, в таблице ссылок интервики создали ссылку '''my-wiki''', тогда в Names.php добавляем строчку (в рамках объявления массива):&lt;br /&gt;
 'my-wiki' =&amp;gt; 'My Wiki',  # Link to my wiki&lt;br /&gt;
&lt;br /&gt;
Теперь, в статью можно поместить строку:&lt;br /&gt;
&amp;lt;pre&amp;gt;[[my-wiki:Имя статьи]]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробней читать на [http://www.mediawiki.org/wiki/Manual:Interwiki/ru офф. сайте].&lt;br /&gt;
&lt;br /&gt;
=== Меняем права пользователей ===&lt;br /&gt;
&lt;br /&gt;
Права пользователя можно поменять на '''Special:Userrights'''. Подробно описано в [http://www.mediawiki.org/wiki/Manual:User_rights_management официальном руководстве].&lt;br /&gt;
&lt;br /&gt;
=== Меняем пароль пользователя ===&lt;br /&gt;
&lt;br /&gt;
Пароль любого пользователя можно поменять SQL командой:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;mysql&amp;quot;&amp;gt;UPDATE user SET user_password = MD5(CONCAT(user_id, '-', MD5('Новый_Пароль'))) WHERE user_name = 'Имя_Пользователя';&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Разрешаем включать страницы из других вики===&lt;br /&gt;
&lt;br /&gt;
Чтобы включить страницу или шаблон из другой вики, она должна быть описана в таблице интервики ссылок и в LocalSettings.php нужно добавить параметр [http://www.mediawiki.org/wiki/Manual:$wgEnableScaryTranscluding $wgEnableScaryTranscluding]:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$wgEnableScaryTranscluding = true;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:'''!''' В версии '''MediaWiki 16.2''' при попытке подключить внешний шаблон &amp;lt;nowiki&amp;gt;{{WikiName:Template:TemplateName}}&amp;lt;/nowiki&amp;gt; PHP выдаёт ошибку:&lt;br /&gt;
&lt;br /&gt;
 PHP Fatal error:  Cannot redeclare class HttpRequest in /local_path_to_site/w/includes/HttpFunctions.php on line 122&lt;br /&gt;
&lt;br /&gt;
=== Разрешаем загружать файлы ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
# Позволяем загружать файлы&lt;br /&gt;
$wgEnableUploads = true;&lt;br /&gt;
&lt;br /&gt;
# Определяем макс. размер файла&lt;br /&gt;
$wgMaxUploadSize = 5000000; &lt;br /&gt;
&lt;br /&gt;
# Отключаем проверку расширения файла&lt;br /&gt;
$wgCheckFileExtensions = false;&lt;br /&gt;
$wgStrictFileExtensions = false;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Последние два параметра разрешают загружать все файлы (что не безопасно). Если их не указывать, то по умолчанию будут разрешены только изображения.&lt;br /&gt;
&lt;br /&gt;
Чтобы самостоятельно задать тип файлов указываем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$wgFileExtensions = array('png', 'gif', 'jpg', 'jpeg', 'svg', 'pdf', 'doc', 'docx', 'xls', 'xlsx','ods','odg','odt');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы файлы могли быть загруженными, должен быть настроен и сам PHP. &lt;br /&gt;
&lt;br /&gt;
Подробней см. [http://www.mediawiki.org/wiki/Manual:Configuring_file_uploads/ru официальную документацию].&lt;br /&gt;
&lt;br /&gt;
=== Добавляем классы таблиц ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;frame collapsible collapsed&amp;quot; align=right&lt;br /&gt;
! код для shared.css&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=css&amp;gt;&lt;br /&gt;
/* -pm- as wikitable but without a table */&lt;br /&gt;
/*background and darker header background*/&lt;br /&gt;
table.standard {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
.standard th, .standard td {&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.standard th {&lt;br /&gt;
    background: #d2d2d2;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.standard caption {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -pm- as standart but with frame only */&lt;br /&gt;
table.frame {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
.frame th .frame td {&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.frame th {&lt;br /&gt;
    background: #d2d2d2;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.frame caption {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -pm- as standart but wide (100%) */&lt;br /&gt;
table.wide {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.wide th, .wide td {&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.wide th {&lt;br /&gt;
    background: #d2d2d2;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.wide caption {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -pm- as wide but with frame only*/&lt;br /&gt;
table.wide-frame {&lt;br /&gt;
    margin: 1em 1em 1em 0;&lt;br /&gt;
    border: 1px #aaa solid;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.wide-frame th .wide-frame td {&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
}&lt;br /&gt;
.wide-frame th {&lt;br /&gt;
    background: #d2d2d2;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.wide-frame caption {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
По умолчанию в движке MediaWiki определён только один класс таблиц wikitable. &lt;br /&gt;
* Чтобы определить свои классы нужно отредактировать файл &amp;lt;tt&amp;gt;skins/common/shared.css&amp;lt;/tt&amp;gt;. Вставьте в любое место приведённый справа код.&lt;br /&gt;
Пример классов таблиц:&lt;br /&gt;
{| class=frame &lt;br /&gt;
|- &lt;br /&gt;
! вид&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ wikitable&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*1||Ячейка 2*1&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*2||Ячейка 2*2&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*3||Ячейка 2*3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;standard sortable&amp;quot;&lt;br /&gt;
|+ standard&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
| 1 Ячейка || 2 Ячейка&lt;br /&gt;
|-&lt;br /&gt;
| 2 Ячейка || 1 Ячейка &lt;br /&gt;
|-&lt;br /&gt;
| 3 Ячейка || 3 Ячейка&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;frame sortable&amp;quot;&lt;br /&gt;
|+ frame&lt;br /&gt;
|-&lt;br /&gt;
!Латиница||Кириллица||class=&amp;quot;unsortable&amp;quot;|Цифры&lt;br /&gt;
|-&lt;br /&gt;
| D || Г || 3 &lt;br /&gt;
|-&lt;br /&gt;
| E || Щ || 2&lt;br /&gt;
|-&lt;br /&gt;
| F || Б || 11&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! код&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*1||Ячейка 2*1&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*2||Ячейка 2*2&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*3||Ячейка 2*3&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
| 1 Ячейка || 2 Ячейка&lt;br /&gt;
|-&lt;br /&gt;
| 2 Ячейка || 1 Ячейка &lt;br /&gt;
|-&lt;br /&gt;
| 3 Ячейка || 3 Ячейка&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;frame sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Латиница||Кириллица||class=&amp;quot;unsortable&amp;quot;|Цифры&lt;br /&gt;
|-&lt;br /&gt;
| D || Г || 3 &lt;br /&gt;
|-&lt;br /&gt;
| E || Щ || 2&lt;br /&gt;
|-&lt;br /&gt;
| F || Б || 11&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=frame width=600&lt;br /&gt;
|-&lt;br /&gt;
! width=50|широкие&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wide&amp;quot; &lt;br /&gt;
|+ wide&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*1||Ячейка 2*1&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*2||Ячейка 2*2&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*3||Ячейка 2*3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wide-frame&amp;quot; &lt;br /&gt;
|+ wide-frame&lt;br /&gt;
|-&lt;br /&gt;
!Заголовок 1||Заголовок 2 &lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*1||Ячейка 2*1&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*2||Ячейка 2*2&lt;br /&gt;
|-&lt;br /&gt;
|Ячейка 1*3||Ячейка 2*3&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Можно добавить возможность [http://www.mediawiki.org/wiki/Manual:Collapsible_tables сворачивать таблицы]. В официальной инструкции рекомендуется создать в вики страницы '''Common.js''' и '''Common.css''', но в случае вики семьи такое решение не подойдёт, так действует только на одну вики, поэтому я добавил код в конец следующих файлов в каталоге &amp;lt;tt&amp;gt;skins/common/&amp;lt;/tt&amp;gt;:&lt;br /&gt;
** код для Common.js добавил в &amp;lt;tt&amp;gt;ajax.js&amp;lt;/tt&amp;gt;&lt;br /&gt;
** код для Common.css добавил в &amp;lt;tt&amp;gt;shared.css&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Скопируйте и вставте следующий код в [[MediaWiki:Common.js]] и [[MediaWiki:Common.css]]:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;frame collapsible collapsed&amp;quot;&lt;br /&gt;
! код для Common.js&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=javascript&amp;gt;&lt;br /&gt;
/** Collapsible tables *********************************************************&lt;br /&gt;
 *&lt;br /&gt;
 *  Description: Allows tables to be collapsed, showing only the header. See&lt;br /&gt;
 *               http://www.mediawiki.org/wiki/Manual:Collapsible_tables.&lt;br /&gt;
 *  Maintainers: [[en:User:R. Koot]]&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
var autoCollapse = 2;&lt;br /&gt;
var collapseCaption = 'hide';&lt;br /&gt;
var expandCaption = 'show';&lt;br /&gt;
&lt;br /&gt;
function collapseTable( tableIndex ) {&lt;br /&gt;
    var Button = document.getElementById( 'collapseButton' + tableIndex );&lt;br /&gt;
    var Table = document.getElementById( 'collapsibleTable' + tableIndex );&lt;br /&gt;
&lt;br /&gt;
    if ( !Table || !Button ) {&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var Rows = Table.rows;&lt;br /&gt;
&lt;br /&gt;
    if ( Button.firstChild.data == collapseCaption ) {&lt;br /&gt;
        for ( var i = 1; i &amp;lt; Rows.length; i++ ) {&lt;br /&gt;
            Rows[i].style.display = 'none';&lt;br /&gt;
        }&lt;br /&gt;
        Button.firstChild.data = expandCaption;&lt;br /&gt;
    } else {&lt;br /&gt;
        for ( var i = 1; i &amp;lt; Rows.length; i++ ) {&lt;br /&gt;
            Rows[i].style.display = Rows[0].style.display;&lt;br /&gt;
        }&lt;br /&gt;
        Button.firstChild.data = collapseCaption;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function createCollapseButtons() {&lt;br /&gt;
    var tableIndex = 0;&lt;br /&gt;
    var NavigationBoxes = new Object();&lt;br /&gt;
    var Tables = document.getElementsByTagName( 'table' );&lt;br /&gt;
&lt;br /&gt;
    for ( var i = 0; i &amp;lt; Tables.length; i++ ) {&lt;br /&gt;
        if ( hasClass( Tables[i], 'collapsible' ) ) {&lt;br /&gt;
&lt;br /&gt;
            /* only add button and increment count if there is a header row to work with */&lt;br /&gt;
            var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];&lt;br /&gt;
            if ( !HeaderRow ) {&lt;br /&gt;
                continue;&lt;br /&gt;
            }&lt;br /&gt;
            var Header = HeaderRow.getElementsByTagName( 'th' )[0];&lt;br /&gt;
            if ( !Header ) {&lt;br /&gt;
                continue;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            NavigationBoxes[tableIndex] = Tables[i];&lt;br /&gt;
            Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );&lt;br /&gt;
&lt;br /&gt;
            var Button = document.createElement( 'span' );&lt;br /&gt;
            var ButtonLink = document.createElement( 'a' );&lt;br /&gt;
            var ButtonText = document.createTextNode( collapseCaption );&lt;br /&gt;
&lt;br /&gt;
            Button.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]]&lt;br /&gt;
&lt;br /&gt;
            ButtonLink.style.color = Header.style.color;&lt;br /&gt;
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );&lt;br /&gt;
            ButtonLink.setAttribute( 'href', &amp;quot;javascript:collapseTable(&amp;quot; + tableIndex + &amp;quot;);&amp;quot; );&lt;br /&gt;
            ButtonLink.appendChild( ButtonText );&lt;br /&gt;
&lt;br /&gt;
            Button.appendChild( document.createTextNode( '[' ) );&lt;br /&gt;
            Button.appendChild( ButtonLink );&lt;br /&gt;
            Button.appendChild( document.createTextNode( ']' ) );&lt;br /&gt;
&lt;br /&gt;
            Header.insertBefore( Button, Header.childNodes[0] );&lt;br /&gt;
            tableIndex++;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for ( var i = 0;  i &amp;lt; tableIndex; i++ ) {&lt;br /&gt;
        if ( hasClass( NavigationBoxes[i], 'collapsed' ) || ( tableIndex &amp;gt;= autoCollapse &amp;amp;&amp;amp; hasClass( NavigationBoxes[i], 'autocollapse' ) ) ) {&lt;br /&gt;
            collapseTable( i );&lt;br /&gt;
        } else if ( hasClass( NavigationBoxes[i], 'innercollapse' ) ) {&lt;br /&gt;
            var element = NavigationBoxes[i];&lt;br /&gt;
            while ( element = element.parentNode ) {&lt;br /&gt;
                if ( hasClass( element, 'outercollapse' ) ) {&lt;br /&gt;
                    collapseTable( i );&lt;br /&gt;
                    break;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
addOnloadHook( createCollapseButtons );&lt;br /&gt;
&lt;br /&gt;
/** Test if an element has a certain class **************************************&lt;br /&gt;
 *&lt;br /&gt;
 * Description: Uses regular expressions and caching for better performance.&lt;br /&gt;
 * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
var hasClass = ( function() {&lt;br /&gt;
    var reCache = {};&lt;br /&gt;
    return function( element, className ) {&lt;br /&gt;
        return ( reCache[className] ? reCache[className] : ( reCache[className] = new RegExp( &amp;quot;(?:\\s|^)&amp;quot; + className + &amp;quot;(?:\\s|$)&amp;quot; ) ) ).test( element.className );&lt;br /&gt;
    };&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{|class=&amp;quot;frame collapsible collapsed&amp;quot; &lt;br /&gt;
! код для Common.css&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=css&amp;gt;&lt;br /&gt;
table.collapsed tr.collapsible {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.collapseButton {        /* 'show'/'hide' buttons created dynamically by the        */&lt;br /&gt;
    float: right;        /* CollapsibleTables JavaScript in [[MediaWiki:Common.js]] */&lt;br /&gt;
    font-weight: normal;    /* are styled here so they can be customised.          */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
    width: auto;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Добавление расширений ==&lt;br /&gt;
&lt;br /&gt;
Список всех уже установленных расширений можно увидеть на странице [[:Special:Version]] а в руссифицированных версиях также [[:Служебная:Version]]&lt;br /&gt;
&lt;br /&gt;
Все расширения (extensions) устанавливаются в MediaWiki одинаково: &lt;br /&gt;
# копируются в свой подкаталог в каталоге extensions. Список расширений можно узнать из [http://www.mediawiki.org/wiki/Extension_Matrix официального списка].&lt;br /&gt;
# в '''LocalSettings.php''' добавляется строка:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
require_once( &amp;quot;$IP/extensions/Каталог_Расширения/Главный_Файл_Расширения.php&amp;quot; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Некоторые полезные расширения'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:FCKeditor_%28Official%29 FCKeditor] - визуальный (WYSIWYG) редактор. У этого расширения можно обновить сам [http://ckeditor.com/download редактор]. Подключаем:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
require_once( &amp;quot;$IP/extensions/FCKeditor/FCKeditor.php&amp;quot; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Cite/Cite.php Cite.php] - добавляет поддержку тэгов '''&amp;lt;nowiki&amp;gt;&amp;lt;ref&amp;gt;&amp;lt;/nowiki&amp;gt;''' и '''&amp;lt;nowiki&amp;gt;&amp;lt;references /&amp;gt;&amp;lt;/nowiki&amp;gt;''', что позволяет использовать в тексте статьи сноски. Подключаем:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
require_once( &amp;quot;$IP/extensions/Cite/Cite.php&amp;quot; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ParserFunctions/ru ParserFunctions] - позволяет использовать тэги: '''&amp;lt;nowiki&amp;gt;#expr: #if: #ifeq: #ifexist: #ifexpr: #switch: #time: #rel2abs: #titleparts: #iferror:&amp;lt;/nowiki&amp;gt;'''. На Википедии можно почитать как использовать [http://ru.wikipedia.org/wiki/Википедия:Функции_парсера функции парсера]. Устанавливать лучше из репозитория Subversion (скачать [http://subversion.apache.org/packages.html#windows клиент]):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd extensions/&lt;br /&gt;
svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ParserFunctions&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi SyntaxHighlight GeSHi] - подсветка синтаксиса программного кода, позволяет использовать тэги '''&amp;lt;nowiki&amp;gt;&amp;lt;syntaxhighlight&amp;gt; и &amp;lt;source&amp;gt;&amp;lt;/nowiki&amp;gt;'''. Это расширенная версия [http://www.mediawiki.org/wiki/Extension:Geshi GeSHi]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd extensions/&lt;br /&gt;
svn co  svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подключаем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
require_once(&amp;quot;$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Параметры:'''&lt;br /&gt;
&lt;br /&gt;
** '''lang'''=&amp;quot;??&amp;quot;: Определяет язык программировария, сказывается на самой подсветке&lt;br /&gt;
** '''line'''=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot;: Как нумеровать линии (по умолчанию никак)&lt;br /&gt;
** '''line start'''=&amp;quot;??&amp;quot;: Какой номер у первой строки, используется вместе с line&lt;br /&gt;
** '''highlight'''=&amp;quot;??&amp;quot;: Какую линию подсветить, не зависит от line start&lt;br /&gt;
** '''enclose'''=&amp;quot;??&amp;quot;: В какой контейнер поместить блок. Принимает значения &amp;quot;pre&amp;quot; (по умолчанию), &amp;quot;div&amp;quot;, &amp;quot;none&amp;quot;. &lt;br /&gt;
** '''strict''': Присутствие этого параметра указывает, что нужно использовать режим strict.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:CategoryTree CategoryTree] - добавляет более удобную навигацию по категориям. Позволяет использовать тэг &amp;lt;nowiki&amp;gt;&amp;lt;categorytree&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Копируем в каталог расширений и подключаем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
require_once(&amp;quot;$IP/extensions/CategoryTree/CategoryTree.php&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Collection Collection] - даёт возможность создавать книги в формате PDF из статей сайта.&lt;br /&gt;
&lt;br /&gt;
'''! Требует чтобы PHP поддерживал cURL !''' Возможно потребуется доуставить.&lt;br /&gt;
&lt;br /&gt;
Копируем в каталог расширений и подключаем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
require_once(&amp;quot;$IP/extensions/Collection/Collection.php&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы дать пользователям возможность сохранять и делиться своими книгами с другими, добавьте в Localsettings.php: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
$wgGroupPermissions['user']['collectionsaveasuserpage'] = true;&lt;br /&gt;
$wgGroupPermissions['user']['collectionsaveascommunitypage'] = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
С настройками по умолчанию книги будут генерироваться на сервере разработчика этого расширения.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:CharInsert CharInsert] - быстрое добавление любых символов или шаблонных тегов. Ниже окна редактирования размещается дополнительная панель инструментов.&lt;br /&gt;
&lt;br /&gt;
== Резервное копирование  ==&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать, как скачать дампы базы данных со статьями Википедии, см. [http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Linux/ru статью Википедии]&lt;br /&gt;
&lt;br /&gt;
Для создания собственного дампа локального сайта, использующего MediaWiki, есть [http://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki/ru подробная инструкция]. &lt;br /&gt;
&lt;br /&gt;
Если кратко, то полная резервная копия - это дамп из СУБД (у меня MySQL) в виде SQL выражений, а частичная в виде xml файла. Особенности последней в том, что она не зависит от структуры базы данных и может быть перенесена, например, на нувую версию MediaWiki с изменнённой структурой БД, но в xml не выгружаются информация о логинаx пользователей, журналы и метаданные изображений.&lt;br /&gt;
&lt;br /&gt;
*Для '''SQL''' дампа выполняем:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;mysql&amp;quot;&amp;gt;&lt;br /&gt;
mysqldump -h $SERVER -u $USER -p$PASSWORD --default-character-set=$CHARSET $DATABASE -c \&lt;br /&gt;
| /bin/gzip -9 &amp;gt; ~/backup/wiki-$(date '+%a').sql.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:параметры '''$USER''', '''$PASSWORD''' и '''$DATABASE''' берём из LocalSettings.php&lt;br /&gt;
:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cat ./LocalSettings.php  | grep wgDB&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:параметр '''--default-character-set=$CHARSET''' нужен, если возникли проблемы с кодировкой (подробней см. статью выше)&lt;br /&gt;
&lt;br /&gt;
:параметр '''-h $SERVER''' нужен если подключаемся не через сокет, иначе получим ошибку:&lt;br /&gt;
:&amp;lt;pre&amp;gt;mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для '''XML''' дампа используем скрипт [http://www.mediawiki.org/wiki/Manual:DumpBackup.php dumpBackup.php], расположенный в каталоге '''maintenance''':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php maintenance\dumpBackup.php --full &amp;gt; full.xml&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Список параметров dumpBackup.php можно получить, вызвав его без параметров, однако, в исходном коде этого скрипта есть ещё несколько недокументированных опций.&lt;br /&gt;
&lt;br /&gt;
== Редактировние статей ==&lt;br /&gt;
&lt;br /&gt;
Об этом можно подробно узнать из [[Справка:Содержание|Справки по редактированию]].&lt;br /&gt;
&lt;br /&gt;
== Уменьшение нагрузки ==&lt;br /&gt;
&lt;br /&gt;
Полезно запретить поисковым роботам индексировать все служебные страницы, а ограничить их только статьями. Для этого редактируем файл '''robots.txt''' в корне сайта:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;User-agent: *&lt;br /&gt;
Disallow: /w/&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае [[MediaWiki/Wiki_family_(farm)|вики семьи]] (фермы), в корневой каталог сайта кладём:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; User-agent: *&lt;br /&gt;
 Disallow: /w/&lt;br /&gt;
 Disallow: /ru/w-&lt;br /&gt;
 Disallow: /en/w-&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
а в языковые подкаталоги:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; User-agent: *&lt;br /&gt;
 Disallow: /w/&lt;br /&gt;
 Disallow: /w-&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробнее см. на [http://www.mediawiki.org/wiki/Robots.txt официальном сайте]&lt;br /&gt;
&lt;br /&gt;
==Дополнительные настройки==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Interwiki/ru Интервики] (interwiki) - это ссылки, оформленные как внутренние ссылки с использованием специального префикса, но ведущие на страницы других проектов. Интервики-ссылки позволяют сделать ссылку на страницы других вики-проектов, например Википедии, Викиучебника, Викиновостей и т.д., или, к примеру, на разделы вашего вики-проекта на разных языках.&lt;br /&gt;
** [http://www.mediawiki.org/wiki/Extension:Interwiki расширение Interwiki] позволяет редактировать таблицу интервики ссылок.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Tagline_(Site_Subtitle) Tagline] - можно изменить подпись &amp;quot;'''Материал из НазваниеВики'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
'''Документация:'''&lt;br /&gt;
* http://meta.wikimedia.org/wiki/Помощь:Содержание&lt;br /&gt;
* http://ru.wikibooks.org/wiki/Вики - небольшой Викиучебник&lt;br /&gt;
&lt;br /&gt;
'''Советы по настройке:'''&lt;br /&gt;
* http://ru.wikia.com/wiki/Настройка_вики &lt;br /&gt;
* http://docs.altlinux.org/archive/4.1/school_server/mediawiki/index.html&lt;br /&gt;
* http://homo-creativus.info/tag/mediawiki/&lt;br /&gt;
&lt;br /&gt;
'''Справочники:'''&lt;br /&gt;
* http://www.wikireality.ru/wiki/Настройки_конфигурации_MediaWiki_(по_алфавиту) - описание всех параметров LocalSettings.php на русском языке&lt;br /&gt;
&lt;br /&gt;
'''Скины:'''&lt;br /&gt;
* Инструкции как сделать свой скин &lt;br /&gt;
** на [http://wiki.auditory.ru/Создание_скинов_для_MediaWiki русском языке] &lt;br /&gt;
** на [http://www.siteground.com/tutorials/mediawiki/mediawiki_skins.htm английском]&lt;br /&gt;
** полная [http://www.mediawiki.org/wiki/Skinning официальная]&lt;br /&gt;
&lt;br /&gt;
* Сайты со скинами&lt;br /&gt;
** http://mediawiki2u.com/&lt;br /&gt;
&lt;br /&gt;
'''Утилиты:'''&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Word2MediaWikiPlus - Утилита для конвертации файлов MS Word 2007 в формат текста MediaWiki&lt;br /&gt;
&lt;br /&gt;
'''Описание движка MediaWiki:'''&lt;br /&gt;
* http://www.mediawiki.org/wiki/Category:MediaWiki_database_tables - Таблицы&lt;br /&gt;
[[Category:Руководства]] [[Категория:Net]][[Категория:MediaWiki]]&lt;/div&gt;</summary>
		<author><name>Langator</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=412</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=412"/>
		<updated>2012-03-15T23:57:20Z</updated>

		<summary type="html">&lt;p&gt;Langator: &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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dmesg | less&amp;lt;/source&amp;gt;&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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dmesg &amp;gt; временный.файл&lt;br /&gt;
временный.файл &amp;gt; less&amp;lt;/source&amp;gt;&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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ls -l  имя_директории | less&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
или&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ls -l  имя_директории | more&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для пробы проделайте такой пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ls -l -R /usr | less&amp;lt;/source&amp;gt;&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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ls -l -R /usr | grep xorg.conf&amp;lt;/source&amp;gt;&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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;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&amp;lt;/source&amp;gt;&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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mkfifo fifo1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь запустим процесс, обращающийся к данному каналу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;grep fs &amp;lt; fifo1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Несмотря на нажатие клавиши ENTER ничего не происходит, что не удивительно, ведь файл fifo1 пока пуст, и команде grep нечего обрабатывать. Однако консоль оказывается занята ждущим процессом, и разблокировать ее можно только прервав процесс (скажем, нажатием клавиш CTRL+c).&lt;br /&gt;
&lt;br /&gt;
Чтобы наполнить именной канал содержимым, нужно чтобы к нему обратился второй процесс. Для этого мы должны открыть вторую консоль и запустить какую-либо команду, передающую данные в файл fifo1. Например:&lt;br /&gt;
&lt;br /&gt;
 (Другая консоль) &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ls /etc &amp;gt; fifo1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Немедленно в первой консоли сработает команда grep:&lt;br /&gt;
&lt;br /&gt;
  grep fs &amp;lt; fifo1 &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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ls /etc | grep fs&amp;lt;/source&amp;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;
Программные каналы - мощнейший инструмент Юниксовидных операционных систем. Создание программных каналов многократно ускоряет процесс обработки данных, сокращает количество &amp;quot;писанины&amp;quot; в командной строке, а также позволяет получать результат в наиболее удобном виде.&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;/div&gt;</summary>
		<author><name>Langator</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=411</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=411"/>
		<updated>2012-03-15T23:56:30Z</updated>

		<summary type="html">&lt;p&gt;Langator: &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;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=POST&amp;diff=410</id>
		<title>POST</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=POST&amp;diff=410"/>
		<updated>2012-03-15T23:55:23Z</updated>

		<summary type="html">&lt;p&gt;Langator: &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;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Bash&amp;diff=409</id>
		<title>Bash</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Bash&amp;diff=409"/>
		<updated>2012-03-15T23:53:16Z</updated>

		<summary type="html">&lt;p&gt;Langator: /* Особенности */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| name                   = Bash&lt;br /&gt;
| logo                   =&lt;br /&gt;
| screenshot             = [[Image:Bash demo.png|250px]]&lt;br /&gt;
| caption                = Изображение bash и sh сессии&lt;br /&gt;
| author                 = Brian Fox&lt;br /&gt;
| released               = {{start date and age|1989|6|7}}&lt;br /&gt;
| frequently updated     = yes&lt;br /&gt;
| programming language   = Cи&lt;br /&gt;
| operating system       = Cross-platform&lt;br /&gt;
| platform               = GNU&lt;br /&gt;
| language               = English, multilingual&lt;br /&gt;
| status                 = Active&lt;br /&gt;
| genre                  = Unix shell&lt;br /&gt;
| source model           = Free software&lt;br /&gt;
| license                = GPLv3&lt;br /&gt;
| website                = [http://www.gnu.org/software/bash/ Bash GNU project home page]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Bash''' - это ''POSIX shell'' написанный в рамках проекта GNU. Является самым распространенным командным интерпретатором, используется по умолчанию в подавляющем количестве дистрибутивов GNU/Linux.&lt;br /&gt;
&lt;br /&gt;
'''Bash''' — это акроним от ''Bourne-again-shell'', «ещё-одна-командная-оболочка-Борна». Название — игра слов: Bourne-shell — одна из популярных разновидностей командной оболочки для UNIX (sh), автором которой является Стивен Борн (1978), усовершенствована в 1987 году Брайаном Фоксом. Фамилия Bourne (Борн) перекликается с английским словом born, означающим «родившийся», отсюда: рождённая-вновь-командная оболочка.&lt;br /&gt;
&lt;br /&gt;
==Особенности==&lt;br /&gt;
Синтаксис bash является расширенным вариантом синтаксиса Bourne shell (часто просто sh по имени исполняемого файла). Подавляющее большинство скриптов sh могут выполняться bash`ем без изменений. Bash включает в себя идеи ksh и csh такие как история команд, редактор командной строки, переменные &amp;lt;tt&amp;gt;$RANDOM&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;$PPID&amp;lt;/tt&amp;gt; и &amp;lt;tt&amp;gt;$(…)&amp;lt;/tt&amp;gt;. При использовании в качестве интерактивной оболочки и двойном нажатии клавиши tab происходит автоматическое дополнение команд, имен файлов и переменных. &lt;br /&gt;
&lt;br /&gt;
Bash имеет много возможностей, которых не хватает в Bourne shell. Например, bash может выполнять вычисления с целыми числами без порождения внешних процессов. Bash упрощает перенаправление ввода/вывода способами, которые невозможны в традиционных шелах Борна. Например, Bash может перенаправить стандартный вывод (STDOUT) и  стандартная ошибка (STDERR) используя оператор &amp;lt;tt&amp;gt;&amp;amp;&amp;gt;&amp;lt;/tt&amp;gt;. Это проще напечатать, чем эквивалентная команда в  Bourne Shell.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;command &amp;gt; file 2&amp;gt;&amp;amp;1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании функций (function) bash не совместим с Bourne/Korn/POSIX шелами, но понимает их синтаксис. В силу этих и других различий, bash скрипты редко работоспособной под sh и ksh, если намеренно написаны с совместимостью. Но в режиме POSIX, соответствие POSIX является почти идеальным.&lt;br /&gt;
&lt;br /&gt;
С версии 2.05b bash может перенаправлять стандартный ввод (stdin)  используя оператор &amp;lt;tt&amp;gt;'''&amp;lt;'''&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В bash 3.0 появилась поддержка регулярных выражений Perl.&lt;br /&gt;
&lt;br /&gt;
Bash 4.0 поддержка массивов аналогичных awk:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -A a         # declare an associative array 'a'&lt;br /&gt;
i=1; j=2             # initialize some indices&lt;br /&gt;
a[$i,$j]=5           # associate value &amp;quot;5&amp;quot; to key &amp;quot;$i,$j&amp;quot; (i.e. &amp;quot;1,2&amp;quot;)&lt;br /&gt;
echo ${a[$i,$j]}     # print the stored value at key &amp;quot;$i,$j&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Выражения со скобками===&lt;br /&gt;
&lt;br /&gt;
Выражения со скобками, которые также называются чередованием, были скопированы из C shell и генерирует набор различных комбинаций. Строки не сортируются и обрабатываются в порядке слева направо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo a{p,c,d,b}e # ape ace ade abe&lt;br /&gt;
echo {a,b,c}{d,e,f} # ad ae af bd be bf cd ce cf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чередование не должно использоваться в портативных скриптах, т.к. Bourne shell его не поддерживает.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo a{p,c,d,b}e # a{p,c,d,b}e&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда чередование комбинируется со знаками подстановки, первым используется чередование, а затем символы заменяются в обычном режиме. Таким образом, список JPEG и PNG изображений в текущей директории может быть получен так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls *.{jpg,jpeg,png} # заменяется на *.jpg *.jpeg *.png - после чего обрабатываются шаблоны&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Стартовые скрипты===&lt;br /&gt;
&lt;br /&gt;
Bash при запуске вызывает множество команд и различных скриптов.&lt;br /&gt;
Когда Bash вызывается как интерактивная оболочка, первым делом он читает и вызывает команды из файла {{Path|/etc/profile}}. После чтения этого выполняются следующие файлы: {{Path|~/.bash_profile}}, {{Path|~/.bash_login}}, и {{Path|~/.profile}}. При выходе Bash выполняет команды из файла {{Path|~/.bash_logout}}.&lt;br /&gt;
Также Bash использует файл {{Path|~/.bashrc}}. Это может быть отменено опцией ''--norc''. Опция ''--rcfile'' заставит Bash использовать команды из {{Path|~/.bashrc}}.&lt;br /&gt;
&lt;br /&gt;
==Комбинации клавиш==&lt;br /&gt;
{{Key|'''ctrl+u'''}}  удалить все символы от курсора до начала строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+k'''}}  удалить все символы от курсора до конца строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+w'''}}  удалить слово перед курсором&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+b'''}}  переместить курсор на один символ влево&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+f'''}}  переместить курсор на один символ вправо&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+t'''}}  поменять местами символ слева от курсора и под курсором&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+h'''}}  удалить символ слева от курсора&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+a'''}}  переместить курсор в начало строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+e'''}}  переместить курсор в конец строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+p'''}}  предыдущая команда в истории bash&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+n'''}}  следующая команда в истории bash&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+r'''}}  реверсивный поиск команд в истории bash&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+y'''}}  вставляет последнюю удаленную с помощью ctrl+u или ctrl+k строку&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+m'''}}  выполнение команды, аналог [Enter]&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+o'''}}  выполняет команду, при этом оставляя ее в командной строке для дальнейшего использования.&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+l'''}}  очистить экран&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+s'''}}  стоп режим. Блокирует вывод на консоль. При этом все данные отображенные на экране остаются не измененными.&lt;br /&gt;
&lt;br /&gt;
{{Key|'''Tab+Tab'''}} выводит список команд. При наличии какого нибудь символа(-ов) выводит команды по введенным символам. &lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+q'''}}  выход из стоп-режима.&lt;br /&gt;
 &lt;br /&gt;
{{Key|'''ctrl+d'''}}  выйти из терминала&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+c'''}}  отменить последнюю введенную команду&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+x,ctrl+v'''}} показать версию bash&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.opennet.ru/Bash Bash]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Bash&amp;diff=408</id>
		<title>Bash</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Bash&amp;diff=408"/>
		<updated>2012-03-15T23:51:34Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| name                   = Bash&lt;br /&gt;
| logo                   =&lt;br /&gt;
| screenshot             = [[Image:Bash demo.png|250px]]&lt;br /&gt;
| caption                = Изображение bash и sh сессии&lt;br /&gt;
| author                 = Brian Fox&lt;br /&gt;
| released               = {{start date and age|1989|6|7}}&lt;br /&gt;
| frequently updated     = yes&lt;br /&gt;
| programming language   = Cи&lt;br /&gt;
| operating system       = Cross-platform&lt;br /&gt;
| platform               = GNU&lt;br /&gt;
| language               = English, multilingual&lt;br /&gt;
| status                 = Active&lt;br /&gt;
| genre                  = Unix shell&lt;br /&gt;
| source model           = Free software&lt;br /&gt;
| license                = GPLv3&lt;br /&gt;
| website                = [http://www.gnu.org/software/bash/ Bash GNU project home page]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Bash''' - это ''POSIX shell'' написанный в рамках проекта GNU. Является самым распространенным командным интерпретатором, используется по умолчанию в подавляющем количестве дистрибутивов GNU/Linux.&lt;br /&gt;
&lt;br /&gt;
'''Bash''' — это акроним от ''Bourne-again-shell'', «ещё-одна-командная-оболочка-Борна». Название — игра слов: Bourne-shell — одна из популярных разновидностей командной оболочки для UNIX (sh), автором которой является Стивен Борн (1978), усовершенствована в 1987 году Брайаном Фоксом. Фамилия Bourne (Борн) перекликается с английским словом born, означающим «родившийся», отсюда: рождённая-вновь-командная оболочка.&lt;br /&gt;
&lt;br /&gt;
==Особенности==&lt;br /&gt;
Синтаксис bash является расширенным вариантом синтаксиса Bourne shell (часто просто sh по имени исполняемого файла). Подавляющее большинство скриптов sh могут выполняться bash`ем без изменений. Bash включает в себя идеи ksh и csh такие как история команд, редактор командной строки, переменные &amp;lt;tt&amp;gt;$RANDOM&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;$PPID&amp;lt;/tt&amp;gt; и &amp;lt;tt&amp;gt;$(…)&amp;lt;/tt&amp;gt;. При использовании в качестве интерактивной оболочки и двойном нажатии клавиши tab происходит автоматическое дополнение команд, имен файлов и переменных. &lt;br /&gt;
&lt;br /&gt;
Bash имеет много возможностей, которых не хватает в Bourne shell. Например, bash может выполнять вычисления с целыми числами без порождения внешних процессов. Bash упрощает перенаправление ввода/вывода способами, которые невозможны в традиционных шелах Борна. Например, Bash может перенаправить стандартный вывод (STDOUT) и  стандартная ошибка (STDERR) используя оператор &amp;lt;tt&amp;gt;&amp;amp;&amp;gt;&amp;lt;/tt&amp;gt;. Это проще напечатать, чем эквивалентная команда в  Bourne Shell.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;command &amp;gt; file 2&amp;gt;&amp;amp;1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании функций (function) bash не совместим с Bourne/Korn/POSIX шелами, но понимает их синтаксис. В силу этих и других различий, bash скрипты редко работоспособной под sh и ksh, если намеренно написаны с совместимостью. Но в режиме POSIX, соответствие POSIX является почти идеальным.&lt;br /&gt;
&lt;br /&gt;
С версии 2.05b bash может перенаправлять стандартный ввод (stdin)  используя the &amp;lt;tt&amp;gt;&amp;lt;&amp;lt;/tt&amp;gt; оператор.&lt;br /&gt;
&lt;br /&gt;
В bash 3.0 появилась поддержка регулярных выражений Perl.&lt;br /&gt;
&lt;br /&gt;
Bash 4.0 поддержка массивов аналогичных awk:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -A a         # declare an associative array 'a'&lt;br /&gt;
i=1; j=2             # initialize some indices&lt;br /&gt;
a[$i,$j]=5           # associate value &amp;quot;5&amp;quot; to key &amp;quot;$i,$j&amp;quot; (i.e. &amp;quot;1,2&amp;quot;)&lt;br /&gt;
echo ${a[$i,$j]}     # print the stored value at key &amp;quot;$i,$j&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Выражения со скобками===&lt;br /&gt;
&lt;br /&gt;
Выражения со скобками, которые также называются чередованием, были скопированы из C shell и генерирует набор различных комбинаций. Строки не сортируются и обрабатываются в порядке слева направо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo a{p,c,d,b}e # ape ace ade abe&lt;br /&gt;
echo {a,b,c}{d,e,f} # ad ae af bd be bf cd ce cf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чередование не должно использоваться в портативных скриптах, т.к. Bourne shell его не поддерживает.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo a{p,c,d,b}e # a{p,c,d,b}e&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда чередование комбинируется со знаками подстановки, первым используется чередование, а затем символы заменяются в обычном режиме. Таким образом, список JPEG и PNG изображений в текущей директории может быть получен так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls *.{jpg,jpeg,png} # заменяется на *.jpg *.jpeg *.png - после чего обрабатываются шаблоны&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Стартовые скрипты===&lt;br /&gt;
&lt;br /&gt;
Bash при запуске вызывает множество команд и различных скриптов.&lt;br /&gt;
Когда Bash вызывается как интерактивная оболочка, первым делом он читает и вызывает команды из файла {{Path|/etc/profile}}. После чтения этого выполняются следующие файлы: {{Path|~/.bash_profile}}, {{Path|~/.bash_login}}, и {{Path|~/.profile}}. При выходе Bash выполняет команды из файла {{Path|~/.bash_logout}}.&lt;br /&gt;
Также Bash использует файл {{Path|~/.bashrc}}. Это может быть отменено опцией ''--norc''. Опция ''--rcfile'' заставит Bash использовать команды из {{Path|~/.bashrc}}.&lt;br /&gt;
&lt;br /&gt;
==Комбинации клавиш==&lt;br /&gt;
{{Key|'''ctrl+u'''}}  удалить все символы от курсора до начала строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+k'''}}  удалить все символы от курсора до конца строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+w'''}}  удалить слово перед курсором&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+b'''}}  переместить курсор на один символ влево&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+f'''}}  переместить курсор на один символ вправо&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+t'''}}  поменять местами символ слева от курсора и под курсором&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+h'''}}  удалить символ слева от курсора&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+a'''}}  переместить курсор в начало строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+e'''}}  переместить курсор в конец строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+p'''}}  предыдущая команда в истории bash&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+n'''}}  следующая команда в истории bash&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+r'''}}  реверсивный поиск команд в истории bash&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+y'''}}  вставляет последнюю удаленную с помощью ctrl+u или ctrl+k строку&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+m'''}}  выполнение команды, аналог [Enter]&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+o'''}}  выполняет команду, при этом оставляя ее в командной строке для дальнейшего использования.&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+l'''}}  очистить экран&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+s'''}}  стоп режим. Блокирует вывод на консоль. При этом все данные отображенные на экране остаются не измененными.&lt;br /&gt;
&lt;br /&gt;
{{Key|'''Tab+Tab'''}} выводит список команд. При наличии какого нибудь символа(-ов) выводит команды по введенным символам. &lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+q'''}}  выход из стоп-режима.&lt;br /&gt;
 &lt;br /&gt;
{{Key|'''ctrl+d'''}}  выйти из терминала&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+c'''}}  отменить последнюю введенную команду&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+x,ctrl+v'''}} показать версию bash&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.opennet.ru/Bash Bash]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Bash&amp;diff=407</id>
		<title>Bash</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Bash&amp;diff=407"/>
		<updated>2012-03-15T23:38:32Z</updated>

		<summary type="html">&lt;p&gt;Langator: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox software&lt;br /&gt;
| name                   = Bash&lt;br /&gt;
| logo                   =&lt;br /&gt;
| screenshot             = [[Image:Bash demo.png|250px]]&lt;br /&gt;
| caption                = Изображение bash и sh сессии&lt;br /&gt;
| author                 = Brian Fox&lt;br /&gt;
| released               = {{start date and age|1989|6|7}}&lt;br /&gt;
| frequently updated     = yes&lt;br /&gt;
| programming language   = Cи&lt;br /&gt;
| operating system       = Cross-platform&lt;br /&gt;
| platform               = GNU&lt;br /&gt;
| language               = English, multilingual&lt;br /&gt;
| status                 = Active&lt;br /&gt;
| genre                  = Unix shell&lt;br /&gt;
| source model           = Free software&lt;br /&gt;
| license                = GPLv3&lt;br /&gt;
| website                = [http://www.gnu.org/software/bash/ Bash GNU project home page]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Bash''' - это ''POSIX shell'' написанный в рамках проекта GNU. Является самым распространенным командным интерпретатором, используется по умолчанию в подавляющем количестве дистрибутивов GNU/Linux.&lt;br /&gt;
&lt;br /&gt;
'''Bash''' — это акроним от ''Bourne-again-shell'', «ещё-одна-командная-оболочка-Борна». Название — игра слов: Bourne-shell — одна из популярных разновидностей командной оболочки для UNIX (sh), автором которой является Стивен Борн (1978), усовершенствована в 1987 году Брайаном Фоксом. Фамилия Bourne (Борн) перекликается с английским словом born, означающим «родившийся», отсюда: рождённая-вновь-командная оболочка.&lt;br /&gt;
&lt;br /&gt;
== История ==&lt;br /&gt;
&lt;br /&gt;
Фокс начал разработку Bash 10 января 1988 года, после того как Ричард Столлман стал недоволен отсутствием прогресса в разработке. Фокс выпустил  первую бета-версию bash 0,99 7 июня 1989 года и был главным разработчиком с середины 1992 до середины 1994 года, затем  был уволен из FSF и его место занял Чет Рамей.&lt;br /&gt;
&lt;br /&gt;
==Особенности==&lt;br /&gt;
Синтаксис bash является расширенным вариантом синтаксиса Bourne shell (часто просто sh по имени исполняемого файла). Подавляющее большинство скриптов sh могут выполняться bash`ем без изменений. Bash включает в себя идеи ksh и csh такие как история команд, редактор командной строки, переменные &amp;lt;tt&amp;gt;$RANDOM&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;$PPID&amp;lt;/tt&amp;gt; и &amp;lt;tt&amp;gt;$(…)&amp;lt;/tt&amp;gt;. При использовании в качестве интерактивной оболочки и двойном нажатии клавиши tab происходит автоматическое дополнение команд, имен файлов и переменных. &lt;br /&gt;
&lt;br /&gt;
Bash имеет много возможностей, которых не хватает в Bourne shell. Например, bash может выполнять вычисления с целыми числами без порождения внешних процессов. Bash упрощает перенаправление ввода/вывода способами, которые невозможны в традиционных шелах Борна. Например, Bash может перенаправить стандартный вывод (STDOUT) и  стандартная ошибка (STDERR) используя оператор &amp;lt;tt&amp;gt;&amp;amp;&amp;gt;&amp;lt;/tt&amp;gt;. Это проще напечатать, чем эквивалентная команда в  Bourne Shell.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;command &amp;gt; file 2&amp;gt;&amp;amp;1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании функций (function) bash не совместим с Bourne/Korn/POSIX шелами, но понимает их синтаксис. В силу этих и других различий, bash скрипты редко работоспособной под sh и ksh, если намеренно написаны с совместимостью. Но в режиме POSIX, соответствие POSIX является почти идеальным.&lt;br /&gt;
&lt;br /&gt;
С версии 2.05b bash может перенаправлять стандартный ввод (stdin)  используя the &amp;lt;tt&amp;gt;&amp;lt;&amp;lt;/tt&amp;gt; оператор.&lt;br /&gt;
&lt;br /&gt;
В bash 3.0 появилась поддержка регулярных выражений Perl.&lt;br /&gt;
&lt;br /&gt;
Bash 4.0 поддержка массивов аналогичных awk:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
declare -A a         # declare an associative array 'a'&lt;br /&gt;
i=1; j=2             # initialize some indices&lt;br /&gt;
a[$i,$j]=5           # associate value &amp;quot;5&amp;quot; to key &amp;quot;$i,$j&amp;quot; (i.e. &amp;quot;1,2&amp;quot;)&lt;br /&gt;
echo ${a[$i,$j]}     # print the stored value at key &amp;quot;$i,$j&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Выражения со скобками===&lt;br /&gt;
&lt;br /&gt;
Выражения со скобками, которые также называются чередованием, были скопированы из C shell и генерирует набор различных комбинаций. Строки не сортируются и обрабатываются в порядке слева направо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo a{p,c,d,b}e # ape ace ade abe&lt;br /&gt;
echo {a,b,c}{d,e,f} # ad ae af bd be bf cd ce cf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чередование не должно использоваться в портативных скриптах, т.к. Bourne shell его не поддерживает.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo a{p,c,d,b}e # a{p,c,d,b}e&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда чередование комбинируется со знаками подстановки, первым используется чередование, а затем символы заменяются в обычном режиме. Таким образом, список JPEG и PNG изображений в текущей директории может быть получен так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls *.{jpg,jpeg,png} # заменяется на *.jpg *.jpeg *.png - после чего обрабатываются шаблоны&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Стартовые скрипты===&lt;br /&gt;
&lt;br /&gt;
Bash при запуске вызывает множество команд и различных скриптов.&lt;br /&gt;
Когда Bash вызывается как интерактивная оболочка, первым делом он читает и вызывает команды из файла {{Path|/etc/profile}}. После чтения этого файла, он смотрит следующие файлы в данном порядке: {{Path|~/.bash_profile}}, {{Path|~/.bash_login}}, и {{Path|~/.profile}}, читает и вызывает команды из них. При выходе Bash читает и выполняет команды из файла {{Path|~/.bash_logout}}.&lt;br /&gt;
Также Bash использует команды из файла {{Path|~/.bashrc}}. Это может быть отменено опцией ''--norc''. Опция ''--rcfile'' заставит Bash использовать команды из {{Path|~/.bashrc}}.&lt;br /&gt;
&lt;br /&gt;
==Комбинации клавиш==&lt;br /&gt;
{{Key|'''ctrl+u'''}}  удалить все символы от курсора до начала строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+k'''}}  удалить все символы от курсора до конца строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+w'''}}  удалить слово перед курсором&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+b'''}}  переместить курсор на один символ влево&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+f'''}}  переместить курсор на один символ вправо&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+t'''}}  поменять местами символ слева от курсора и под курсором&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+h'''}}  удалить символ слева от курсора&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+a'''}}  переместить курсор в начало строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+e'''}}  переместить курсор в конец строки&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+p'''}}  предыдущая команда в истории bash&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+n'''}}  следующая команда в истории bash&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+r'''}}  реверсивный поиск команд в истории bash&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+y'''}}  вставляет последнюю удаленную с помощью ctrl+u или ctrl+k строку&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+m'''}}  выполнение команды, аналог [Enter]&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+o'''}}  выполняет команду, при этом оставляя ее в командной строке для дальнейшего использования.&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+l'''}}  очистить экран&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+s'''}}  стоп режим. Блокирует вывод на консоль. При этом все данные отображенные на экране остаются не измененными.&lt;br /&gt;
&lt;br /&gt;
{{Key|'''Tab+Tab'''}} выводит список команд. При наличии какого нибудь символа(-ов) выводит команды по введенным символам. &lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+q'''}}  выход из стоп-режима.&lt;br /&gt;
 &lt;br /&gt;
{{Key|'''ctrl+d'''}}  выйти из терминала&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+c'''}}  отменить последнюю введенную команду&lt;br /&gt;
&lt;br /&gt;
{{Key|'''ctrl+x,ctrl+v'''}} показать версию bash&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.opennet.ru/Bash Bash]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Переводы с английского]]&lt;br /&gt;
[[Категория:Незавершённые статьи]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=406</id>
		<title>Uvesafb</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=Uvesafb&amp;diff=406"/>
		<updated>2012-03-15T23:12:10Z</updated>

		<summary type="html">&lt;p&gt;Langator: &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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;pacman -S v86d&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc. &lt;br /&gt;
&lt;br /&gt;
= Настройка uvesafb  =&lt;br /&gt;
&lt;br /&gt;
#Удалите любые параметры ядра, относящиеся к настройке фреймбуфера: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux).&lt;br /&gt;
#Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации ''Ctrl+Alt+Del''. Для карт Intel укажите в конфиг-файле Grub`a параметр &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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # В этом файле задаются параметры uvesafb.&lt;br /&gt;
 # Используется следующий формат: &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;
 options uvesafb mode=1280x800-32 scroll=ywrap&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
C 2.6.27 и выше строчка options должна выглядеть так: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;options uvesafb mode_option=1280x800-32 scroll=ywrap&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для получения списков поддерживаемых режимов экрана наберите &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Настройка обработчиков (HOOKS)   ==&lt;br /&gt;
&lt;br /&gt;
Добавьте v86d в строку HOOKS содержащую обработчики используемые при создании initramfs образа. Строка имеет следующий формат: &lt;br /&gt;
{{file|/etc/mkinitcpio.conf|&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
HOOKS=&amp;quot;base udev v86d ...&amp;quot;&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Если вы хотите перегенерировать initramfs образ, используйте команду:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mkinitcpio -p linux&amp;lt;/source&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mkinitcpio -p kernel26&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Возможные проблемы=&lt;br /&gt;
== Uvesafb cannot reserve memory ==&lt;br /&gt;
Скорее всего Вы забыли удалить &amp;quot;vga=xxx&amp;quot;, из-за чего происходит конфликт между uvesafb и vesafb&lt;br /&gt;
&lt;br /&gt;
== pci_root PNP0A08:00 address space collision + Uvesafb cannot reserve memory ==&lt;br /&gt;
Даже без другого фреймбуфера, uvesafb не может зарезервировать необходимую область памяти.&lt;br /&gt;
Вы можете исправить эту проблему, добавив следующие параметры ядра в конфигурацию вашего загрузчика.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;pci=nocrs&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Руководства]]&lt;br /&gt;
[[Категория:Графика]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=MediaWiki:Edittools&amp;diff=405</id>
		<title>MediaWiki:Edittools</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=MediaWiki:Edittools&amp;diff=405"/>
		<updated>2012-03-10T11:28:45Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;editpage-specialchars&amp;quot; style=&amp;quot;margin-top:1px;border:1px solid #aaa;padding:2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;border-bottom:1px dotted gray; cursor:help&amp;quot; title=&amp;quot;Эти ссылки служат для быстрой вставки разметки в окно редактирования&amp;quot;&amp;gt;&amp;lt;small&amp;gt;Быстрая вставка&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;: &amp;lt;span style=&amp;quot;font-size:1.3em&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt; «+» „+“ — … |&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;amp;#123;{+}} [[+]] [+] [[|+]] &amp;amp;#123;{+|}} &amp;lt;nowiki&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;amp;&amp;lt;/nowiki&amp;gt;nbsp;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;amp;nbsp;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;#REDIRECT [[&amp;lt;/nowiki&amp;gt;+]]&amp;lt;/charinsert&amp;gt; &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:smaller;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;&amp;gt;+&amp;lt;/&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;!-- +--&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;u&amp;gt;+&amp;lt;/u&amp;gt; &amp;lt;s&amp;gt;+&amp;lt;/s&amp;gt; &amp;lt;small&amp;gt;+&amp;lt;/small&amp;gt; &amp;lt;big&amp;gt;+&amp;lt;/big&amp;gt; &amp;lt;sub&amp;gt;+&amp;lt;/sub&amp;gt; &amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; &amp;lt;blockquote&amp;gt;+&amp;lt;/blockquote&amp;gt; &amp;lt;math&amp;gt;+&amp;lt;/math&amp;gt; &amp;lt;gallery&amp;gt;+&amp;lt;/gallery&amp;gt; &amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt; &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt; &amp;lt;/nowiki&amp;gt;+&amp;lt;/source&amp;gt; &amp;lt;pre&amp;gt;+&amp;lt;/pre&amp;gt; &amp;amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; &amp;lt;includeonly&amp;gt;+&amp;lt;/includeonly&amp;gt; &amp;lt;noinclude&amp;gt;+&amp;lt;/noinclude&amp;gt;&amp;lt;/charinsert&amp;gt; &lt;br /&gt;
&amp;lt;charinsert&amp;gt;__NOTOC__ __TOC__ __FORCETOC__&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разделы:&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== + ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;=== + ===&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;=== Итог ===&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{подст:Служебные разделы}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== См. также ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Примечания ==&amp;amp;#10;&amp;amp;#123;{примечания}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Литература ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Ссылки ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Шаблоны:&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;amp;#123;{tl|+}} &amp;amp;#123;{lang-en|+}} &amp;amp;#123;{ref-en}} &amp;amp;#123;{unicode|+}} &amp;amp;#123;{заготовка}} &amp;amp;#123;{неоднозначность}} &amp;amp;#123;{викифицировать}} &amp;amp;#123;{чистить}} &amp;amp;#123;{достоверность}} &amp;amp;#123;{rq|+}}&amp;lt;/charinsert&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{нет категорий}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{нет интервики}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{нет иллюстраций}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{Нарушение авторских прав|url=&amp;lt;/nowiki&amp;gt;+}}&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{подст:Предложение к удалению}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{закрыто}}+&amp;amp;#123;{закрыто-конец}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{начало цитаты}}+&amp;amp;#123;{конец цитаты|источник=}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Символы:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;‘ “ ’ ” ~ # @ § ¶ № • · ← ↖ ↑ ↗ → ↘ ↓ ↙ ↔ ↕ ¡ ¿ \ ½ ¼ ¾ ≈ ≠ ±  − × ÷ ° ^ ¹ ² ³ € £ ¥ $ ¢ † © ® ™&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;span title=&amp;quot;Знак ударения, ставится после ударной гласной&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt; &amp;amp;#123;{подст:ударение}}&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Греческий алфавит:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt; Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι Ϊ ι ϊ Κ κ Λ λ Μ μ Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ Ϋ υ ϋ Φ φ Χ χ Ψ ψ Ω ω &amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table id=&amp;quot;edittools-table&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;120px&amp;quot; &amp;gt;&amp;lt;u&amp;gt;Быстрая вставка:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.5em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;'''Ж''': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;'''+'''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
''К'': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;''+''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/small&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; «+» „+“ — … |  &amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;+}}&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;+]]&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;ссылка'''|'''&amp;lt;nowiki&amp;gt;]]&amp;lt;/nowiki&amp;gt;:&amp;lt;/small&amp;gt; &amp;lt;charinsert&amp;gt;[[+|]]&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;'''|'''лейбл&amp;lt;nowiki&amp;gt;]]&amp;lt;/nowiki&amp;gt;:&amp;lt;/small&amp;gt; &amp;lt;charinsert&amp;gt;[[|+]]&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;внешняя ссылка&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;:&amp;lt;/small&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;+]&amp;lt;/charinsert&amp;gt; • &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;#REDIRECT [[&amp;lt;/nowiki&amp;gt;+]]&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;amp;nbsp;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;br clear=both/&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
{{#switch:{{NAMESPACE}}|{{TALKSPACE}}|Lurkmore='''Подписи:''' &amp;lt;small&amp;gt;Подпись IP или [[ник]]ом:&amp;lt;/small&amp;gt;&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;—~~~&amp;lt;/charinsert&amp;gt; &amp;lt;small&amp;gt;С датой:&amp;lt;/small&amp;gt;&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;—~~~~&amp;lt;/charinsert&amp;gt; &amp;lt;small&amp;gt;Только датой:&amp;lt;/small&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;—~~~~~&amp;lt;/charinsert&amp;gt; · &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;[[Участник:+]]&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;—''Анонимус''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;—''Мимо проходил''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
|#default=}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;u&amp;gt;Разметка:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
'''&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;== + ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;''' • &lt;br /&gt;
'''&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;=== + ===&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;''' • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Примечания ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;references /&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== См. также ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Ссылки ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;[[Категория:+]]&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Ж''': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;'''+'''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
''К'': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;''+''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;П&amp;lt;/u&amp;gt;: &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;u&amp;gt;+&amp;lt;/u&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;sup&amp;gt;надстр:&amp;lt;/sup&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;sub&amp;gt;подстр:&amp;lt;/sub&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;sub&amp;gt;+&amp;lt;/sub&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;&amp;gt;+&amp;lt;/&amp;gt; &amp;lt;span&amp;gt;+&amp;lt;/span&amp;gt; &amp;lt;div&amp;gt;+&amp;lt;/div&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;!-- +&amp;lt;/nowiki&amp;gt;--&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;+&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;br clear=both/&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;__TOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;__NOTOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;TOCright}}&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;DEFAULTSORT:}}&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;PAGENAME}}&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;+&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;{{#switch:{{NAMESPACE}}|Шаблон|Участник=&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;u&amp;gt;Разметка шаблона:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;+&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;includeonly&amp;gt;+&amp;lt;/includeonly&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{doc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{docpage}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{#if:+||}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{#ifeq:+||}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{#switch:+|=|#default=}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{lc:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{lcfirst:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{uc:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{ucfirst:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{NAMESPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;	&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{TALKSPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{1}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{2}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{3}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{1|+}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{2|+}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{3|+}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;u&amp;gt;Цитирование:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; •&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; •&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; •&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;[[MediaWiki:Edittools|Редактировать]]&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=MediaWiki:Edittools&amp;diff=404</id>
		<title>MediaWiki:Edittools</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=MediaWiki:Edittools&amp;diff=404"/>
		<updated>2012-03-10T11:26:55Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;editpage-specialchars&amp;quot; style=&amp;quot;margin-top:1px;border:1px solid #aaa;padding:2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;border-bottom:1px dotted gray; cursor:help&amp;quot; title=&amp;quot;Эти ссылки служат для быстрой вставки разметки в окно редактирования&amp;quot;&amp;gt;&amp;lt;small&amp;gt;Быстрая вставка&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;: &amp;lt;span style=&amp;quot;font-size:1.3em&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt; «+» „+“ — … |&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;amp;#123;{+}} [[+]] [+] [[|+]] &amp;amp;#123;{+|}} &amp;lt;nowiki&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;amp;&amp;lt;/nowiki&amp;gt;nbsp;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;amp;nbsp;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;#REDIRECT [[&amp;lt;/nowiki&amp;gt;+]]&amp;lt;/charinsert&amp;gt; &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:smaller;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;&amp;gt;+&amp;lt;/&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;!-- +--&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;u&amp;gt;+&amp;lt;/u&amp;gt; &amp;lt;s&amp;gt;+&amp;lt;/s&amp;gt; &amp;lt;small&amp;gt;+&amp;lt;/small&amp;gt; &amp;lt;big&amp;gt;+&amp;lt;/big&amp;gt; &amp;lt;sub&amp;gt;+&amp;lt;/sub&amp;gt; &amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; &amp;lt;blockquote&amp;gt;+&amp;lt;/blockquote&amp;gt; &amp;lt;math&amp;gt;+&amp;lt;/math&amp;gt; &amp;lt;gallery&amp;gt;+&amp;lt;/gallery&amp;gt; &amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt; &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt; &amp;lt;/nowiki&amp;gt;+&amp;lt;/source&amp;gt; &amp;lt;pre&amp;gt;+&amp;lt;/pre&amp;gt; &amp;amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; &amp;lt;includeonly&amp;gt;+&amp;lt;/includeonly&amp;gt; &amp;lt;noinclude&amp;gt;+&amp;lt;/noinclude&amp;gt;&amp;lt;/charinsert&amp;gt; &lt;br /&gt;
&amp;lt;charinsert&amp;gt;__NOTOC__ __TOC__ __FORCETOC__&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разделы:&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== + ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;=== + ===&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;=== Итог ===&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{подст:Служебные разделы}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== См. также ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Примечания ==&amp;amp;#10;&amp;amp;#123;{примечания}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Литература ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Ссылки ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Шаблоны:&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;amp;#123;{tl|+}} &amp;amp;#123;{lang-en|+}} &amp;amp;#123;{ref-en}} &amp;amp;#123;{unicode|+}} &amp;amp;#123;{заготовка}} &amp;amp;#123;{неоднозначность}} &amp;amp;#123;{викифицировать}} &amp;amp;#123;{чистить}} &amp;amp;#123;{достоверность}} &amp;amp;#123;{rq|+}}&amp;lt;/charinsert&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{нет категорий}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{нет интервики}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{нет иллюстраций}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{Нарушение авторских прав|url=&amp;lt;/nowiki&amp;gt;+}}&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{подст:Предложение к удалению}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{закрыто}}+&amp;amp;#123;{закрыто-конец}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{начало цитаты}}+&amp;amp;#123;{конец цитаты|источник=}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Символы:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;‘ “ ’ ” ~ # @ § ¶ № • · ← ↖ ↑ ↗ → ↘ ↓ ↙ ↔ ↕ ¡ ¿ \ ½ ¼ ¾ ≈ ≠ ±  − × ÷ ° ^ ¹ ² ³ € £ ¥ $ ¢ † © ® ™&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;span title=&amp;quot;Знак ударения, ставится после ударной гласной&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt; &amp;amp;#123;{подст:ударение}}&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Греческий алфавит:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt; Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι Ϊ ι ϊ Κ κ Λ λ Μ μ Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ Ϋ υ ϋ Φ φ Χ χ Ψ ψ Ω ω &amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table id=&amp;quot;edittools-table&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;120px&amp;quot; &amp;gt;&amp;lt;u&amp;gt;Быстрая вставка:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.5em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;'''Ж''': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;'''+'''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
''К'': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;''+''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/small&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; «+» „+“ — … |  &amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;+}}&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;+]]&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;ссылка'''|'''&amp;lt;nowiki&amp;gt;]]&amp;lt;/nowiki&amp;gt;:&amp;lt;/small&amp;gt; &amp;lt;charinsert&amp;gt;[[+|]]&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;'''|'''лейбл&amp;lt;nowiki&amp;gt;]]&amp;lt;/nowiki&amp;gt;:&amp;lt;/small&amp;gt; &amp;lt;charinsert&amp;gt;[[|+]]&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;внешняя ссылка&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;:&amp;lt;/small&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;+]&amp;lt;/charinsert&amp;gt; • &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;#REDIRECT [[&amp;lt;/nowiki&amp;gt;+]]&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;amp;nbsp;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;br clear=both/&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
{{#switch:{{NAMESPACE}}|{{TALKSPACE}}|Lurkmore='''Подписи:''' &amp;lt;small&amp;gt;Подпись IP или [[ник]]ом:&amp;lt;/small&amp;gt;&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;—~~~&amp;lt;/charinsert&amp;gt; &amp;lt;small&amp;gt;С датой:&amp;lt;/small&amp;gt;&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;—~~~~&amp;lt;/charinsert&amp;gt; &amp;lt;small&amp;gt;Только датой:&amp;lt;/small&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;—~~~~~&amp;lt;/charinsert&amp;gt; · &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;[[Участник:+]]&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;—''Анонимус''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;—''Мимо проходил''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
|#default=}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;u&amp;gt;Разметка:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
'''&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;== + ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;''' • &lt;br /&gt;
'''&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;=== + ===&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;''' • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Примечания ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;references /&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== См. также ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Ссылки ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;[[Категория:+]]&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Ж''': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;'''+'''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
''К'': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;''+''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;П&amp;lt;/u&amp;gt;: &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;u&amp;gt;+&amp;lt;/u&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;sup&amp;gt;надстр:&amp;lt;/sup&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;sub&amp;gt;подстр:&amp;lt;/sub&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;sub&amp;gt;+&amp;lt;/sub&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;&amp;gt;+&amp;lt;/&amp;gt; &amp;lt;span&amp;gt;+&amp;lt;/span&amp;gt; &amp;lt;div&amp;gt;+&amp;lt;/div&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;!-- +&amp;lt;/nowiki&amp;gt;--&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;+&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;br clear=both/&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;__TOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;__NOTOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;TOCright}}&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;DEFAULTSORT:}}&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;PAGENAME}}&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;+&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;{{#switch:{{NAMESPACE}}|Шаблон|Участник=&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;u&amp;gt;Разметка шаблона:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;+&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;includeonly&amp;gt;+&amp;lt;/includeonly&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{doc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{docpage}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{#if:+||}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{#ifeq:+||}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{#switch:+|=|#default=}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{lc:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{lcfirst:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{uc:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{ucfirst:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{NAMESPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;	&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{TALKSPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{1}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{2}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{3}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{1|+}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{2|+}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{3|+}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;u&amp;gt;Цитирование:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; •&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; •&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; •&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;[[MediaWiki:Edittools|Редактировать]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=MediaWiki:Edittools&amp;diff=403</id>
		<title>MediaWiki:Edittools</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=MediaWiki:Edittools&amp;diff=403"/>
		<updated>2012-03-10T10:05:35Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;editpage-specialchars&amp;quot; style=&amp;quot;margin-top:1px;border:1px solid #aaa;padding:2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;border-bottom:1px dotted gray; cursor:help&amp;quot; title=&amp;quot;Эти ссылки служат для быстрой вставки разметки в окно редактирования&amp;quot;&amp;gt;&amp;lt;small&amp;gt;Быстрая вставка&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;: &amp;lt;span style=&amp;quot;font-size:1.3em&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt; «+» „+“ — … |&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;amp;#123;{+}} [[+]] [+] [[|+]] &amp;amp;#123;{+|}} &amp;lt;nowiki&amp;gt; &amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;amp;&amp;lt;/nowiki&amp;gt;nbsp;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;amp;nbsp;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;#REDIRECT [[&amp;lt;/nowiki&amp;gt;+]]&amp;lt;/charinsert&amp;gt; &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:smaller;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;&amp;gt;+&amp;lt;/&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;!-- +--&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;u&amp;gt;+&amp;lt;/u&amp;gt; &amp;lt;s&amp;gt;+&amp;lt;/s&amp;gt; &amp;lt;small&amp;gt;+&amp;lt;/small&amp;gt; &amp;lt;big&amp;gt;+&amp;lt;/big&amp;gt; &amp;lt;sub&amp;gt;+&amp;lt;/sub&amp;gt; &amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; &amp;lt;blockquote&amp;gt;+&amp;lt;/blockquote&amp;gt; &amp;lt;math&amp;gt;+&amp;lt;/math&amp;gt; &amp;lt;gallery&amp;gt;+&amp;lt;/gallery&amp;gt; &amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt; &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt; &amp;lt;/nowiki&amp;gt;+&amp;lt;/source&amp;gt; &amp;lt;pre&amp;gt;+&amp;lt;/pre&amp;gt; &amp;amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; &amp;lt;includeonly&amp;gt;+&amp;lt;/includeonly&amp;gt; &amp;lt;noinclude&amp;gt;+&amp;lt;/noinclude&amp;gt;&amp;lt;/charinsert&amp;gt; &lt;br /&gt;
&amp;lt;charinsert&amp;gt;__NOTOC__ __TOC__ __FORCETOC__&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разделы:&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== + ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;=== + ===&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;=== Итог ===&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{подст:Служебные разделы}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== См. также ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Примечания ==&amp;amp;#10;&amp;amp;#123;{примечания}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Литература ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;amp;nbsp; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Ссылки ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Шаблоны:&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;amp;#123;{tl|+}} &amp;amp;#123;{lang-en|+}} &amp;amp;#123;{ref-en}} &amp;amp;#123;{unicode|+}} &amp;amp;#123;{заготовка}} &amp;amp;#123;{неоднозначность}} &amp;amp;#123;{викифицировать}} &amp;amp;#123;{чистить}} &amp;amp;#123;{достоверность}} &amp;amp;#123;{rq|+}}&amp;lt;/charinsert&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{нет категорий}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{нет интервики}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{нет иллюстраций}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{Нарушение авторских прав|url=&amp;lt;/nowiki&amp;gt;+}}&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{подст:Предложение к удалению}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{закрыто}}+&amp;amp;#123;{закрыто-конец}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#123;{начало цитаты}}+&amp;amp;#123;{конец цитаты|источник=}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Символы:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;‘ “ ’ ” ~ # @ § ¶ № • · ← ↖ ↑ ↗ → ↘ ↓ ↙ ↔ ↕ ¡ ¿ \ ½ ¼ ¾ ≈ ≠ ±  − × ÷ ° ^ ¹ ² ³ € £ ¥ $ ¢ † © ® ™&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;span title=&amp;quot;Знак ударения, ставится после ударной гласной&amp;quot;&amp;gt;&amp;lt;charinsert&amp;gt; &amp;amp;#123;{подст:ударение}}&amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Греческий алфавит:&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt; Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι Ϊ ι ϊ Κ κ Λ λ Μ μ Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ Ϋ υ ϋ Φ φ Χ χ Ψ ψ Ω ω &amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table id=&amp;quot;edittools-table&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;120px&amp;quot; &amp;gt;&amp;lt;u&amp;gt;Быстрая вставка:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 1.5em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;'''Ж''': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;'''+'''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
''К'': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;''+''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&amp;lt;/small&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; «+» „+“ — … |  &amp;lt;/charinsert&amp;gt;&amp;lt;/span&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;+}}&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;+]]&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;ссылка'''|'''&amp;lt;nowiki&amp;gt;]]&amp;lt;/nowiki&amp;gt;:&amp;lt;/small&amp;gt; &amp;lt;charinsert&amp;gt;[[+|]]&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;'''|'''лейбл&amp;lt;nowiki&amp;gt;]]&amp;lt;/nowiki&amp;gt;:&amp;lt;/small&amp;gt; &amp;lt;charinsert&amp;gt;[[|+]]&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;внешняя ссылка&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;:&amp;lt;/small&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;+]&amp;lt;/charinsert&amp;gt; • &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;#REDIRECT [[&amp;lt;/nowiki&amp;gt;+]]&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;amp;nbsp;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;br clear=both/&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
{{#switch:{{NAMESPACE}}|{{TALKSPACE}}|Lurkmore='''Подписи:''' &amp;lt;small&amp;gt;Подпись IP или [[ник]]ом:&amp;lt;/small&amp;gt;&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;—~~~&amp;lt;/charinsert&amp;gt; &amp;lt;small&amp;gt;С датой:&amp;lt;/small&amp;gt;&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;—~~~~&amp;lt;/charinsert&amp;gt; &amp;lt;small&amp;gt;Только датой:&amp;lt;/small&amp;gt;&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;—~~~~~&amp;lt;/charinsert&amp;gt; · &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;[[Участник:+]]&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;—''Анонимус''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;—''Мимо проходил''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
|#default=}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;u&amp;gt;Разметка:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
'''&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;== + ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;''' • &lt;br /&gt;
'''&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;=== + ===&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;''' • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Примечания ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;references /&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== См. также ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;== Ссылки ==&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;[[Категория:+]]&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Ж''': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;'''+'''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
''К'': &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;''+''&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;П&amp;lt;/u&amp;gt;: &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;u&amp;gt;+&amp;lt;/u&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;sup&amp;gt;надстр:&amp;lt;/sup&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;sub&amp;gt;подстр:&amp;lt;/sub&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;sub&amp;gt;+&amp;lt;/sub&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;&amp;gt;+&amp;lt;/&amp;gt; &amp;lt;span&amp;gt;+&amp;lt;/span&amp;gt; &amp;lt;div&amp;gt;+&amp;lt;/div&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;!-- +&amp;lt;/nowiki&amp;gt;--&amp;gt;&amp;lt;/charinsert&amp;gt; &amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;+&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;br clear=both/&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;__TOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;__NOTOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;TOCright}}&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;DEFAULTSORT:}}&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt; &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;PAGENAME}}&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;+&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;{{#switch:{{NAMESPACE}}|Шаблон|Участник=&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;u&amp;gt;Разметка шаблона:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;+&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;includeonly&amp;gt;+&amp;lt;/includeonly&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{doc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{docpage}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{#if:+||}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{#ifeq:+||}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{#switch:+|=|#default=}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{lc:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{lcfirst:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{uc:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{ucfirst:+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{NAMESPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;	&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{TALKSPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{1}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{2}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{3}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{1|+}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{2|+}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;{{{3|+}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
|}}&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;u&amp;gt;Цитирование:&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot; class=&amp;quot;editt&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; • &lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; •&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; •&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt; •&lt;br /&gt;
&amp;lt;charinsert&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;+&amp;lt;/source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/charinsert&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</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=402</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=402"/>
		<updated>2012-02-08T20:02:02Z</updated>

		<summary type="html">&lt;p&gt;Langator: Защищена страница «Заглавная страница» ([edit=sysop] (бессрочно) [move=sysop] (бессрочно))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div  ALIGN=JUSTIFY&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:57%; padding-right: 3%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--############ == О проекте Ай Да Linux == #############--&amp;gt;&lt;br /&gt;
== О проекте Ай Да Linux ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;[[File:Larry-hi.png|moo|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Главная страница}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-----########### == Getting started == #############-----&amp;gt;&lt;br /&gt;
== Getting started ==&lt;br /&gt;
Вы можете редактировать и создавать страницы на этой Wiki.&lt;br /&gt;
&lt;br /&gt;
Для навигации по сайту можно воспользоваться поиском, посмотреть [[Служебная:AllPages|все]] имеющиеся статьи или [[%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Random|случайную]].&lt;br /&gt;
Прежде чем редактировать или создавать новые страницы, пожалуйста, обратитесь к [[Справка:Содержание|справке]]. Так же можно заглянуть в [http://meta.wikimedia.org/wiki/Help:Contents MediaWiki User's Guide] содержащий информацию о работе wiki.&lt;br /&gt;
&lt;br /&gt;
Если у Вас возникнут какие-либо вопросы, Вы всегда можете написать нам по адресу [mailto:aidalinux@gmail.com aidalinux@gmail.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 40%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-----------------  == News ==  ---------------------------&amp;gt;&lt;br /&gt;
== News ==&lt;br /&gt;
{{News|17.12.2011|Добро пожаловать на Ай Да Linux Wiki|&lt;br /&gt;
Идет активное формирование главной страницы  Wiki, пожелания и предложения оставляйте на [[%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%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 | странице обсуждения]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--#########== Недавно добавленные страницы ==###########--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Недавно добавленные страницы ==&lt;br /&gt;
{{Special:NewPages/5}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5_%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%88%D0%B8_%D0%B2_VIM&amp;diff=383</id>
		<title>Русские клавиши в VIM</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5_%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%88%D0%B8_%D0%B2_VIM&amp;diff=383"/>
		<updated>2011-12-24T17:57:16Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Часто возникает вопрос - как не переключая раскладки на английский давать команды vim.   {{file ...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Часто возникает вопрос - как не переключая раскладки на английский давать команды vim. &lt;br /&gt;
&lt;br /&gt;
{{file | $vim ~/.vimrc | &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ъ],фa,ыs,вd,аf,пg,рh,оj,лk,дl,э',яz,чx,сc,мv,иb,тn,ьm,б\,,ю.,ё`,ЙQ,ЦW,УE,КR,ЕT,НY,ГU,ШI,ЩO,ЗP,Х{,Ъ},ФA,ЫS,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Э\&amp;quot;,ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б\&amp;lt;,Ю\&amp;gt;,Ё\~&lt;br /&gt;
&amp;lt;/source&amp;gt; }}&lt;br /&gt;
Подробнее: &lt;br /&gt;
 :help langmap&lt;br /&gt;
&lt;br /&gt;
==Найдено==&lt;br /&gt;
Рассылка debian-russian@lists.debian.org&lt;br /&gt;
&lt;br /&gt;
== Недостатки ==&lt;br /&gt;
К сожалению, это работает только с 8-битовыми кодировками, но не с юникодом. Чтобы работало с юникодом необходимо использовать [http://lostclus.linux.kiev.ua/Другие_работы/Патчи патч для Vim] Константина Корикова.&lt;/div&gt;</summary>
		<author><name>Langator</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=382</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=382"/>
		<updated>2011-12-24T17:49:59Z</updated>

		<summary type="html">&lt;p&gt;Langator: /* Недавно добавленные страницы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div  ALIGN=JUSTIFY&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:57%; padding-right: 3%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--############ == О проекте Ай Да Linux == #############--&amp;gt;&lt;br /&gt;
== О проекте Ай Да Linux ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;[[File:Larry-hi.png|moo|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Главная страница}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-----########### == Getting started == #############-----&amp;gt;&lt;br /&gt;
== Getting started ==&lt;br /&gt;
Вы можете редактировать и создавать страницы на этой Wiki.&lt;br /&gt;
&lt;br /&gt;
Для навигации по сайту можно воспользоваться поиском, посмотреть [[Служебная:AllPages|все]] имеющиеся статьи или [[%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Random|случайную]].&lt;br /&gt;
Прежде чем редактировать или создавать новые страницы, пожалуйста, обратитесь к [[Справка:Содержание|справке]]. Так же можно заглянуть в [http://meta.wikimedia.org/wiki/Help:Contents MediaWiki User's Guide] содержащий информацию о работе wiki.&lt;br /&gt;
&lt;br /&gt;
Если у Вас возникнут какие-либо вопросы, Вы всегда можете написать нам по адресу [mailto:aidalinux@gmail.com aidalinux@gmail.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 40%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-----------------  == News ==  ---------------------------&amp;gt;&lt;br /&gt;
== News ==&lt;br /&gt;
{{News|17.12.2011|Добро пожаловать на Ай Да Linux Wiki|&lt;br /&gt;
Идет активное формирование главной страницы  Wiki, пожелания и предложения оставляйте на [[%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%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 | странице обсуждения]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--#########== Недавно добавленные страницы ==###########--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Недавно добавленные страницы ==&lt;br /&gt;
{{Special:NewPages/5}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:IPstack&amp;diff=381</id>
		<title>Шаблон:IPstack</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:IPstack&amp;diff=381"/>
		<updated>2011-12-24T17:48:10Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;margin:15px;margin-top:0px;padding:0px;border: 2px solid #aaa;background:#efefef;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;'''[[Сетевые протоколы индекс|Сетевые протоколы]] '''&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr align=left bgcolor=&amp;quot;#CCCCFF&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;td bgcolor=&amp;quot;#FFEECC&amp;quot;&amp;gt;[[Сетевые протоколы индекс#Протоколы уровня приложения|Прикладной уровень]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[HTTP]], [[SMTP]], [[SSH]], [[SNMP]], [[FTP]], [[NNTP]], [[NTP]], [[LDAP]],  ...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr align=left bgcolor=&amp;quot;#CCCCFF&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;td bgcolor=&amp;quot;#FFEECC&amp;quot;&amp;gt;[[Сетевые протоколы индекс#Протоколы сеансового уровня|Сеансовый уровень]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[TLS]], [[SSL]], [[RPC]], [[WSP]]...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr align=left bgcolor=&amp;quot;#CCCCFF&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;td bgcolor=&amp;quot;#FFEECC&amp;quot;&amp;gt;[[Сетевые протоколы индекс#Протоколы транспортного уровня|Транспортный уровень]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[TCP]], [[UDP]], [[SCTP]], [[ICMP]], [[OSPF]], [[RSVP]], [[VRRP]], [[RTP]], [[DCCP]] ...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr align=left bgcolor=&amp;quot;#CCCCFF&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;td bgcolor=&amp;quot;#FFEECC&amp;quot;&amp;gt;[[Сетевые протоколы индекс#Протоколы сетевого уровня|Сетевой уровень]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[IP|IPv4]], [[IPv6]], [[ARP]], [[RARP]], [[MPLS]], [[IPX]] ...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr align=left bgcolor=&amp;quot;#EEEEFF&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;td bgcolor=&amp;quot;#FFFFEE&amp;quot;&amp;gt;[[Сетевые протоколы индекс#Протоколы канального уровня|Канальный уровень]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Ethernet]], [[IEEE 802|802.11]], [[DSL|xDSL]], [[Fibre Channel]], [[FDDI]], [[ATM]], [[ISDN]] ...&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D0%B0%D1%8F_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_iptables&amp;diff=380</id>
		<title>Подробная настройка iptables</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D0%B0%D1%8F_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_iptables&amp;diff=380"/>
		<updated>2011-12-24T17:47:01Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Category:Руководства ==Введение== Документация по iptables в сети не рассчитана на новичков. В эт...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Руководства]]&lt;br /&gt;
==Введение==&lt;br /&gt;
Документация по iptables в сети не рассчитана на новичков. В этой статье будет сжато и быстро описаны команды, затем, возможно, будут правки и добавления для расширенного обьяснения. Так что это будет минимальная установка которую мы в дальнейшем расширим и упрочним с помощью правил.&lt;br /&gt;
:Так же примите во внимание, что будет использовано pppoe соединение и 2.6.x ядро. Для настройки сетевой карты надо будет заменить '''ppp0''' на '''eth0''' (или подходящий по смыслу ваш сетевой интерфейс глядящий в интернет)&lt;br /&gt;
&lt;br /&gt;
===Прежде чем двигаться дальше - убедитесь, что ...===&lt;br /&gt;
:* 1.Всё ваше аппаратное обеспечение работоспособно. То есть вы все подключили, модули грузятся, устройства видны в системе. Полезно вначале проверить, что соединение с интернетом возможно и без всяких там iptables. Нет ничего хуже, чем в течение многих часов возиться с упрямой программой, ругая её почём зря, а потом понять, что сетевая плата не работает или модем сконфигурирован неправильно.&lt;br /&gt;
:* 2.Вы читали маны по теме. Предполагается, что, пока вы изучаете это руководство, man iptables постоянно открыт в соседнем терминале для точного понимания и уточнения, что же та или иная команда означает на самом деле.&lt;br /&gt;
:* 3.Вы имеете представление о сетевых технологиях и Вы знакомы с администрированием Linux и Gentoo Linux в частности. То есть необходимы навыки работы с такими базовыми вещами как [[ifconfig]], [[rc-update]], {{Path|/etc/conf.d/net}}, и так далее. Если для вас это пока пустые звуки, то, пожалуйста предварительно изучите [http://www.gentoo.org/doc/en/handbook/index.xml The Gentoo Handbook] и [http://www.linuxhelp.ca/guides/networkbasics/ Linux Help's Networking Basics 101]&lt;br /&gt;
&lt;br /&gt;
===Конфигурация ядра===&lt;br /&gt;
Все что вам нужно - это включить поддержку iptables.&lt;br /&gt;
{{Kernel|Включение IPTables|&lt;br /&gt;
 Device Drivers---&amp;gt;&lt;br /&gt;
  Networking Support---&amp;gt;&lt;br /&gt;
   Networking Options----&amp;gt;&lt;br /&gt;
    Network Packet Filtering (replace Ipchains)---&amp;gt;&lt;br /&gt;
     Netfilter Configuration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Kernel|Включение IPTables (kernel 2.6.35)|&lt;br /&gt;
 -&amp;gt; Networking support&lt;br /&gt;
   -&amp;gt; Networking options &lt;br /&gt;
     -&amp;gt; Network packet filtering framework (Netfilter)&lt;br /&gt;
       -&amp;gt; Core Netfilter Configuration}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Я включил все опции как модули (с тем рассчетом, что я захочу попробовать другие опции позже) и добавил ip_tables в modules.autoload. Это загрузит еще несколько модулей в качестве зависимостей. Модуль ip_conntrack необходим для &amp;quot;statefull&amp;quot; фильтрования, то есть для отслеживания соединений. Для запуска скриптов выполните команду :&lt;br /&gt;
&lt;br /&gt;
{{Codeline|# modprobe ip_tables}}&lt;br /&gt;
&lt;br /&gt;
===Необходимые утилиты===&lt;br /&gt;
Далее вы должны установить пакет iptables:&lt;br /&gt;
&lt;br /&gt;
{{Codeline|# emerge iptables}}&lt;br /&gt;
&lt;br /&gt;
===Конфигурация интерфейсов===&lt;br /&gt;
{{IPstack}}&lt;br /&gt;
В моем случае имеется 3 сетевых адаптера. Один подключен к [[WAN]] через pppoe. Другие два - к моей внутренней сети. Для того, чтобы не было проблем с iptables и маскардингом ([[NAT]]'ом), они должны быть сконфигурированы для различных подсетей. Для примера, 2 сетевых адаптера подключены к моим внутренним компьютерам  (внутренние сетевые интерфейсы). Им присвоены IP-адреса: 192.168.1.1 и 192.168.2.1. &lt;br /&gt;
&lt;br /&gt;
Следует заметить, что будет лучше если подключать эти внутренние адаптеры в любое сетевое устройство, такие как свитч и хаб. Для pppoe подключений мы должны убедиться, что сетевой адаптер подключен к внешнему миру, то есть внешним интерфейсам не присвоены никакие IP-адреса. Его запись в {{Path|/etc/conf.d/net}} должна оставаться пустой. Это делается потому, что pppoe выступает в качестве виртуального устройства, которое включается вслед за сетевым интерфейсом. Мы также должны присвоить правильные сетевые маски и широковещательные адреса для этих интерфейсов. Ваш {{Path|conf.d/}} должна выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
====Сервер====&lt;br /&gt;
{{File|/etc/conf.d/net|&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
 # Для pppoe подключений вы не должны указывать значения для ppp0, &lt;br /&gt;
 # просто добавьте net.ppp0 или rc-pppoe в default уровень загрузки.&lt;br /&gt;
 iface_eth1=&amp;quot;192.168.1.1 broadcast 192.168.1.255 netmask 255.255.255.0&amp;quot;&lt;br /&gt;
 iface_eth2=&amp;quot;192.168.2.1 broadcast 192.168.2.255 netmask 255.255.255.0&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
:Заметьте, что не было указано никаких шлюзов.&lt;br /&gt;
&lt;br /&gt;
====Клиент1====&lt;br /&gt;
{{File|/etc/conf.d/net|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt; &lt;br /&gt;
 iface_eth0=&amp;quot;192.168.1.77 broadcast 192.168.1.255 netmask 255.255.255.0&amp;quot;&lt;br /&gt;
 gateway=&amp;quot;eth0/192.168.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
====Клиент2====&lt;br /&gt;
{{File|/etc/conf.d/net|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 iface_eth0=&amp;quot;192.168.2.77 broadcast 192.168.2.255 netmask 255.255.255.0&amp;quot;&lt;br /&gt;
 gateway=&amp;quot;eth0/192.168.2.1&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
Шлюз для клиентов установлен на внутренний IP сетевого интерфейса сервера, что и логично. Теперь добавьте все интерфейсы в default уровень загрузки  и перезапустите подключения:&lt;br /&gt;
&lt;br /&gt;
{{Codeline| # rc-update add net.eth1 default &amp;amp;&amp;amp; rc-update add net.eth2 default &amp;amp;&amp;amp; rc-update add net.ppp0 default}}&lt;br /&gt;
&lt;br /&gt;
и&lt;br /&gt;
&lt;br /&gt;
{{Codeline|# /etc/init.d/net.eth1 start &amp;amp;&amp;amp; /etc/init.d/net.eth2 start &amp;amp;&amp;amp; /etc/init.d/net.ppp0 start}}&lt;br /&gt;
* Для клиентов:&lt;br /&gt;
{{Codeline|# /etc/init.d/net.eth0 restart}}&lt;br /&gt;
&lt;br /&gt;
===Проверка настроек===&lt;br /&gt;
Теперь убедитесь в том, что ваш сервер подключен к интернету, а также все интерфейсы могут пинговать друг друга.&lt;br /&gt;
Для сервера:&lt;br /&gt;
{{Code|ping|&lt;br /&gt;
 ping www.google.com; &lt;br /&gt;
 ping 192.168.1.77&lt;br /&gt;
 ping 192.168.2.77&lt;br /&gt;
}}&lt;br /&gt;
:Убедитесь что у клиентов правильно указаны [[DNS]]-сервера в {{Path|/etc/resolv.conf}}&lt;br /&gt;
&lt;br /&gt;
===Scripting===&lt;br /&gt;
:Теперь интересная часть... iptables и NAT(трансляция адресов). Для начала сделаем простое перенаправление адресов с минимальными правилами, чтобы убедиться что можем выходить в сеть.&lt;br /&gt;
 &lt;br /&gt;
{{Warning|Если вы параноик, то это не самое секретное, что можно сделать... мы открываемся в сеть с мизерной защитой. Однако будем считать, что сеть настраиваем для дома или для игрового класса.}}&lt;br /&gt;
&lt;br /&gt;
{{File|/var/lib/iptables/rules-save|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#!/bin/bash&lt;br /&gt;
IPTABLES='/sbin/iptables'&lt;br /&gt;
&lt;br /&gt;
# Определяем интерфейсы&lt;br /&gt;
EXTIF='ppp0'&lt;br /&gt;
INTIF1='eth1'&lt;br /&gt;
INTIF2='eth2'&lt;br /&gt;
&lt;br /&gt;
# Включаем форвардинг ip в ядре.&lt;br /&gt;
/bin/echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
# Сбросить правила и удалить цепочки &lt;br /&gt;
$IPTABLES -F&lt;br /&gt;
$IPTABLES -t nat -F&lt;br /&gt;
$IPTABLES -t mangle -F&lt;br /&gt;
$IPTABLES -X&lt;br /&gt;
$IPTABLES -t nat -X&lt;br /&gt;
$IPTABLES -t mangle -X&lt;br /&gt;
&lt;br /&gt;
# Включаем маскарадинг для разрешения доступа в интернет&lt;br /&gt;
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
# Форвардить сетевой трафик с $INTIF1 на интернетовский интерфейс $EXTIF&lt;br /&gt;
$IPTABLES -A FORWARD -i $INTIF1 -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Форвардить сетевой трафик с $INTIF2 на интернетовский интерфейс $EXTIF&lt;br /&gt;
$IPTABLES -A FORWARD -i $INTIF2 -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo -e &amp;quot;       - Разрешаем доступ к SSH серверу&amp;quot;&lt;br /&gt;
$IPTABLES -A INPUT --protocol tcp --dport 22 -j ACCEPT&lt;br /&gt;
#echo -e &amp;quot;       - Разрешаем доступ к HTTP серверу&amp;quot;&lt;br /&gt;
$IPTABLES -A INPUT --protocol tcp --dport 80 -j ACCEPT&lt;br /&gt;
# Блокируем все прочие попытки доступа на $EXTIF&lt;br /&gt;
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP&lt;br /&gt;
$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP&amp;lt;/source&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
==Проверка на работоспособность==&lt;br /&gt;
 {{Note| Этот скрипт написан кем-то в сетевом форуме... Адрес автора утерян, имя... В общем, спасибо ему, пусть и без имени. (Надеюсь, он не обидится).}}&lt;br /&gt;
:Теперь проверяем могут ли наши пользователи выйти в интернет или подключиться к серверу по ssh. Если все нормально, то можно переходить ниже по тексту. Если нет - проверьте синтаксические ошибки и прочее... Удостоверьтесь, что IP-адреса и маски клиентов и сервера введены правильно... Ну или...&lt;br /&gt;
:Если все работает, как задумали, сохраняем конфигурацию:&lt;br /&gt;
&lt;br /&gt;
{{Codeline|# /etc/init.d/iptables save}}&lt;br /&gt;
&lt;br /&gt;
:И бэкапим вашу рабочую конфигурацию для возможного восстановления &amp;quot;как было&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
{{Codeline|# cp /var/lib/iptables/rules-save /var/lib/iptables/rules.working}}&lt;br /&gt;
&lt;br /&gt;
:Проверим iptables start-up скрипт перед тем как добавить iptables в default runlevel:&lt;br /&gt;
&lt;br /&gt;
{{Code|Проверка скрипта|&lt;br /&gt;
# /etc/init.d/iptables start&lt;br /&gt;
# /etc/init.d/iptables stop &lt;br /&gt;
# /etc/init.d/iptables start}}&lt;br /&gt;
&lt;br /&gt;
:Смысл в запуске-остановке-запуске в том, что у нас нет скрипта запуска iptables... поэтому нужно “инициализировать” статус перед остановкой. Остановка, по существу, обнуляет настройки и возвращает все к исходному. Перезапуск покажет нам работает ли наша сеть после перезагрузки. Если все в порядке, то добавляем iptables в default runlevel:&lt;br /&gt;
&lt;br /&gt;
{{Codeline|rc-update add iptables default}}&lt;br /&gt;
&lt;br /&gt;
:Не забудем также установить в /etc/sysctl.conf:&lt;br /&gt;
&lt;br /&gt;
{{Codeline|&amp;lt;nowiki&amp;gt;net.ipv4.ip_forward = 1&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:Часть II рассматривает правила установок и политики для обороны Вашего маршрутизатора.&lt;br /&gt;
&lt;br /&gt;
==ЧАСТЬ III - Оборона Firewall==&lt;br /&gt;
:Далее мы сделаем наш, уже работающий файрвол безопасным, т.е. защищающим нашу систему от проникновений извне. На самом деле нам придется настроить файрвол таким образом, чтобы он не только защищал нас, но и защищал внешнюю сеть от нас. :) Защита такого рода является обязательной, она нужна для того, чтобы, в том случае, если наша система все-таки была взломана, взломщик не смог воспользоваться нашими ресурсами для дальнейшей атаки любого рода. Этот аспект является важнейшим в сетях класса SOHO, т.е. небольших офисах. Обыкновенно вирусы не оказывают никакого влияния на малые сети и заражение ими редко приводит к потере данных. Для нас, пользователей *nix, этой проблемы практически не существует. В любом случае, т.к. небольшие сети, как правило, защищены гораздо хуже больших, кракеры стараются использовать их в качестве “опорной базы” для DoS атак, или другой своей вредоносной активности.&lt;br /&gt;
:В последующем я опишу всю конфигурацию по кусочкам, дабы мы смогли бы проверить пошагово каждый фрагмент. Каждый шаг может потребовать от вас вставки чего-либо до, после или в середину указываемого скрипта. Все действия производятся так, чтобы (я надеюсь) ваша сеть не работала только лишь короткий промежуток времени во время настройки. Это сделано мною потому как я предположил что у многих из вас (таких как я) выделен сервер под Firewall. И так как я предпочитаю настраивать свой сервер через SSH, отключение сети может иметь пренеприятные посделствия, такие как ползания под столами или хуже того. Если же вы смелы, то вы можете скопировать скрипт в конце этого документа и запустить его на своей машине. Этот скрипт должен быть работоспособен на все сто, но тестировал я его только на своей машине, так что [http://lingvo.yandex.ru/en?text=YMMV ymmv].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Установка переменных окружения===&lt;br /&gt;
:Вы можете установить необходимые переменные окружения следующим скриптом:&lt;br /&gt;
&lt;br /&gt;
{{Code||&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Внешний интерфейс&lt;br /&gt;
EXTIF=&amp;quot;ppp0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Внутренний интерфейс&lt;br /&gt;
INTIF=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Loop device/localhost&lt;br /&gt;
LPDIF=&amp;quot;lo&amp;quot;&lt;br /&gt;
LPDIP=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
LPDMSK=&amp;quot;255.0.0.0&amp;quot;&lt;br /&gt;
LPDNET=&amp;quot;$LPDIP/$LPDMSK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Необходимые утилиты&lt;br /&gt;
IPT=&amp;quot;/sbin/iptables&amp;quot;&lt;br /&gt;
IFC=&amp;quot;/sbin/ifconfig&amp;quot;&lt;br /&gt;
G=&amp;quot;/bin/grep&amp;quot;&lt;br /&gt;
SED=&amp;quot;/bin/sed&amp;quot;&lt;br /&gt;
AWK=&amp;quot;/usr/bin/awk&amp;quot;&lt;br /&gt;
ECHO=&amp;quot;/bin/echo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Последующие команды могут работать некорректно при локализации.&lt;br /&gt;
&lt;br /&gt;
# Установка переменных окружения внешнего интерфейса&lt;br /&gt;
EXTIP=&amp;quot;`$IFC $EXTIF | $AWK /$EXTIF/'{next}//{split($0,a,&amp;quot;:&amp;quot;);split(a[2],a,&amp;quot; &amp;quot;);print a[1];exit}'`&amp;quot;&lt;br /&gt;
EXTBC=&amp;quot;255.255.255.255&amp;quot; &lt;br /&gt;
#EXTMSK=&amp;quot;`$IFC $EXTIF | $G Mask:|$SED 's/.*Mask:\([^ ]*\)/\1/'`&amp;quot;&lt;br /&gt;
EXTMSK=&amp;quot;`$IFC $EXTIF | $AWK /$EXTIF/'{next}//{split($0,a,&amp;quot;:&amp;quot;);split(a[4],a,&amp;quot; &amp;quot;);print a[1];exit}'`&amp;quot;&lt;br /&gt;
EXTNET=&amp;quot;$EXTIP/$EXTMSK&amp;quot;&lt;br /&gt;
$ECHO &amp;quot;EXTIP=$EXTIP EXTBC=$EXTBC EXTMSK=$EXTMSK EXTNET=$EXTNET&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Due to absence of EXTBC I manually set it to 255.255.255.255&lt;br /&gt;
# this (hopefully) will serve the same purpose&lt;br /&gt;
&lt;br /&gt;
# Установка переменных окружения внутреннего интерфейса&lt;br /&gt;
INTIP=&amp;quot;`$IFC $INTIF | $AWK /$INTIF/'{next}//{split($0,a,&amp;quot;:&amp;quot;);split(a[2],a,&amp;quot; &amp;quot;);print a[1];exit}'`&amp;quot;&lt;br /&gt;
INTBC=&amp;quot;`$IFC $INTIF | $AWK /$INTIF/'{next}//{split($0,a,&amp;quot;:&amp;quot;);split(a[3],a,&amp;quot; &amp;quot;);print a[1];exit}'`&amp;quot;&lt;br /&gt;
INTMSK=&amp;quot;`$IFC $INTIF | $AWK /$INTIF/'{next}//{split($0,a,&amp;quot;:&amp;quot;);split(a[4],a,&amp;quot; &amp;quot;);print a[1];exit}'`&amp;quot;&lt;br /&gt;
INTNET=&amp;quot;$INTIP/$INTMSK&amp;quot;&lt;br /&gt;
$ECHO &amp;quot;INTIP=$INTIP INTBC=$INTBC INTMSK=$INTMSK INTNET=$INTNET&amp;quot;&amp;lt;/source&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
===iptables ACCEPTS===&lt;br /&gt;
:Теперь мы должны установить ACCEPTы, так, чтобы мы могли соединяться с нашим сервером. На самом деле это очень больной вопрос. Правила для надежного маршрутизатора должны по умолчанию запрещать нежели разрешать. Однако, если вы сделаете это, то потеряете все соединения. Продолжайте тестирование пока не будете уверены что ваши ACCEPTы работают как надо. Однако думаю, что сперва мы введем следующее и это будет предпоследним правилом в окончательном скрипте.&lt;br /&gt;
{{Code||&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$IPT -t nat -A PREROUTING -j ACCEPT&lt;br /&gt;
# $IPT -t nat -A POSTROUTING -o $EXTIF -s $INTNET -j SNAT --to $EXTIP&lt;br /&gt;
&lt;br /&gt;
# Закомментируйте последующие строки (которые содержат &amp;quot;MASQUERADE&amp;quot;) &lt;br /&gt;
# для сетей без трансляции адресов (NAT)&lt;br /&gt;
$IPT -t nat -A POSTROUTING -o $EXTIF -s $INTNET1 -j MASQUERADE&lt;br /&gt;
$IPT -t nat -A POSTROUTING -o $EXTIF -s $INTNET2 -j MASQUERADE&lt;br /&gt;
$IPT -t nat -A POSTROUTING                       -j ACCEPT&lt;br /&gt;
$IPT -t nat -A OUTPUT                            -j ACCEPT&lt;br /&gt;
$IPT -A INPUT   -p tcp --dport auth --syn -m state --state NEW -j ACCEPT&lt;br /&gt;
$IPT -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
$IPT -A OUTPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&amp;lt;/source&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
===iptables DROP &amp;amp; REJECT===&lt;br /&gt;
:Теперь мы определим пару цепочек (chains) которые будут фиксировать события DROP и REJECT. Таким образом нам не придется вводить отдельные строки для каждой введенной команды. Сообщения о событиях будут отправлены сервису syslog, (обычно они фиксируются в /var/log/messages). Позже я (переводчик не имеет к этому никакого отношения) собираюсь написать скрипт на sed/grep по разбору  событий  для облегченного просмотра и установлю его как ежедневную работу для сервиса cron.&lt;br /&gt;
:Эти строки следует вставить сразу после текста выше, в тот же скрипт. Когда вы это сделаете, запустите скрипт снова. Это не окажет влияния на вашу сеть, вы пока просто устанавливаете правила. Но это поможет убедиться что мы не сделали ошибок на данном этапе.&lt;br /&gt;
{{Code||&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# ********** Цепочки журналирования событий **********&lt;br /&gt;
#&lt;br /&gt;
# Теперь мы определяем несколько цепочек которые служат для записи &lt;br /&gt;
# событий о сбрасываемых пакетах. Это позволит нам избежать ввода &lt;br /&gt;
# команд для каждого правила. Сперва мы фиксируем DROP, а потом REJECT.&lt;br /&gt;
# Не жалуйтесь, если цепочки уже существуют (однако это не приведет к ошибкам???)&lt;br /&gt;
$IPT -N DROPl   2&amp;gt; /dev/null&lt;br /&gt;
$IPT -A DROPl -m limit --limit 3/minute --limit-burst 10 -j LOG --log-prefix 'FIREWALL DROP BLOCKED:'&lt;br /&gt;
$IPT -A DROPl   -j DROP&lt;br /&gt;
$IPT -N REJECTl 2&amp;gt; /dev/null&lt;br /&gt;
$IPT -A REJECTl -m limit --limit 3/minute --limit-burst 10 -j LOG --log-prefix 'FIREWALL REJECT BLOCKED:'&lt;br /&gt;
$IPT -A REJECTl -j REJECT&lt;br /&gt;
$IPT -N DROP2   2&amp;gt; /dev/null&lt;br /&gt;
$IPT -A DROP2 -m limit --limit 3/second --limit-burst 10 -j LOG --log-prefix 'FIREWALL DROP UNKNOWN:'&lt;br /&gt;
$IPT -A DROP2   -j DROP&lt;br /&gt;
$IPT -N REJECT2 2&amp;gt; /dev/null&lt;br /&gt;
$IPT -A REJECT2 -m limit --limit 3/second --limit-burst 10 -j LOG --log-prefix 'FIREWALL REJECT UNKNOWN:'&lt;br /&gt;
$IPT -A REJECT2 -j REJECT&lt;br /&gt;
&lt;br /&gt;
# Для тестирования фиксируем события ACCEPT&lt;br /&gt;
$IPT -N ACCEPTl   2&amp;gt; /dev/null&lt;br /&gt;
$IPT -A ACCEPTl -m limit --limit 10/second --limit-burst 50 -j LOG --log-prefix 'FIREWALL ACCEPT:'&lt;br /&gt;
$IPT -A ACCEPTl   -j ACCEPT&amp;lt;/source&amp;gt; }}&lt;br /&gt;
&amp;lt;!-- вот я сказал то... иногда трудно перевести log drop.. и тд... не всегда понятно как это выразить. по идее DROP и REJECT служебные слова, но помоему они часто используются просто так... [[Участник:Dron|Dron]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Сброс правил===&lt;br /&gt;
:Теперь, когда мы видим наши устройства, правильно определенные, вставляем команду сброса правил. Однако все уже назначенные правила будут сброшены. Эти строки должны быть вставлены после определения утилит, которые заканчиваются строкой: ECHO='/bin/echo'&lt;br /&gt;
{{Code||&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Сброс всех существующих и очистка персональных цепочек.&lt;br /&gt;
CHAINS=`cat /proc/net/ip_tables_names 2&amp;gt;/dev/null`&lt;br /&gt;
&lt;br /&gt;
for i in $CHAINS&lt;br /&gt;
do&lt;br /&gt;
    $IPT -t $i -F&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
for i in $CHAINS&lt;br /&gt;
do&lt;br /&gt;
    $IPT -t $i -X&lt;br /&gt;
done&amp;lt;/source&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Локальные интерфейсы===&lt;br /&gt;
:Теперь мы готовы для того, чтобы описать некоторые правила. Для начала мы разрешим все пакеты с loopback интерфейса, имеющие в качестве адреса назначения один из адресов наших интерфейсов.&lt;br /&gt;
{{Code||&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$IPT -A INPUT   -i $LPDIF -s   $LPDIP  -j ACCEPT&lt;br /&gt;
$IPT -A INPUT   -i $LPDIF -s   $EXTIP  -j ACCEPT&lt;br /&gt;
$IPT -A INPUT   -i $LPDIF -s   $INTIP1  -j ACCEPT&lt;br /&gt;
$IPT -A INPUT   -i $LPDIF -s   $INTIP2  -j ACCEPT&lt;br /&gt;
&amp;lt;/source&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
===Блокировка широковещательных пакетов===&lt;br /&gt;
:Теперь мы должны заблокировать все входящие и исходящие широковещательные пакеты. Это предотвратит DoS атаки против нас, и не позволит нашим клиентам проводить DoS атаки против кого либо другого. Если бы все системные администраторы следовали этим правилам, тогда много суровых и дорогих DoS атак не состоялись или были максимально ограниченными.&lt;br /&gt;
&lt;br /&gt;
{{Code|Блокировка широковещательных пакетов|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$IPT -A INPUT   -i $EXTIF -d   $EXTBC  -j DROPl&lt;br /&gt;
$IPT -A INPUT   -i $INTIF1 -d  $INTBC1  -j DROPl&lt;br /&gt;
$IPT -A INPUT   -i $INTIF2 -d  $INTBC2  -j DROPl&lt;br /&gt;
$IPT -A OUTPUT  -o $EXTIF -d   $EXTBC  -j DROPl&lt;br /&gt;
$IPT -A OUTPUT  -o $INTIF1 -d  $INTBC1  -j DROPl&lt;br /&gt;
$IPT -A OUTPUT  -o $INTIF2 -d  $INTBC2  -j DROPl&lt;br /&gt;
$IPT -A FORWARD -o $EXTIF -d   $EXTBC  -j DROPl&lt;br /&gt;
$IPT -A FORWARD -o $INTIF1 -d  $INTBC1  -j DROPl&lt;br /&gt;
$IPT -A FORWARD -o $INTIF2 -d  $INTBC2  -j DROPl&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
:Теперь проверим скрипт еще раз, чтобы убедиться в том, что мы не наделали синтаксических ошибок. Также отмечу, что мы используем определенные нами DROP1 цепочки (chains). Это означает, что отбрасываемые пакеты будут отмечены в журнале событий (log file).&lt;br /&gt;
&lt;br /&gt;
===Блокировка доступа в локальную сеть из глобальной===&lt;br /&gt;
:Теперь мы блокируем доступ из глобальной сети в нашу локальную сеть, если мы не хотим что бы интернет провайдер назначал IP адреса для нашей внутренней сети.&lt;br /&gt;
&lt;br /&gt;
{{Code||&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Блокировать внешний доступ к локальной сети&lt;br /&gt;
# Это позволит остановить боевых кракеров от использования &lt;br /&gt;
# нашей сети как стартовой точки для других атак.&lt;br /&gt;
#&lt;br /&gt;
# Нижеприведенная строчка на человеческом языке будет выглядеть как&lt;br /&gt;
# &amp;quot;если входящий пакет, пришедший на наш внешний интерфейс,&lt;br /&gt;
# имеет адрес назначения, отличный от адреса нашего внешнего интерфейса,&lt;br /&gt;
# то этот пакет будет залогирован цепочкой DROPl, затем блокирован &lt;br /&gt;
# (не будет пропущен).&amp;quot;&lt;br /&gt;
$IPT -A INPUT   -i $EXTIF -d ! $EXTIP  -j DROPl&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===Изолирование локальных сетей===&lt;br /&gt;
:Теперь мы предпримем некоторые действия для наших локальных сетей. Другими словами - все пакеты не относящиеся к локальным сетям должны быть блокированы.&lt;br /&gt;
{{Code||&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Теперь мы должны заблокировать все пакеты не относящиеся к &lt;br /&gt;
# адресному пространству наших локальных сетей.&lt;br /&gt;
# Запомните, если вы подключите свой ноутбук к другому разъему, &lt;br /&gt;
# вам надо убедиться, что ваш сетевой адрес соответствует адресам этой сети.&lt;br /&gt;
#&lt;br /&gt;
# Первая локальная сеть&lt;br /&gt;
$IPT -A INPUT   -i $INTIF1 -s ! $INTNET1 -j DROPl&lt;br /&gt;
$IPT -A OUTPUT  -o $INTIF1 -d ! $INTNET1 -j DROPl&lt;br /&gt;
$IPT -A FORWARD -i $INTIF1 -s ! $INTNET1 -j DROPl&lt;br /&gt;
$IPT -A FORWARD -o $INTIF1 -d ! $INTNET1 -j DROPl&lt;br /&gt;
# Вторая локальная сеть&lt;br /&gt;
$IPT -A INPUT   -i $INTIF2 -s ! $INTNET2 -j DROPl&lt;br /&gt;
$IPT -A OUTPUT  -o $INTIF2 -d ! $INTNET2 -j DROPl&lt;br /&gt;
$IPT -A FORWARD -i $INTIF2 -s ! $INTNET2 -j DROPl&lt;br /&gt;
$IPT -A FORWARD -o $INTIF2 -d ! $INTNET2 -j DROPl&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
:Дальше мы сделаем некоторые дополнительные проверки исходящих пакетов и остановим все icmp пакеты кроме ping.&lt;br /&gt;
{{Code||&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Дополнительная проверка&lt;br /&gt;
$IPT -A OUTPUT  -o $EXTIF -s ! $EXTNET -j DROPl&lt;br /&gt;
# Блокируем исходящие ICMP (кроме PING)&lt;br /&gt;
$IPT -A OUTPUT  -o $EXTIF -p icmp --icmp-type ! 8 -j DROPl&lt;br /&gt;
$IPT -A FORWARD -o $EXTIF -p icmp --icmp-type ! 8 -j DROPl&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
:Замечательно. Двигаемся дальше и проверяем скрипт на ошибки.&lt;br /&gt;
&lt;br /&gt;
===Ports===&lt;br /&gt;
:Предполагая что у нас все сработало мы заткнем еще несколько портов, доступ по которым может представлять для нас серьезную опасность:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # COMmon ports:&lt;br /&gt;
 # 0 is tcpmux; SGI had vulnerability, 1 is common attack&lt;br /&gt;
 # 13 is daytime&lt;br /&gt;
 # 98 is Linuxconf&lt;br /&gt;
 # 111 is sunrpc (portmap)&lt;br /&gt;
 # 137:139, 445 is Microsoft&lt;br /&gt;
 # SNMP: 161,2&lt;br /&gt;
 # Squid flotilla: 3128, 8000, 8008, 8080&lt;br /&gt;
 # 1214 is Morpheus or KaZaA&lt;br /&gt;
 # 2049 is NFS&lt;br /&gt;
 # 3049 is very virulent Linux Trojan, mistakable for NFS&lt;br /&gt;
 # Common attacks: 1999, 4329, 6346&lt;br /&gt;
 # Common Trojans 12345 65535&lt;br /&gt;
  COMBLOCK=&amp;quot;0:1 13 98 111 137:139 161:162 445 1214 1999 2049 3049 4329 6346 3128 8000 8008 8080 12345 65535&amp;quot;&lt;br /&gt;
 # TCP ports:&lt;br /&gt;
 # 98 is Linuxconf&lt;br /&gt;
 # 512-515 is rexec, rlogin, rsh, printer(lpd)&lt;br /&gt;
 #   [very serious vulnerabilities; attacks continue daily]&lt;br /&gt;
 # 1080 is Socks proxy server&lt;br /&gt;
 # 6000 is X (NOTE X over SSH is secure and runs on TCP 22)&lt;br /&gt;
 # Block 6112 (Sun's/HP's CDE)&lt;br /&gt;
  TCPBLOCK=&amp;quot;$COMBLOCK 98 512:515 1080 6000:6009 6112&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # UDP ports:&lt;br /&gt;
 # 161:162 is SNMP&lt;br /&gt;
 # 520=RIP, 9000 is Sangoma&lt;br /&gt;
 # 517:518 are talk and ntalk (more annoying than anything)&lt;br /&gt;
  UDPBLOCK=&amp;quot;$COMBLOCK 161:162 520 123 517:518 1427 9000 9 6346 3128 8000 8008 8080 12345 65535&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
:После определения переменных окружения нам останется только пробежаться по ним циклом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 echo -n &amp;quot;FW: Blocking attacks to TCP port&amp;quot;&lt;br /&gt;
 for i in $TCPBLOCK;&lt;br /&gt;
 do&lt;br /&gt;
  echo -n &amp;quot;$i &amp;quot;&lt;br /&gt;
   $IPT -A INPUT   -p tcp --dport $i  -j DROPl&lt;br /&gt;
   $IPT -A OUTPUT  -p tcp --dport $i  -j DROPl&lt;br /&gt;
   $IPT -A FORWARD -p tcp --dport $i  -j DROPl&lt;br /&gt;
 done&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo -n &amp;quot;FW: Blocking attacks to UDP port &amp;quot;&lt;br /&gt;
 for i in $UDPBLOCK;&lt;br /&gt;
 do&lt;br /&gt;
  echo -n &amp;quot;$i &amp;quot;&lt;br /&gt;
    $IPT -A INPUT   -p udp --dport $i  -j DROPl&lt;br /&gt;
    $IPT -A OUTPUT  -p udp --dport $i  -j DROPl&lt;br /&gt;
    $IPT -A FORWARD -p udp --dport $i  -j DROPl&lt;br /&gt;
 done&lt;br /&gt;
 echo &amp;quot;&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
:Ну что ж, теперь каждый раз, когда мы запускаем скрипт, эти строчки просто добавляются к уже существующим... что создаёт небольшой бардак. По этой причине мы собираемся перепрыгнуть в начало скрипта... сразу после переменных окружения для sed и grep, но перед переменными для EXTIP и EXTBC - там мы добавляем цикл, который производит очистку. Так мы будем уверены, что работаем в чистой среде. Нам не приходилось задуываться об этом ранее, потому что мы не имели возможности оттестить скрипт без обрыва соединения либо закрытия файрвола. Этот скрипт сначала выставляет всю политику в DROP, после чего очищает и удаляет наши цепочки. Чтобы убедиться, что мы по-прежнему можем залогиниться по ssh на наш сервер после того, как скрипт перезапустится, мы добавим цепочку INPUT для ssh. Пока что поставим её в конец скрипта. Это делается для того чтобы избежать открытия дыры в момент установки новых правил, что является довольно распространённой ошибкой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # Отказываем, потом принимаем: это уберёт дыру в момент,&lt;br /&gt;
 # когда мы закрываем порты&lt;br /&gt;
  $IPT        -P INPUT       DROP&lt;br /&gt;
  $IPT        -P OUTPUT      DROP&lt;br /&gt;
  $IPT        -P FORWARD     DROP&lt;br /&gt;
&lt;br /&gt;
 # Очищаем все существуещие цепочки и стираем дополнительные&lt;br /&gt;
  CHAINS=`cat /proc/net/ip_tables_names 2&amp;gt;/dev/null`&lt;br /&gt;
  for i in $CHAINS;&lt;br /&gt;
  do&lt;br /&gt;
    $IPT -t $i -F&lt;br /&gt;
  done&lt;br /&gt;
  for i in $CHAINS;&lt;br /&gt;
  do&lt;br /&gt;
    $IPT -t $i -X&lt;br /&gt;
  done&lt;br /&gt;
  $IPT -A INPUT   -i $INTIF1 -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sysctl'ы===&lt;br /&gt;
:Сразу после этого мы запустим sysctl'ы для tcp_syncookies, icmp_echo_ignore_broadcasts, rp_filter и accept_source_routе. До этого момента многие правила, которые мы &amp;quot;проверяли&amp;quot;, фактически не выполнялись. По сути, мы просто делали проверку синтаксических ошибок. Теперь наши правила будут выполняться в полной мере:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
&lt;br /&gt;
 # Проверка адреса источника&lt;br /&gt;
 for f in /proc/sys/net/ipv4/conf/*/rp_filter;&lt;br /&gt;
 do&lt;br /&gt;
  echo 1 &amp;gt; $f&lt;br /&gt;
 done&lt;br /&gt;
 # Отключаем роутинг источника IP и ICMP-редиректы&lt;br /&gt;
 for f in /proc/sys/net/ipv4/conf/*/accept_source_route;&lt;br /&gt;
 do&lt;br /&gt;
  echo 0 &amp;gt; $f&lt;br /&gt;
 done&lt;br /&gt;
 for f in /proc/sys/net/ipv4/conf/*/accept_redirects;&lt;br /&gt;
 do&lt;br /&gt;
  echo 0 &amp;gt; $f&lt;br /&gt;
 done&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
:Теперь мы собираемся добавить трекинг ftp-соединения, так что нам не доведётся наблюдать ошибки PASV при установке паков:&lt;br /&gt;
 # Запускаем трекинг ftp-соединения&lt;br /&gt;
 MODULES=&amp;quot;ip_nat_ftp ip_conntrack_ftp&amp;quot;&lt;br /&gt;
 for i in $MODULES;&lt;br /&gt;
 do&lt;br /&gt;
  echo &amp;quot;Добавляем модуль $i&amp;quot;&lt;br /&gt;
  modprobe $i&lt;br /&gt;
 done&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Базовая конфигурация NAT===&lt;br /&gt;
:А сейчас возвратимся к концу нашего скрипта, поскольку мы собираемся открыть сервисы для хостов, находящихся за файерволом. Я включил следующие сервисы: IRC, MSN, ICQ, and NFS, FTP, domain,time и некоторые другие. Самое главное здесь то, что эти сервисы могут использоваться ТОЛЬКО ЗА файерволом.Таким образом никто не сможет их использовать по ftp внутри Вашей локальной сетки:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 IRC='ircd'&lt;br /&gt;
 MSN=1863&lt;br /&gt;
 ICQ=5190&lt;br /&gt;
 NFS='sunrpc'&lt;br /&gt;
 # Мы пользуемся sync!!&lt;br /&gt;
 PORTAGE='rsync'&lt;br /&gt;
 OpenPGP_HTTP_Keyserver=11371&lt;br /&gt;
 # Все порты сервисов считываются из /etc/services&lt;br /&gt;
 TCPSERV=&amp;quot;domain ssh http https ftp ftp-data mail pop3 pop3s imap3 imaps imap2 time $PORTAGE $IRC $MSN $ICQ $OpenPGP_HTTP_Keyserver&amp;quot;&lt;br /&gt;
 UDPSERV=&amp;quot;domain time&amp;quot;&lt;br /&gt;
 echo -n &amp;quot;FW: Allowing inside systems to use service:&amp;quot;&lt;br /&gt;
 for i in $TCPSERV;&lt;br /&gt;
 do&lt;br /&gt;
  echo -n &amp;quot;$i &amp;quot;&lt;br /&gt;
  $IPT -A OUTPUT  -o $EXTIF -p tcp -s $EXTIP --dport $i --syn -m state --state NEW -j ACCEPT&lt;br /&gt;
  $IPT -A FORWARD -i $INTIF1 -p tcp -s $INTNET1 --dport $i --syn -m state --state NEW -j ACCEPT&lt;br /&gt;
  $IPT -A FORWARD -i $INTIF2 -p tcp -s $INTNET2 --dport $i --syn -m state --state NEW -j ACCEPT&lt;br /&gt;
 done&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 echo -n &amp;quot;FW: Allowing inside systems to use service:&amp;quot;&lt;br /&gt;
 for i in $UDPSERV;&lt;br /&gt;
 do&lt;br /&gt;
  echo -n &amp;quot;$i &amp;quot;&lt;br /&gt;
  $IPT -A OUTPUT  -o $EXTIF -p udp -s $EXTIP --dport $i -m state --state NEW -j ACCEPT&lt;br /&gt;
    $IPT -A FORWARD -i $INTIF1 -p udp -s $INTNET1 --dport $i -m state --state NEW -j ACCEPT&lt;br /&gt;
    $IPT -A FORWARD -i $INTIF2 -p udp -s $INTNET2 --dport $i -m state --state NEW -j ACCEPT&lt;br /&gt;
 done&lt;br /&gt;
 echo &amp;quot;&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
:Теперь сделаем так, чтобы файервол позволил нам пинговать внешний мир. Для этого разрешим прохождение icmp-пакетов через внешний интерфейс:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # Разрешаем внешнее пингование&lt;br /&gt;
 $IPT -A OUTPUT  -o $EXTIF -p icmp -s $EXTIP --icmp-type 8 -m state --state NEW -j ACCEPT&lt;br /&gt;
 $IPT -A FORWARD -i $INTIF1 -p icmp -s $INTNET1 --icmp-type 8 -m state --state NEW -j ACCEPT&lt;br /&gt;
 $IPT -A FORWARD -i $INTIF2 -p icmp -s $INTNET2 --icmp-type 8 -m state --state NEW -j ACCEPT&lt;br /&gt;
                                                                               &lt;br /&gt;
 # Разрешим файерволу пинговать наши внутренние сетки:&lt;br /&gt;
 $IPT -A OUTPUT  -o $INTIF1 -p icmp -s $INTNET1 --icmp-type 8 -m state --state NEW -j ACCEPT&lt;br /&gt;
 $IPT -A OUTPUT  -o $INTIF2 -p icmp -s $INTNET2 --icmp-type 8 -m state --state NEW -j ACCEPT&amp;lt;/source&amp;gt;&lt;br /&gt;
:Теперь мы по умолчанию будем записывать в журнал все прочие запросы, но никак не будем на них реагировать. Все что нам надо было принять мы описали в начале наших правил. Так что заканчиваем правила блокировкой всего, что специально не разрешено:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # Заблокируем все, что осталось:&lt;br /&gt;
  $IPT -A INPUT             -j DROPl&lt;br /&gt;
  $IPT -A OUTPUT            -j REJECTl&lt;br /&gt;
  $IPT -A FORWARD           -j DROPl&amp;lt;/source&amp;gt;&lt;br /&gt;
:Итак, все сделано. я имею дружественные nmap и nessus для моих соединений с вышеописанным набором правил и ничего не препятствует использованию IRC, MSN, ICQ, и emerge sync.&lt;br /&gt;
&lt;br /&gt;
==The full script==&lt;br /&gt;
:А сейчас, полноценный скрипт во всей своей красе (Заодно я поместил форвардинг ssh в более подходящее для него место):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # Внешний интерфейс&lt;br /&gt;
  EXTIF=ppp0&lt;br /&gt;
 # Внутренний интерфейс&lt;br /&gt;
  INTIF1=eth1&lt;br /&gt;
  INTIF2=eth2&lt;br /&gt;
 # Loop-устройство/localhost&lt;br /&gt;
  LPDIF=lo&lt;br /&gt;
  LPDIP=127.0.0.1&lt;br /&gt;
  LPDMSK=255.0.0.0&lt;br /&gt;
  LPDNET=&amp;quot;$LPDIP/$LPDMSK&amp;quot;&lt;br /&gt;
 # Переменные текстовых инструментов&lt;br /&gt;
  IPT='/sbin/iptables'&lt;br /&gt;
  IFC='/sbin/ifconfig'&lt;br /&gt;
  G='/bin/grep'&lt;br /&gt;
  SED='/bin/sed'&lt;br /&gt;
 # Последнее (но немаловажное) - пользователи&lt;br /&gt;
  JAMES=192.168.1.77&lt;br /&gt;
  TERESA=192.168.2.77&lt;br /&gt;
 # Deny вместо accept: предотвращает открытие &amp;quot;дыр&amp;quot;&lt;br /&gt;
 # в то время, как мы закрываем порты и все такое&lt;br /&gt;
  $IPT        -P INPUT       DROP&lt;br /&gt;
  $IPT        -P OUTPUT      DROP&lt;br /&gt;
  $IPT        -P FORWARD     DROP&lt;br /&gt;
 # Сброс всех существующих цепочек и стирание персональных цепочек&lt;br /&gt;
  CHAINS=`cat /proc/net/ip_tables_names 2&amp;gt;/dev/null`&lt;br /&gt;
  for i in $CHAINS&lt;br /&gt;
  do&lt;br /&gt;
   $IPT -t $i -F&lt;br /&gt;
   $IPT -t $i -X&lt;br /&gt;
  done&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
 # Проверка адреса источника&lt;br /&gt;
  for f in /proc/sys/net/ipv4/conf/*/rp_filter;&lt;br /&gt;
  do&lt;br /&gt;
   echo 1 &amp;gt; $f&lt;br /&gt;
  done&lt;br /&gt;
 # Запрет маршрутизации IP от источника и редиректов ICMP&lt;br /&gt;
  for f in /proc/sys/net/ipv4/conf/*/accept_source_route;&lt;br /&gt;
  do&lt;br /&gt;
   echo 0 &amp;gt; $f&lt;br /&gt;
  done&lt;br /&gt;
  for f in /proc/sys/net/ipv4/conf/*/accept_redirects;&lt;br /&gt;
  do&lt;br /&gt;
   echo 0 &amp;gt; $f&lt;br /&gt;
  done&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
 # Установка переменных среды для внешнего интерфейса&lt;br /&gt;
  EXTIP=&amp;quot;`$IFC $EXTIF|$G addr:|$SED 's/.*addr:\([^ ]*\) .*/\1/'`&amp;quot;&lt;br /&gt;
  #EXTBC=&amp;quot;`$IFC $EXTIF|$G Bcast:|$SED 's/.*Bcast:\([^ ]*\) .*/\1/'`&amp;quot;&lt;br /&gt;
  EXTBC=&amp;quot;255.255.255.255&amp;quot;&lt;br /&gt;
  EXTMSK=&amp;quot;`$IFC $EXTIF|$G Mask:|$SED 's/.*Mask:\([^ ]*\)/\1/'`&amp;quot;&lt;br /&gt;
  EXTNET=&amp;quot;$EXTIP/$EXTMSK&amp;quot;&lt;br /&gt;
  #echo &amp;quot;EXTIP=$EXTIP EXTBC=$EXTBC EXTMSK=$EXTMSK EXTNET=$EXTNET&amp;quot;&lt;br /&gt;
  echo &amp;quot;EXTIP=$EXTIP EXTBC=$EXTBC EXTMSK=$EXTMSK EXTNET=$EXTNET&amp;quot;&lt;br /&gt;
 # Так как EXTBC отсутствует, я устанавливаю ее вручную как it to 255.255.255.255&lt;br /&gt;
 # Это (надеюсь) послужит тем же целям&lt;br /&gt;
 # Устанвка переменных среды для первого внутреннего интерфейса&lt;br /&gt;
  INTIP1=&amp;quot;`$IFC $INTIF1|$G addr:|$SED 's/.*addr:\([^ ]*\) .*/\1/'`&amp;quot;&lt;br /&gt;
  INTBC1=&amp;quot;`$IFC $INTIF1|$G Bcast:|$SED 's/.*Bcast:\([^ ]*\) .*/\1/'`&amp;quot;&lt;br /&gt;
  INTMSK1=&amp;quot;`$IFC $INTIF1|$G Mask:|$SED 's/.*Mask:\([^ ]*\)/\1/'`&amp;quot;&lt;br /&gt;
  INTNET1=&amp;quot;$INTIP1/$INTMSK1&amp;quot;&lt;br /&gt;
  echo &amp;quot;INTIP1=$INTIP1 INTBC1=$INTBC1 INTMSK1=$INTMSK1 INTNET1=$INTNET1&amp;quot;&lt;br /&gt;
 # Установка переменных среды для второго внутреннего интерфейса&lt;br /&gt;
  INTIP2=&amp;quot;`$IFC $INTIF2|$G addr:|$SED 's/.*addr:\([^ ]*\) .*/\1/'`&amp;quot;&lt;br /&gt;
  INTBC2=&amp;quot;`$IFC $INTIF2|$G Bcast:|$SED 's/.*Bcast:\([^ ]*\) .*/\1/'`&amp;quot;&lt;br /&gt;
  INTMSK2=&amp;quot;`$IFC $INTIF2|$G Mask:|$SED 's/.*Mask:\([^ ]*\)/\1/'`&amp;quot;&lt;br /&gt;
  INTNET2=&amp;quot;$INTIP2/$INTMSK2&amp;quot;&lt;br /&gt;
  echo &amp;quot;INTIP2=$INTIP2 INTBC2=$INTBC2 INTMSK2=$INTMSK2 INTNET2=$INTNET2&amp;quot;&lt;br /&gt;
 # Сейчас мы собираемся создать несколько собственных цепочек, результатом работы &lt;br /&gt;
 # которых будет логгинг отброшенных пакетов. Это поможет нам избежать необходимости&lt;br /&gt;
 # вводить команду log перед каждым отбрасыванием пакета, что мы хотим запротоколировать.&lt;br /&gt;
 # Первыми идут лог отброшенных пакетов и собственно отброс, затем лог пакетов с отказами&lt;br /&gt;
 # и собственно отказы.&lt;br /&gt;
 # Отключаем сообщения о том, что цепочки уже существуют (чтобы перезапуск был без мусора)&lt;br /&gt;
  $IPT -N DROPl   2&amp;gt; /dev/null&lt;br /&gt;
  $IPT -A DROPl   -j LOG --log-prefix 'DROPl:'&lt;br /&gt;
  $IPT -A DROPl   -j DROP&lt;br /&gt;
  $IPT -N REJECTl 2&amp;gt; /dev/null&lt;br /&gt;
  $IPT -A REJECTl -j LOG --log-prefix 'REJECTl:'&lt;br /&gt;
  $IPT -A REJECTl -j REJECT&lt;br /&gt;
 # Весь траффик от устройства loopback принимается&lt;br /&gt;
 # если IP совпадает с любым из наших интерфейсов.&lt;br /&gt;
  $IPT -A INPUT   -i $LPDIF -s   $LPDIP  -j ACCEPT&lt;br /&gt;
  $IPT -A INPUT   -i $LPDIF -s   $EXTIP  -j ACCEPT&lt;br /&gt;
  $IPT -A INPUT   -i $LPDIF -s   $INTIP1  -j ACCEPT&lt;br /&gt;
  $IPT -A INPUT   -i $LPDIF -s   $INTIP2  -j ACCEPT&lt;br /&gt;
 # Широковещательные пакеты блокируем&lt;br /&gt;
  $IPT -A INPUT   -i $EXTIF -d   $EXTBC  -j DROPl&lt;br /&gt;
  $IPT -A INPUT   -i $INTIF1 -d   $INTBC1  -j DROPl&lt;br /&gt;
  $IPT -A INPUT   -i $INTIF2 -d   $INTBC2  -j DROPl&lt;br /&gt;
  $IPT -A OUTPUT  -o $EXTIF -d   $EXTBC  -j DROPl&lt;br /&gt;
  $IPT -A OUTPUT  -o $INTIF1 -d   $INTBC1  -j DROPl&lt;br /&gt;
  $IPT -A OUTPUT  -o $INTIF2 -d   $INTBC2  -j DROPl&lt;br /&gt;
  $IPT -A FORWARD -o $EXTIF -d   $EXTBC  -j DROPl&lt;br /&gt;
  $IPT -A FORWARD -o $INTIF1 -d   $INTBC1  -j DROPl&lt;br /&gt;
  $IPT -A FORWARD -o $INTIF2 -d   $INTBC2  -j DROPl&lt;br /&gt;
 # Блокируем доступ к внутренней сети из WAN&lt;br /&gt;
 # Это также призвано не дать нечестивым крякерам использовать нашу сетку &lt;br /&gt;
 # в качестве отправной точки для атак на других людей&lt;br /&gt;
 # Перевод с языка iptables:&lt;br /&gt;
 # &amp;quot;если пришедшие на наружный интерфейс пакеты были отправлены не с выданного&lt;br /&gt;
 # nefarious адреса, выкинуть их как горячую картошку&amp;quot;&lt;br /&gt;
  $IPT -A INPUT   -i $EXTIF -d ! $EXTIP  -j DROPl&lt;br /&gt;
 # А сейчас мы блокируем внутренние адреса, кроме двух, присвоенных нашим двум&lt;br /&gt;
 # внутренним интерфейсам.....только помните, что если вы воткнете свой лэптоп или&lt;br /&gt;
 # какой другой pc в напрямую в одну из этих сетевых карт, то нужно удостовериться,&lt;br /&gt;
 # что они имеют именно эти IP-адреса или добавить соответствующий адрес отдельно.               &lt;br /&gt;
 # Первый интерфейс/первая внутренняя сеть&lt;br /&gt;
  $IPT -A INPUT   -i $INTIF1 -s ! $INTNET1 -j DROPl&lt;br /&gt;
  $IPT -A OUTPUT  -o $INTIF1 -d ! $INTNET1 -j DROPl&lt;br /&gt;
  $IPT -A FORWARD -i $INTIF1 -s ! $INTNET1 -j DROPl&lt;br /&gt;
  $IPT -A FORWARD -o $INTIF1 -d ! $INTNET1 -j DROPl&lt;br /&gt;
 # Второй интерфейс/вторая внутренняя сеть&lt;br /&gt;
  $IPT -A INPUT   -i $INTIF2 -s ! $INTNET2 -j DROPl&lt;br /&gt;
  $IPT -A OUTPUT  -o $INTIF2 -d ! $INTNET2 -j DROPl&lt;br /&gt;
  $IPT -A FORWARD -i $INTIF2 -s ! $INTNET2 -j DROPl&lt;br /&gt;
  $IPT -A FORWARD -o $INTIF2 -d ! $INTNET2 -j DROPl&lt;br /&gt;
 # Дополнительная Egress-проверка&lt;br /&gt;
  $IPT -A OUTPUT  -o $EXTIF -s ! $EXTNET -j DROPl&lt;br /&gt;
 # Блокируем исходящиие пакеты ICMP (за исключением PING)&lt;br /&gt;
  $IPT -A OUTPUT  -o $EXTIF -p icmp --icmp-type ! 8 -j DROPl&lt;br /&gt;
  $IPT -A FORWARD -o $EXTIF -p icmp --icmp-type ! 8 -j DROPl&lt;br /&gt;
 # печально известные порты:&lt;br /&gt;
 # 0 - tcpmux; у SGI есть уязвимость, через которую можно атаковать&lt;br /&gt;
 # 13 - daytime&lt;br /&gt;
 # 98 - Linuxconf&lt;br /&gt;
 # 111 - sunrpc (portmap)&lt;br /&gt;
 # 137:139, 445 - Microsoft&lt;br /&gt;
 # SNMP: 161,2&lt;br /&gt;
 # Флотилия Squid: 3128, 8000, 8008, 8080&lt;br /&gt;
 # 1214 - Morpheus или KaZaA&lt;br /&gt;
 # 2049 - NFS&lt;br /&gt;
 # 3049 - очень заразный троян для Linux, часто путаемый с NFS&lt;br /&gt;
 # Часто атакуемые: 1999, 4329, 6346&lt;br /&gt;
 # Частые трояны 12345 65535&lt;br /&gt;
  COMBLOCK=&amp;quot;0:1 13 98 111 137:139 161:162 445 1214 1999 2049 3049 4329 6346 3128 8000 8008 8080 12345 65535&amp;quot;&lt;br /&gt;
 # Порты TCP:&lt;br /&gt;
 # 98 - Linuxconf&lt;br /&gt;
 # 512-515 - rexec, rlogin, rsh, printer(lpd)&lt;br /&gt;
 #   [очень серьезеные уязвимости; продолжаются ежедневные атаки]&lt;br /&gt;
 # 1080 - прокси-серверы Socks&lt;br /&gt;
 # 6000 - X (ЗАМЕЧАНИЕ. X через SSH - безопасен, и работает на порту TCP 22)&lt;br /&gt;
 # Блокировка 6112 (CDE у Sun и HP)&lt;br /&gt;
  TCPBLOCK=&amp;quot;$COMBLOCK 98 512:515 1080 6000:6009 6112&amp;quot;&lt;br /&gt;
 # Порты UDP:&lt;br /&gt;
 # 161:162 - SNMP&lt;br /&gt;
 # 520=RIP, 9000 - Sangoma&lt;br /&gt;
 # 517:518 - talk и ntalk (самые надоедливые)&lt;br /&gt;
  UDPBLOCK=&amp;quot;$COMBLOCK 161:162 520 123 517:518 1427 9000&amp;quot;&lt;br /&gt;
 echo -n &amp;quot;FW: Blocking attacks to TCP port&amp;quot;&lt;br /&gt;
 for i in $TCPBLOCK;&lt;br /&gt;
 do&lt;br /&gt;
  echo -n &amp;quot;$i &amp;quot;&lt;br /&gt;
   $IPT -A INPUT   -p tcp --dport $i  -j DROPl&lt;br /&gt;
   $IPT -A OUTPUT  -p tcp --dport $i  -j DROPl&lt;br /&gt;
   $IPT -A FORWARD -p tcp --dport $i  -j DROPl&lt;br /&gt;
 done&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo -n &amp;quot;FW: Blocking attacks to UDP port &amp;quot;&lt;br /&gt;
 for i in $UDPBLOCK;&lt;br /&gt;
 do&lt;br /&gt;
  echo -n &amp;quot;$i &amp;quot;&lt;br /&gt;
   $IPT -A INPUT   -p udp --dport $i  -j DROPl&lt;br /&gt;
   $IPT -A OUTPUT  -p udp --dport $i  -j DROPl&lt;br /&gt;
   $IPT -A FORWARD -p udp --dport $i  -j DROPl&lt;br /&gt;
 done&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 # Открываем отлеживание соединений по ftp&lt;br /&gt;
  MODULES=&amp;quot;ip_nat_ftp ip_conntrack_ftp&amp;quot;&lt;br /&gt;
  for i in $MODULES;&lt;br /&gt;
  do&lt;br /&gt;
   echo &amp;quot;Inserting module $i&amp;quot;&lt;br /&gt;
   modprobe $i&lt;br /&gt;
  done&lt;br /&gt;
 # Защищаем некоторые распространенные клиенты для чата.&lt;br /&gt;
 # Уберите из списка допустимых для пущей безопасности.&lt;br /&gt;
  IRC='ircd'&lt;br /&gt;
  MSN=1863&lt;br /&gt;
  ICQ=5190&lt;br /&gt;
  NFS='sunrpc'&lt;br /&gt;
 # Нам нужно синхронизировать данные!!&lt;br /&gt;
  PORTAGE='rsync'&lt;br /&gt;
  OpenPGP_HTTP_Keyserver=11371&lt;br /&gt;
 # Все порты сервисов читаются из /etc/services&lt;br /&gt;
  TCPSERV=&amp;quot;domain ssh http https ftp ftp-data mail pop3 pop3s imap3 imaps imap2 time $PORTAGE $IRC $MSN $ICQ  $OpenPGP_HTTP_Keyserver&amp;quot; UDPSERV=&amp;quot;domain time&amp;quot;&lt;br /&gt;
 echo -n &amp;quot;FW: Allowing inside systems to use service:&amp;quot;&lt;br /&gt;
 for i in $TCPSERV;&lt;br /&gt;
 do&lt;br /&gt;
  echo -n &amp;quot;$i &amp;quot;&lt;br /&gt;
   $IPT -A OUTPUT  -o $EXTIF -p tcp -s $EXTIP --dport $i --syn -m state --state NEW -j ACCEPT&lt;br /&gt;
   $IPT -A FORWARD -i $INTIF1 -p tcp -s $INTNET1 --dport $i --syn -m state --state NEW -j ACCEPT&lt;br /&gt;
   $IPT -A FORWARD -i $INTIF2 -p tcp -s $INTNET2 --dport $i --syn -m state --state NEW -j ACCEPT&lt;br /&gt;
 done&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo -n &amp;quot;FW: Allowing inside systems to use service:&amp;quot;&lt;br /&gt;
 for i in $UDPSERV;&lt;br /&gt;
 do&lt;br /&gt;
  echo -n &amp;quot;$i &amp;quot;&lt;br /&gt;
   $IPT -A OUTPUT  -o $EXTIF -p udp -s $EXTIP --dport $i -m state --state NEW -j ACCEPT&lt;br /&gt;
   $IPT -A FORWARD -i $INTIF1 -p udp -s $INTNET1 --dport $i -m state --state NEW -j ACCEPT&lt;br /&gt;
   $IPT -A FORWARD -i $INTIF2 -p udp -s $INTNET2 --dport $i -m state --state NEW -j ACCEPT&lt;br /&gt;
 done&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 # Разрешается ping наружу&lt;br /&gt;
 $IPT -A OUTPUT  -o $EXTIF -p icmp -s $EXTIP --icmp-type 8 -m state --state NEW -j ACCEPT&lt;br /&gt;
 $IPT -A FORWARD -i $INTIF1 -p icmp -s $INTNET1 --icmp-type 8 -m state --state NEW -j ACCEPT&lt;br /&gt;
 $IPT -A FORWARD -i $INTIF2 -p icmp -s $INTNET2 --icmp-type 8 -m state --state NEW -j ACCEPT&lt;br /&gt;
 # Файерволу разрешается ping внутренних систем&lt;br /&gt;
 $IPT -A OUTPUT  -o $INTIF1 -p icmp -s $INTNET1 --icmp-type 8 -m state --state NEW -j ACCEPT&lt;br /&gt;
 $IPT -A OUTPUT  -o $INTIF2 -p icmp -s $INTNET2 --icmp-type 8 -m state --state NEW -j ACCEPT                                                                                                                                                             &lt;br /&gt;
 $IPT -A INPUT   -i $INTIF1 -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT&lt;br /&gt;
 $IPT -t nat -A PREROUTING -j ACCEPT&lt;br /&gt;
 $IPT -t nat -A POSTROUTING -o $EXTIF -s $INTNET1 -j MASQUERADE&lt;br /&gt;
 $IPT -t nat -A POSTROUTING -o $EXTIF -s $INTNET2 -j MASQUERADE&lt;br /&gt;
 $IPT -t nat -A POSTROUTING -j ACCEPT&lt;br /&gt;
 $IPT -t nat -A OUTPUT -j ACCEPT&lt;br /&gt;
 $IPT -A INPUT -p tcp --dport auth --syn -m state --state NEW -j ACCEPT&lt;br /&gt;
 $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
 # Заблокировать и запротоколировать все, что мы могли забыть.&lt;br /&gt;
 $IPT -A INPUT -j DROPl&lt;br /&gt;
 $IPT -A OUTPUT -j REJECTl&lt;br /&gt;
 $IPT -A FORWARD -j DROPl&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</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=379</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=379"/>
		<updated>2011-12-24T15:34:40Z</updated>

		<summary type="html">&lt;p&gt;Langator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div  ALIGN=JUSTIFY&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:57%; padding-right: 3%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--############ == О проекте Ай Да Linux == #############--&amp;gt;&lt;br /&gt;
== О проекте Ай Да Linux ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;[[File:Larry-hi.png|moo|link=]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Главная страница}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-----########### == Getting started == #############-----&amp;gt;&lt;br /&gt;
== Getting started ==&lt;br /&gt;
Вы можете редактировать и создавать страницы на этой Wiki.&lt;br /&gt;
&lt;br /&gt;
Для навигации по сайту можно воспользоваться поиском, посмотреть [[Служебная:AllPages|все]] имеющиеся статьи или [[%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Random|случайную]].&lt;br /&gt;
Прежде чем редактировать или создавать новые страницы, пожалуйста, обратитесь к [[Справка:Содержание|справке]]. Так же можно заглянуть в [http://meta.wikimedia.org/wiki/Help:Contents MediaWiki User's Guide] содержащий информацию о работе wiki.&lt;br /&gt;
&lt;br /&gt;
Если у Вас возникнут какие-либо вопросы, Вы всегда можете написать нам по адресу [mailto:aidalinux@gmail.com aidalinux@gmail.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 40%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-----------------  == News ==  ---------------------------&amp;gt;&lt;br /&gt;
== News ==&lt;br /&gt;
{{News|17.12.2011|Добро пожаловать на Ай Да Linux Wiki|&lt;br /&gt;
Идет активное формирование главной страницы  Wiki, пожелания и предложения оставляйте на [[%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%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 | странице обсуждения]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--#########== Недавно добавленные страницы ==###########--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Недавно добавленные страницы ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----################################################-----&amp;gt;&lt;br /&gt;
&amp;lt;!----------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:%D0%A1%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=378</id>
		<title>Справка:Содержание</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:%D0%A1%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=378"/>
		<updated>2011-12-24T15:24:25Z</updated>

		<summary type="html">&lt;p&gt;Langator: /* Смотрите также */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Чтение == &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
* [[Help:Navigation|Навигация]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
* [[Help:Searching|Поиск]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
* [[Help:Tracking changes|Отслеживание изменений]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* [[Help:Watchlist|Список наблюдения]]&lt;br /&gt;
&lt;br /&gt;
== Пользовательские настройки == &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
* [[Help:Preferences|Настройки]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
* [[Help:User page|Страница пользователя]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
* [[Help:Signatures|Подпись]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Редактирование ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Help:Editing pages|Редактирование страниц]]&lt;br /&gt;
* [[Help:Starting a new page|Создание новой страницы]]&lt;br /&gt;
* [[Help:Formatting|Форматирование]]&lt;br /&gt;
* [[Help:Links|Ссылки]]&lt;br /&gt;
* [[Help:Translating|Перевод]]&lt;br /&gt;
* [[Help:Talk pages|Обсуждение]]&lt;br /&gt;
&lt;br /&gt;
=== Расширенное редактирование ===&lt;br /&gt;
* [[Help:Images|Изображения]]&lt;br /&gt;
* [[Help:Tables|Таблицы]]&lt;br /&gt;
* [[Help:Categories|Категории]]&lt;br /&gt;
* [[Help:Subpages|Подкатегории]]&lt;br /&gt;
* [[Help:Managing files|Управление файлами]]&lt;br /&gt;
* [[Help:Moving a page|Перемещение (переименование) страниц]]&lt;br /&gt;
* [[Help:Redirects|Перенаправление]]&lt;br /&gt;
* [[Help:Deleting a page|Удаление страниц]]&lt;br /&gt;
* [[Help:Protected pages|Защита страниц]]&lt;br /&gt;
* [[Help:Patrolled edits|проверенные правки]]&lt;br /&gt;
&lt;br /&gt;
* [[Help:Templates|Шаблоны]]&lt;br /&gt;
* [[Help:Magic words|Magic words]]&lt;br /&gt;
* [[Help:Template sandbox and test cases|Песочница]]&lt;br /&gt;
&lt;br /&gt;
* [[Help:Namespaces|Пространство имен]]&lt;br /&gt;
* [[Help:Special pages|Специальные страницы]]&lt;br /&gt;
&lt;br /&gt;
* [[Help:External searches|Внешний поиск]]&lt;br /&gt;
* [[Help:Bots|Боты]]&lt;br /&gt;
&lt;br /&gt;
=== Шаблоны ===&lt;br /&gt;
* [[Special:PrefixIndex/Template:|Все шаблоны]]&lt;br /&gt;
** [[:Category:Formatting templates|Форматирование шаблонов]]&lt;br /&gt;
** [[:Category:InfoBox templates|Шаблон InfoBox]]&lt;br /&gt;
** [[:Category:Templates for templates|Шаблоны для шаблонов]]&lt;br /&gt;
** [[:Category:License templates|Шаблоны лицензий]]&lt;br /&gt;
&lt;br /&gt;
== Смотрите также ==&lt;br /&gt;
* [[metawikipedia:Help:Contents|Help:Contents]] на meta.wikimedia.org&lt;br /&gt;
* [http://wiki.gentoo.org/wiki/Help:Contents Help:Contents] на wiki.gentoo.org&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:License_templates&amp;diff=377</id>
		<title>Категория:License templates</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:License_templates&amp;diff=377"/>
		<updated>2011-12-24T15:20:43Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Category:Templates»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Templates]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Templates_for_templates&amp;diff=376</id>
		<title>Категория:Templates for templates</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Templates_for_templates&amp;diff=376"/>
		<updated>2011-12-24T15:20:05Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Category:Templates»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Templates]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:InfoBox_templates&amp;diff=375</id>
		<title>Категория:InfoBox templates</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:InfoBox_templates&amp;diff=375"/>
		<updated>2011-12-24T15:19:21Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Category:Templates»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Templates]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Formatting_templates&amp;diff=374</id>
		<title>Категория:Formatting templates</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Formatting_templates&amp;diff=374"/>
		<updated>2011-12-24T15:18:49Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Category:Templates»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Templates]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Bots&amp;diff=373</id>
		<title>Справка:Bots</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Bots&amp;diff=373"/>
		<updated>2011-12-24T15:18:21Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «A '''bot''' is a computer program that automatically retrieves or updates wiki pages when it is executed. In general, bots are used for repetitive maintenance tasks,...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A '''bot''' is a computer program that automatically retrieves or updates wiki pages when it is executed. In general, bots are used for repetitive maintenance tasks, whose volume and characteristics are too large to be performed manually by users.&lt;br /&gt;
&lt;br /&gt;
Developing and executing bots is normally outside the role of normal users, requires programming experience and must be done in coordination with the wiki's admins.&lt;br /&gt;
&lt;br /&gt;
By default, bot edits are hidden in [[Special:RecentChanges|{{ns:special}}:{{MediaWiki:Recentchanges}}]]. &lt;br /&gt;
&lt;br /&gt;
== Framework and interface for bot development ==&lt;br /&gt;
Bots do not access the wiki through the normal graphical user interface. MediaWiki has an API (Application Programming Interface) available for this purpose. An API is a protocol for standardised communication between two computer programs. Check [[mw:API:Client code|API:Client code]] for more information.&lt;br /&gt;
&lt;br /&gt;
To access a wiki through the API a bot must have a user account, which has been granted 'bot' permissions.&lt;br /&gt;
&lt;br /&gt;
=== pywikipediabot ===&lt;br /&gt;
[[metawikipedia:pywikipediabot|pywikipediabot]] provides a framework for the development of bots, which are commonly used to perform maintenance tasks such as adding a footer to some categorized pages ([[mw:pywikipediabot/add_text.py|add_text.py]]), adding some [[Help:Links|wikilinks]] ([[metawikipedia:pywikipediabot/replace.py|replace.py]]), moving old contents of [[Help:Talk pages|talk pages]] to [[Help:Subpages|subpages]] ([[metawikipedia:pywikipediabot/archivebot.py|archivebot.py]]), editing [[Help:Categories|categories]] ([[metawikipedia:pywikipediabot/category.py|category.py]]), or managing [[Help:Templates|templates]] ([[metawikipedia:pywikipediabot/template.py|template.py]]).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[metawikipedia:Bot|Bot]] on meta.wikimedia.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:External_searches&amp;diff=372</id>
		<title>Справка:External searches</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:External_searches&amp;diff=372"/>
		<updated>2011-12-24T15:17:50Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «It is possible to create an external searches of a topic using key words using a template.  For example, this is something that would work for Google: &amp;lt;pre style=&amp;quot;ov...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to create an external searches of a topic using key words using a template.&lt;br /&gt;
&lt;br /&gt;
For example, this is something that would work for Google:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow: auto&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;border: 1px solid #CCD5DB;&amp;quot;&amp;gt;[[Image:GoogleIcon.PNG]] [http://www.google.com/search?safe=off&amp;amp;q={{{1|Wiki}}} {{{1|Google}}}]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Usage==&lt;br /&gt;
Allows to establish a link to a search query at the Google search engine:&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:table; width:auto;&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Google|Term1+Term2+Term3}}&lt;br /&gt;
&amp;amp;lt;/pre&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Template|Google]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The usage is very simple and easy to use. &amp;lt;nowiki&amp;gt;{{Google|firstTerm+Second+etc}}&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
It is also possible to do phrases by using %22Term1+Term2+etc%22&lt;br /&gt;
&lt;br /&gt;
* External searches are useful where an article requires certain keywords to make an effective search.&lt;br /&gt;
* For the editor it allows making searches of web more quickly and painlessly.&lt;br /&gt;
&lt;br /&gt;
Other applications of the template include searching Forums, for bug reports of the same type for software development wikis where the wiki and forum work together.&lt;br /&gt;
&lt;br /&gt;
Note: Wikipedia has an [[Help:Links#Interwiki_links|interwiki prefix]] with a similar effect, so you can link to google results with &amp;lt;nowiki&amp;gt;[[Google:firstTerm+Second+etc]]&amp;lt;/nowiki&amp;gt;, although templates are still useful for linking other search engines.&lt;br /&gt;
&lt;br /&gt;
For a clear advantage of implementing a template over the default Google interwiki prefix, consider the following, modified example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow: auto&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;border: 1px solid #CCD5DB;&amp;quot;&amp;gt;[[Image:GoogleIcon.PNG]] [http://www.google.com/search?safe=off&amp;amp;q={{urlencode:{{{1|Wiki}}}}} {{{1|Google}}}]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Usage==&lt;br /&gt;
Allows to establish a link to a search query at the Google search engine:&lt;br /&gt;
* &amp;lt;code&amp;gt;{{Google|Term1 Term2 Term3}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{Google|&amp;quot;a phrase&amp;quot;}}&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Category:Template|Google]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the application of MediaWiki [[Help:Magic words|magic word]] &amp;lt;code&amp;gt;urlencode&amp;lt;/code&amp;gt;. This grants us the convenience and elegance of entering the query string in a Wikipedia article in the same literal form we would enter it in Google search box, including spaces and quotation marks instead of representing them indirectly with &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;%20&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Special_pages&amp;diff=371</id>
		<title>Справка:Special pages</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Special_pages&amp;diff=371"/>
		<updated>2011-12-24T15:17:06Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «'''Special pages''' are pages that are created by the software on demand. They are located in their own namespace ''Special:'' and are not editab...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Special pages''' are pages that are created by the software on demand. They are located in their own [[Help:Namespaces|namespace]] ''Special:'' and are not editable directly as other pages. &lt;br /&gt;
&lt;br /&gt;
Some special pages depend on the [[Help:Preferences|preferences]] that have been set by a user, e.g. the number of titles which is displayed on a user's [[Help:Watchlist|watchlist]].&lt;br /&gt;
&lt;br /&gt;
== List of special pages ==&lt;br /&gt;
Clicking the link ''[[Special:Specialpages]]'' will take you to a list of all special pages on a wiki. Such a link is often accessible in the [[Help:Navigation#Toolbox|toolbox]] on the left hand panel. Some special pages can be [[Help:Transclusion|transcluded]].&lt;br /&gt;
&lt;br /&gt;
* [[Help:New images|New images]] (includable)&lt;br /&gt;
* [[Help:New pages|New pages]] (includable)&lt;br /&gt;
* [[Help:Preferences|Preferences]]&lt;br /&gt;
* [[Help:Random page|Random page]]&lt;br /&gt;
* [[Help:Recent changes|Recent changes]] (includable)&lt;br /&gt;
* [[Help:Watchlist|Watchlist]]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Namespaces&amp;diff=370</id>
		<title>Справка:Namespaces</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Namespaces&amp;diff=370"/>
		<updated>2011-12-24T15:16:02Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Pages on a MediaWiki wiki are grouped into collections called &amp;quot;'''namespaces'''&amp;quot;, which differentiate between the purpose of the pages at a high level.  Pages in cer...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pages on a MediaWiki wiki are grouped into collections called &amp;quot;'''namespaces'''&amp;quot;, which differentiate between the purpose of the pages at a high level.  Pages in certain namespaces can also have special properties or behave differently when they interact with other pages.  &lt;br /&gt;
&lt;br /&gt;
Namespaces are indicated in page titles by prefixing the page name with &amp;quot;&amp;lt;tt&amp;gt;namespace:&amp;lt;/tt&amp;gt;&amp;quot;, so the prefix &amp;quot;&amp;lt;tt&amp;gt;{{NAMESPACE}}:&amp;lt;/tt&amp;gt;&amp;quot; in this page's title (&amp;quot;{{FULLPAGENAME}}&amp;quot;) indicates that this page is in the {{NAMESPACE}} namespace. Note, however, that colons and prefixes can also appear in page titles ''without'' indicating a namespace: The page &amp;quot;Foo:{{PAGENAME}}&amp;quot; is a page located in the [[#0: (Main)|mainspace]] because the namespace &amp;quot;Foo&amp;quot; does not exist.  Similarly the page &amp;quot;{{NAMESPACE}}:Foo:{{PAGENAME}}&amp;quot; is in the &amp;quot;{{NAMESPACE}}&amp;quot; namespace.&lt;br /&gt;
&lt;br /&gt;
== Standard namespaces ==&lt;br /&gt;
The standard MediaWiki installation has sixteen namespaces which can contain user-generated content; there are also two special namespaces which contain pages created 'on the fly' by the MediaWiki software.  The standard namespaces are organised in pairs, with each pair containing a 'subject namespace' and a 'discussion namespace'.  The namespaces are numbered from zero such that all subject namespaces have even indices, and all talk namespaces have odd indices.&lt;br /&gt;
&lt;br /&gt;
==== -2: {{ns:-2}} ====&lt;br /&gt;
This namespace is an alias used for direct linking to media files: the link [[{{ns:-2}}:Wiki.png]] links to just the image rather than the image description page, which would be [[:{{ns:6}}:Wiki.png]]. &lt;br /&gt;
&lt;br /&gt;
==== -1: {{ns:-1}} ====&lt;br /&gt;
This namespace is used to group [[Help:Special pages|special pages]], reports and interfaces that are generated 'on demand' by MediaWiki and which are not directly editable.  It is not possible to create pages in this namespace except by modifying or extending the MediaWiki software.&lt;br /&gt;
&lt;br /&gt;
==== 0: (Main) ====&lt;br /&gt;
Namespace zero is the 'null' namespace, commonly called the &amp;quot;main namespace&amp;quot; or &amp;quot;mainspace&amp;quot;.  This namespace typically contains the bulk of the [[mw:Manual:$wgContentNamespaces|content pages]] in a wiki. This namespace generally has no special properties.&lt;br /&gt;
&lt;br /&gt;
==== 1: {{ns:1}} ====&lt;br /&gt;
The &amp;quot;Talk&amp;quot; namespace is the discussion namespace attached to the mainspace.  It has no special properties.&lt;br /&gt;
&lt;br /&gt;
==== 2: {{ns:2}} ====&lt;br /&gt;
Each user has a corresponding page in the {{ns:2}} namespace, which is linked to from edit histories, watchlists, recent changes, etc; wherever an individual user is uniquely identified. This page, and subpages of it, can be used by users to record information about themselves or to test and draft new content.  Pages of the form &amp;quot;&amp;lt;tt style=&amp;quot;whitespace:nowrap&amp;quot;&amp;gt;{{ns:2}}:''UserName''/Foo'''.js'''&amp;lt;/tt&amp;gt;&amp;quot; or &amp;quot;&amp;lt;tt style=&amp;quot;whitespace:nowrap&amp;quot;&amp;gt;{{ns:2}}:''UserName''/Foo'''.css'''&amp;lt;/tt&amp;gt;&amp;quot; can only be edited by the user themselves or by administrators.&lt;br /&gt;
&lt;br /&gt;
==== 3: {{ns:3}} ====&lt;br /&gt;
This namespace is the talkspace associated with the {{ns:2}} namespace. Pages in this namespace are mainly used to leave messages for particular users or inform them of discussions that may be of interest to them. To facilitate this, when a page  &amp;quot;{{ns:3}}:UserName&amp;quot; is edited, whenever the user 'UserName' loads a page, a notice is displayed at the top of the page informing them of the edit:&lt;br /&gt;
&amp;lt;div class=&amp;quot;usermessage plainlinks&amp;quot;&amp;gt;You have [[{{ns:3}}:UserName|&amp;lt;span style=&amp;quot;color:#002bb8&amp;quot;&amp;gt;new messages&amp;lt;/span&amp;gt;]] ([{{fullurl:{{ns:3}}:UserName&amp;amp;diff=cur}} &amp;lt;span style=&amp;quot;color:#002bb8&amp;quot;&amp;gt;last change&amp;lt;/span&amp;gt;]).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This notice continues to appear until the user loads their user talk page to read the message.&lt;br /&gt;
&lt;br /&gt;
==== 4: {{ns:4}} ====&lt;br /&gt;
This namespace is normally used for meta-discussions related to the operation and development of the wiki. It has no special properties.&lt;br /&gt;
&lt;br /&gt;
==== 5: {{ns:5}} ====&lt;br /&gt;
This is a talk namespace that is normally used for discussions related to the associated subject pages.  It has no special properties.&lt;br /&gt;
&lt;br /&gt;
==== 6: {{ns:6}} ====&lt;br /&gt;
[[Image:Wiki.png|right]]&lt;br /&gt;
The {{ns:6}} namespace is used to store metadata for images, videos, sound files and other media accessed via the {{ns:-2}} namespace.  Each file has a corresponding page in the {{ns:6}} namespace which is often used to hold licensing data.  Linking ''directly'' to a page in this namespace instead includes the media file inline in the page: &amp;lt;tt style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;{{ns:6}}&amp;lt;nowiki&amp;gt;:Wiki.png|right]]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; produces the image to the right.  See [[Help:Images]] for more details of this link syntax.  To create an [[Help:Links|internal link]] to the file page, you need to add a colon to the front of the namespace: &amp;lt;tt style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;[[:&amp;lt;/nowiki&amp;gt;{{ns:6}}&amp;lt;nowiki&amp;gt;:Wiki.png|right]]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; produces [[:{{ns:6}}:Wiki.png]].&lt;br /&gt;
The standard MediaWiki installation has alias &amp;quot;Image&amp;quot; for {{ns:6}} namespace - See [[Help:Namespaces#Namespace aliases|Namespace aliases]].&lt;br /&gt;
&lt;br /&gt;
==== 7: {{ns:7}} ====&lt;br /&gt;
This is a talk namespace that is normally used for discussions related to the associated media files.  It has no special properties.&lt;br /&gt;
&lt;br /&gt;
==== 8: {{ns:8}} ====&lt;br /&gt;
The MediaWiki namespace is used to hold system messages and other important content. For instance, the page [[{{ns:8}}:Vector-view-edit]] contains the text that fills the &amp;quot;Edit&amp;quot; tab at the top of every page.  If that page exists, it overrides the default content, which is &amp;quot;edit this page&amp;quot;. Similarly, [[{{ns:8}}:Common.css]] is the system message which holds the [[wikipedia:Cascading Style Sheets|CSS]] code that is loaded for all users for each page. It has the special property that the entire namespace is fully protected and can only be edited by administrators.&lt;br /&gt;
&lt;br /&gt;
==== 9: {{ns:9}} ====&lt;br /&gt;
This is a talk namespace that is normally used for discussions related to the associated system messages.  It has no special properties.&lt;br /&gt;
&lt;br /&gt;
==== 10: {{ns:10}} ====&lt;br /&gt;
The {{ns:10}} namespace is used to hold [[Help:Templates|templates]], blocks of text or wikicode that are intended to be transcluded into several other pages.  To facilitate this it has the special property that it is the ''default'' namespace for transclusions: the wikicode &amp;lt;tt style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;{{Foo}}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; is equivalent to &amp;lt;tt style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;'''{{ns:10}}:'''&amp;lt;nowiki&amp;gt;Foo}}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== 11: {{ns:11}} ====&lt;br /&gt;
This is a talk namespace that is normally used for discussions related to the associated template pages.  It has no special properties.&lt;br /&gt;
&lt;br /&gt;
==== 12: {{ns:12}} ====&lt;br /&gt;
The {{ns:12}} namespace is usually used to hold help files, instructions and 'how-to' guides.  It has no special properties.&lt;br /&gt;
&lt;br /&gt;
==== 13: {{ns:13}} ====&lt;br /&gt;
This is a talk namespace that is normally used for discussions related to the associated help pages.  It has no special properties.&lt;br /&gt;
&lt;br /&gt;
==== 14: {{ns:14}} ====&lt;br /&gt;
The {{ns:14}} namespace contains [[Help:Categories|categories]], dynamic lists of other pages.  To facilitate this, linking ''directly'' to a category page does not output an inline link, but instead includes the page into the associated category page.  So the code &amp;lt;tt style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;{{ns:14}}&amp;lt;nowiki&amp;gt;:Help]]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; causes a category link to appear at the bottom of the page (at the bottom in the box marked &amp;quot;Categories&amp;quot;). Clicking on that link takes you to the category page, where this page is visible in the category list.  To create an inline link to a category page, you need to add a colon to the front of the namespace: &amp;lt;tt style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;[[:&amp;lt;/nowiki&amp;gt;{{ns:14}}&amp;lt;nowiki&amp;gt;:Help]]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; produces [[:{{ns:14}}:Help]].  See [[Help:Categories]] for more details on category link syntax.&lt;br /&gt;
&lt;br /&gt;
==== 15: {{ns:15}} ====&lt;br /&gt;
This is a talk namespace that is normally used for discussions related to the associated category pages.  It has no special properties.&lt;br /&gt;
&lt;br /&gt;
== Identifying namespaces ==&lt;br /&gt;
There are a number of ways by which the namespace of a particular page can be identified:&lt;br /&gt;
&lt;br /&gt;
;Magic words&lt;br /&gt;
The [[Help:Magic words|magic word]] &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{{NAMESPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; returns the value of the namespace the page is in.&lt;br /&gt;
&lt;br /&gt;
;JavaScript&lt;br /&gt;
The JavaScript variable &amp;lt;tt&amp;gt;wgCanonicalNamespace&amp;lt;/tt&amp;gt; contains the full namespace name.  The variable &amp;lt;tt&amp;gt;wgNamespaceNumber&amp;lt;/tt&amp;gt; contains the numerical index of the namespace.&lt;br /&gt;
&lt;br /&gt;
;CSS&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;body&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; tag of the HTML page output is given two CSS classes that vary by namespace: A class &amp;lt;tt&amp;gt;ns-#&amp;lt;/tt&amp;gt;, where # is the index of the namespace, and &amp;lt;tt&amp;gt;ns-XXX&amp;lt;/tt&amp;gt;, where XXX is &amp;quot;&amp;lt;tt&amp;gt;subject&amp;lt;/tt&amp;gt;&amp;quot; for all [[mw:Manual:Namespace#Subject and talk namespaces|subject namespaces]], &amp;quot;&amp;lt;tt&amp;gt;special&amp;lt;/tt&amp;gt;&amp;quot; for pages in the {{ns:-1}} namespace, and &amp;quot;&amp;lt;tt&amp;gt;talk&amp;lt;/tt&amp;gt;&amp;quot; for [[mw:Manual:Namespace#Subject and talk namespaces|talk namespaces]]. So CSS code such as the following can be used to change the appearance of an object based on its namespace:&lt;br /&gt;
&amp;lt;source lang=css&amp;gt;&lt;br /&gt;
.ns-subject a &lt;br /&gt;
{   /* Almost all links on subject pages to be green. */&lt;br /&gt;
    color: #00FF00;&lt;br /&gt;
}&lt;br /&gt;
.ns-talk a &lt;br /&gt;
{      /* Links on talk pages to be blue. */&lt;br /&gt;
    color: #0000FF;&lt;br /&gt;
}&lt;br /&gt;
.ns-3 a &lt;br /&gt;
{         /* and links on user talk pages to be red */&lt;br /&gt;
    color: #FF0000;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;API&lt;br /&gt;
You can get a complete list of all the namespaces used on this wiki from the API:&lt;br /&gt;
:{{SERVER}}/w/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;siprop=namespaces&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[mw:Manual:Namespace|Manual:Namespace]] on mediawiki.org&lt;br /&gt;
* [[mw:Manual:Using custom namespaces|Manual:Using custom namespaces]] on mediawiki.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Template_sandbox_and_test_cases&amp;diff=369</id>
		<title>Справка:Template sandbox and test cases</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Template_sandbox_and_test_cases&amp;diff=369"/>
		<updated>2011-12-24T15:15:20Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Templates are a very powerful feature of MediaWiki, but mistakes can be easily made, even by experienced users. Complex templates should therefore...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Help:Templates|Templates]] are a very powerful feature of MediaWiki, but mistakes can be easily made, even by experienced users. Complex templates should therefore be accompanied by '''[[wikipedia:Sandbox (software development)|sandboxes]]''' and '''[[wikipedia:test case|test cases]]''' to prevent bugs.&lt;br /&gt;
&lt;br /&gt;
== For what kind of templates ==&lt;br /&gt;
It is recommended to apply the test case pattern to templates using [[mw:Help:Extension:ParserFunctions|ParserFunctions]] that can generate very different looking output, such as the ones that take many parameters, or the ones that have many branches of the &amp;lt;tt&amp;gt;#switch&amp;lt;/tt&amp;gt; operator.&lt;br /&gt;
&lt;br /&gt;
For navigational boxes, of which the outputs are almost identical on each transcluding page, the benefit may not outweight the time and effort.&lt;br /&gt;
&lt;br /&gt;
Any template that is transcluded in thousands of pages should of course be tested before an edit is made.&lt;br /&gt;
&lt;br /&gt;
== Prerequisite ==&lt;br /&gt;
The template must be properly documented following [[wikipedia:Wikipedia:Template documentation|Wikipedia:Template documentation]].&lt;br /&gt;
&lt;br /&gt;
Furthermore, the template should not have too many interleaving &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; blocks. Ideally there is only one &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; block, placed at the bottom of the template, and containing the [[Template:Documentation|&amp;lt;nowiki&amp;gt;{{Documentation}}&amp;lt;/nowiki&amp;gt;]] template.&lt;br /&gt;
&lt;br /&gt;
== How to create /sandbox and /testcases subpages ==&lt;br /&gt;
1: Suppose your template is named &amp;lt;tt&amp;gt;Template:X&amp;lt;/tt&amp;gt;. Create sandbox and testcases subpages by clicking on the &amp;quot;create&amp;quot; links in the Note box under the documentation. The subpages will have the names &amp;lt;tt&amp;gt;Template:X/sandbox&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Template:X/testcases&amp;lt;/tt&amp;gt; and are preloaded with some default contents. When these subpages are present, the Note box automatically provide links to them. Note that &amp;quot;/sandbox&amp;quot; and &amp;quot;/testcases&amp;quot; are spelled in all lower-case.&lt;br /&gt;
&lt;br /&gt;
2: Copy only the code (everything that is not surrounded by &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;) from your &amp;lt;tt&amp;gt;Template:X&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;Template:X/sandbox&amp;lt;/tt&amp;gt;. Keep the [[Template:Template sandbox notice|&amp;lt;nowiki&amp;gt;{{Template sandbox notice}}&amp;lt;/nowiki&amp;gt;]] line at the bottom:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code style=&amp;quot;display:table; line-height:1.2em;&amp;quot;&amp;gt;&amp;amp;lt;noinclude&amp;gt;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;{{Template sandbox notice}}&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;amp;lt;/noinclude&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other words, the result should be:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code style=&amp;quot;display:table; line-height:1.2em;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color: #FFFF66&amp;quot;&amp;gt;[-- Template code --]&amp;lt;/span&amp;gt;&amp;amp;lt;noinclude&amp;gt;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;{{Template sandbox notice}}&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;amp;lt;/noinclude&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|The template code must start directly before and touch the &amp;lt;code&amp;gt;&amp;amp;lt;/noinclude&amp;gt;&amp;lt;/code&amp;gt; tag. Any blank space or newlines between the template code and the &amp;lt;code&amp;gt;&amp;amp;lt;/noinclude&amp;gt;&amp;lt;/code&amp;gt; tag can cause the template to render unwanted spaces or newlines when used.}}&lt;br /&gt;
&lt;br /&gt;
3: Copy a few transcluding examples from articles (&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{{X | .... }}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;) to your &amp;lt;tt&amp;gt;Template:X/testcases&amp;lt;/tt&amp;gt;. In the test case subpage, duplicate each example, and for '''one copy''' of each example, replace &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; with &amp;lt;tt&amp;gt;X/sandbox&amp;lt;/tt&amp;gt;. This is done so that you may compare the old and new outputs side by side in the future. Lastly, add the following line at the beginning of the test case page. It does not matter how many blank lines you put around it:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code style=&amp;quot;display:table; line-height:1.2em;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;{{Template testcases notice}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4: Thus &amp;lt;tt&amp;gt;Template:X/testcases&amp;lt;/tt&amp;gt; will look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 {{Template testcases notice}}&lt;br /&gt;
&lt;br /&gt;
 {{X | foo}}&lt;br /&gt;
 {{X/sandbox | foo}}&lt;br /&gt;
&lt;br /&gt;
 {{X | bar}}&lt;br /&gt;
 {{X/sandbox | bar}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to use them subsequently ==&lt;br /&gt;
* Sync sandbox from the real template (i.e. step 2 above)&lt;br /&gt;
* Have fun editing the sandbox&lt;br /&gt;
* Verify the test cases&lt;br /&gt;
* If everything looks good, copy the code from the sandbox to the real template&lt;br /&gt;
&lt;br /&gt;
If you chose not to compare the new and old outputs side by side described at the last bullet point of the previous section, it is recommended to use a tabbed browser and open the test case subpage before changing the sandbox, and another after changing the sandbox. This can ensure that the differences are compared accurately.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
* [[Template:GenericCmd|&amp;lt;nowiki&amp;gt;{{GenericCmd}}&amp;lt;/nowiki&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Template:Template sandbox notice|&amp;lt;nowiki&amp;gt;{{Template sandbox notice}}&amp;lt;/nowiki&amp;gt;]] – To put at the bottom of /sandbox pages.&lt;br /&gt;
* [[Template:Template testcases notice|&amp;lt;nowiki&amp;gt;{{Template test cases notice}}&amp;lt;/nowiki&amp;gt;]] – To put on top of /testcases pages.&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Magic_words&amp;diff=368</id>
		<title>Справка:Magic words</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Magic_words&amp;diff=368"/>
		<updated>2011-12-24T15:13:36Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «'''Magic words''' are strings of text that MediaWiki associates with a return value or function, such as time, site details, or page names.  There are three general ...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Magic words''' are strings of text that MediaWiki associates with a return value or function, such as time, site details, or page names.&lt;br /&gt;
&lt;br /&gt;
There are three general types of magic words:&lt;br /&gt;
* '''[[#Behavior switches|Behavior switches]]''': these are uppercase words surrounded by double underscores, e.g. '''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__FOO__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''[[#Variables|Variables]]''': these are uppercase words surrounded by double braces, e.g. '''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{FOO}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;'''. As such, they look a lot like [[Help:Templates|templates]].&lt;br /&gt;
* '''[[#Parser functions|Parser functions]]''': these take parameters and are either of the form '''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{foo:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;''' or '''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#foo:...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;'''. See also [[mw:Help:Extension:ParserFunctions|Help:Extension:ParserFunctions]].&lt;br /&gt;
&lt;br /&gt;
Page-dependent magic words will affect or return data about the ''current'' page (by default), even if the word is added through a transcluded template or included system message.&lt;br /&gt;
&lt;br /&gt;
== Behavior switches ==&lt;br /&gt;
A behavior switch controls the layout or behavior of the page and can often be used to specify desired omissions and inclusions in the content.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Word&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;3&amp;quot;| '''Table of contents'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NOTOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hides the table of contents (TOC).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__FORCETOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Forces the table of content to appear at its normal position (above the first header).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__TOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Places a table of contents at the word's current position (overriding &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NOTOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;). If this is used multiple times, the table of contents will appear at the first word's position. It is possible to suppress the auto-generated section numbers, if the proper class exists locally at [[MediaWiki:Common.css]], defined as &amp;lt;code&amp;gt;.tocnumber { display: none; }&amp;lt;/code&amp;gt;. &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;3&amp;quot;| '''Editing'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NOEDITSECTION__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Hides the section edit links beside headings.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NEWSECTIONLINK__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Adds a link &amp;quot;+&amp;quot; beside the &amp;quot;edit&amp;quot; tab for adding a new section on a non-talk page (see [[metawikipedia:Help:Section#Adding a section at the end|Adding a section to the end]] (meta.wikimedia.org)).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NONEWSECTIONLINK__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Removes the link beside the &amp;quot;edit&amp;quot; tab on pages in talk namespaces.&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;3&amp;quot;| '''Categories'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NOGALLERY__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Used on a category page, replaces thumbnails in the category view with normal links.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__HIDDENCAT__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Used on a category page, hides the category from the lists of categories in its members and parent categories (there is an option in the [[Help:Preferences|user preferences]] to show them).&amp;lt;!-- hiddencategory hiddencat hide category categories --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;3&amp;quot;| '''Language conversion'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NOCONTENTCONVERT__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NOCC__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| On wikis with language variants, don't perform any content language conversion (character and phase) in article display; for example, only show Chinese (zh) instead of variants like zh_cn, zh_tw, zh_sg, or zh_hk.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NOTITLECONVERT__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NOTC__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| On wikis with language variants, don't perform language conversion on the title (all other content is converted).&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;3&amp;quot;| '''Other'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__START__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| No effect.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__INDEX__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Tell search engines to index the page (overrides [[mw:Manual:$wgArticleRobotPolicies|$wgArticleRobotPolicies]], but not robots.txt).&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NOINDEX__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Tell search engines not to index the page (ie, do not list in search engines' results).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__STATICREDIRECT__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| On redirect pages, don't allow MediaWiki to automatically update the link when someone moves a page and checks &amp;quot;Update any redirects that point to the original title&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
Variables return information about the current page, wiki, or date. Their syntax is similar to [[Help:Templates|templates]]. Variables marked as &amp;quot;&amp;lt;span style=&amp;quot;background:#FED;&amp;quot;&amp;gt;'''[expensive]'''&amp;lt;/span&amp;gt;&amp;quot; are tracked by the software, and the number that can be included on a page is limited.&lt;br /&gt;
&lt;br /&gt;
If a template name conflicts with a variable, the variable will be used (so to transclude the template &amp;quot;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;PAGENAME&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; you would need to write &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;{{ns:10}}:PAGENAME&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;). In some cases, adding parameters will force the parser to invoke a template; for example, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTDAYNAME|x}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; transcludes &amp;quot;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Template:CURRENTDAYNAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot;, ''not'' the variable.&lt;br /&gt;
&lt;br /&gt;
=== Date and time ===&lt;br /&gt;
The following variables return the current date and time in UTC.&lt;br /&gt;
&lt;br /&gt;
Due to MediaWiki and browser caching, these variables frequently show when the page was ''cached'' rather than the current time. The date and time magic words are formatted in the english language.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Output&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Year'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTYEAR}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTYEAR}}&lt;br /&gt;
| Year&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Month'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTMONTH}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
| {{CURRENTMONTH}}&lt;br /&gt;
| Month (zero-padded number)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTMONTHNAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTMONTHNAME}}&lt;br /&gt;
| Month (name)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTMONTHNAMEGEN}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTMONTHNAMEGEN}}&lt;br /&gt;
| Month ([[wikipedia:genitive|genitive form]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTMONTHABBREV}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTMONTHABBREV}}&lt;br /&gt;
| Month (abbreviation)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Day'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTDAY}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTDAY}}&lt;br /&gt;
| Day of the month (unpadded number)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTDAY2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTDAY2}}&lt;br /&gt;
| Day of the month (zero-padded number)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTDOW}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTDOW}}&lt;br /&gt;
| Day of the week (unpadded number)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTDAYNAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTDAYNAME}}&lt;br /&gt;
| Day of the week (name)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Time'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTTIME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTTIME}}&lt;br /&gt;
| Time (24-hour HH:mm format)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTHOUR}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTHOUR}}&lt;br /&gt;
| Hour (24-hour zero-padded number)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Other'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTWEEK}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTWEEK}}&lt;br /&gt;
| Week (number)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTTIMESTAMP}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTTIMESTAMP}}&lt;br /&gt;
| YYYYMMDDHHmmss timestamp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following variables do the same as the above, but using the site's server config or $wgLocaltimezone.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALYEAR}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALMONTH}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALMONTHNAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALMONTHNAMEGEN}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALMONTHABBREV}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALDAY}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALDAY2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALDOW}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALDAYNAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALTIME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALHOUR}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALWEEK}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LOCALTIMESTAMP}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:''For more thorough time formatting, you may want to use the [[mw:Help:Extension:ParserFunctions#.23time|#time parser function]].''&lt;br /&gt;
&lt;br /&gt;
=== Technical metadata ===&lt;br /&gt;
''Note:'' Revision variables return data about the '''latest edit to the current page''', even if viewing an older version of the page.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Output&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Site'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SITENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{SITENAME}}&lt;br /&gt;
| The wiki's site name ([[mw:Manual:$wgSitename|$wgSitename]]).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SERVER}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{SERVER}}&lt;br /&gt;
| domain URL ([[mw:Manual:$wgServer|$wgServer]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SERVERNAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{SERVERNAME}}&lt;br /&gt;
| domain name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{DIRMARK}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{DIRECTIONMARK}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{DIRMARK}}&amp;lt;br /&amp;gt;{{DIRECTIONMARK}}&lt;br /&gt;
| Outputs a unicode-directional mark that matches the wiki's default language's direction (&amp;lt;code&amp;gt;&amp;amp;amp;lrm;&amp;lt;/code&amp;gt; on left-to-right wikis, &amp;lt;code&amp;gt;&amp;amp;amp;rlm;&amp;lt;/code&amp;gt; on right-to-left wikis), useful in text with multi-directional text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SCRIPTPATH}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{SCRIPTPATH}}&lt;br /&gt;
| relative script path ([[mw:Manual:$wgScriptPath|$wgScriptPath]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{STYLEPATH}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{STYLEPATH}}&lt;br /&gt;
| relative style path ([[mw:Manual:$wgStylePath|$wgStylePath]])&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CURRENTVERSION}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CURRENTVERSION}}&lt;br /&gt;
| The wiki's MediaWiki version.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CONTENTLANGUAGE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CONTENTLANG}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{CONTENTLANGUAGE}}&amp;lt;br /&amp;gt;{{CONTENTLANG}}&lt;br /&gt;
| The wiki's default interface language ([[mw:Manual:$wgLanguageCode|$wgLanguageCode]])&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Latest revision to current page'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{REVISIONID}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{REVISIONID}}&lt;br /&gt;
| Unique revision ID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{REVISIONDAY}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{REVISIONDAY}}&lt;br /&gt;
| Day edit was made (unpadded number)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{REVISIONDAY2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{REVISIONDAY2}}&lt;br /&gt;
| Day edit was made (zero-padded number)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{REVISIONMONTH}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{REVISIONMONTH}}&lt;br /&gt;
| Month edit was made (zero-padded number)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{REVISIONMONTH1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{REVISIONMONTH1}}&lt;br /&gt;
| Month edit was made (unpadded number)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{REVISIONYEAR}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{REVISIONYEAR}}&lt;br /&gt;
| Year edit was made&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{REVISIONTIMESTAMP}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{REVISIONTIMESTAMP}}&lt;br /&gt;
| Timestamp as of time of edit&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{REVISIONUSER}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{REVISIONUSER}}&lt;br /&gt;
| The username of the user who made the most recent edit to the page, or the current user when previewing an edit&lt;br /&gt;
|-style=&amp;quot;background:#FED;&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGESIZE:&amp;lt;/nowiki&amp;gt;''page name''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGESIZE:&amp;lt;/nowiki&amp;gt;''page name''&amp;lt;nowiki&amp;gt;|R}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{PAGESIZE:Help:Magic words}}&amp;lt;br /&amp;gt;{{PAGESIZE:Help:Magic words|R}}&lt;br /&gt;
| '''[expensive]''' Returns the byte size of the specified page. Use &amp;quot;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|R&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; to get raw numbers.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PROTECTIONLEVEL:&amp;lt;/nowiki&amp;gt;''action''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| protection level&lt;br /&gt;
| Outputs the protection level (e.g. 'autoconfirmed', 'sysop') for a given action (e.g. 'edit', 'move') on the current page or an empty string if not protected.&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Affects page content'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{DISPLAYTITLE:&amp;lt;/nowiki&amp;gt;''title''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Format the current page's title header. The value must be equivalent to the default title: only capitalization changes and replacing spaces with underscores are allowed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{DEFAULTSORT:&amp;lt;/nowiki&amp;gt;''sortkey''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{DEFAULTSORTKEY:&amp;lt;/nowiki&amp;gt;''sortkey''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{DEFAULTCATEGORYSORT:&amp;lt;/nowiki&amp;gt;''sortkey''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Used for categorizing pages, sets a default [[Help:Categories|category sort key]]. For example if you put &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{DEFAULTSORT:Update, BIOS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; at the end of [[BIOS Update]], the page would be sorted under &amp;quot;U&amp;quot; by default in categories.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Statistics ===&lt;br /&gt;
Numbers returned by these variables normally contain separators (commas or spaces, depending on the local language), but can return raw numbers with the &amp;quot;:R&amp;quot; flag (for example, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBEROFPAGES}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{NUMBEROFPAGES}} and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBEROFPAGES:R}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{NUMBEROFPAGES:R}}). Use &amp;quot;|R&amp;quot; for magic words that require a parameter like PAGESINCATEGORY (for example &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGESINCATEGORY:Help}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGESINCATEGORY:Help|R}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;). Also applicable to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGESIZE:&amp;lt;/nowiki&amp;gt;''page name''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; above.&lt;br /&gt;
&lt;br /&gt;
The number magic words are formatted in the english language.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Output&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Entire wiki'''&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBEROFPAGES}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{NUMBEROFPAGES}}&lt;br /&gt;
| Number of wiki pages.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBEROFARTICLES}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{NUMBEROFARTICLES}}&lt;br /&gt;
| Number of pages in [[mw:Manual:Using custom namespaces#Content namespaces|content namespaces]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBEROFFILES}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{NUMBEROFFILES}}&lt;br /&gt;
| Number of uploaded files.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBEROFEDITS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{NUMBEROFEDITS}}&lt;br /&gt;
| Number of page edits.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBEROFVIEWS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{NUMBEROFVIEWS}}&lt;br /&gt;
| Number of page views. Usually useless on a wiki using [[mw:Manual:Cache|caching]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBEROFUSERS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{NUMBEROFUSERS}}&lt;br /&gt;
| Number of registered users.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBEROFADMINS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{NUMBEROFADMINS}}&lt;br /&gt;
| Number of users in the ''sysop'' [[mw:Manual:User rights|group]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBEROFACTIVEUSERS}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{NUMBEROFACTIVEUSERS}}&lt;br /&gt;
| Number of active users, based on the criteria used in [[Special:Statistics]].&lt;br /&gt;
|- style=&amp;quot;background:#FED;&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGESINCATEGORY:&amp;lt;/nowiki&amp;gt;''categoryname''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGESINCAT:Help}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{PAGESINCATEGORY:Help}}&amp;lt;br /&amp;gt;{{PAGESINCAT:Help}}&lt;br /&gt;
| '''[expensive]''' Number of pages in the given [[Help:Categories|category]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMBERINGROUP:&amp;lt;/nowiki&amp;gt;''groupname''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NUMINGROUP:&amp;lt;/nowiki&amp;gt;''groupname''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{NUMBERINGROUP:bureaucrat}}&amp;lt;br /&amp;gt;{{NUMINGROUP:bureaucrat}}&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;&amp;lt;nowiki&amp;gt;({{NUMBERINGROUP:bureaucrat}} used here)&amp;lt;/nowiki&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
| Number of users in a specific [[mw:Manual:User rights|group]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Page names ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Output&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{FULLPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{FULLPAGENAME}}&lt;br /&gt;
| Namespace and page title.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{PAGENAME}}&lt;br /&gt;
| Page title.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{BASEPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{BASEPAGENAME}}&lt;br /&gt;
| Page title excluding the current [[Help:Subpages|subpage]] and namespace (&amp;quot;Title/foo&amp;quot; on &amp;quot;Title/foo/bar&amp;quot;).&lt;br /&gt;
For more complex splitting, use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;[[mw:Help:Extension:ParserFunctions#.23titleparts|#titleparts:]]&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; from [[mw:Help:Extension:ParserFunctions|ParserFunctions extension]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{SUBPAGENAME}}&lt;br /&gt;
| The [[Help:Subpages|subpage]] title (&amp;quot;foo&amp;quot; on &amp;quot;Title/foo&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBJECTPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{SUBJECTPAGENAME}}&lt;br /&gt;
| The namespace and title of the associated subject page.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TALKPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{TALKPAGENAME}}&lt;br /&gt;
| The namespace and title of the associated talk page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{BASEPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; magic words only work in namespaces that have subpages enabled.&lt;br /&gt;
&lt;br /&gt;
The following are equivalents encoded for use in MediaWiki URLs (i.e. spaces replaced with underscores and some characters [[wikipedia:percent-encoding|percent-encoded]]):&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{FULLPAGENAMEE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGENAMEE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{BASEPAGENAMEE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBPAGENAMEE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBJECTPAGENAMEE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TALKPAGENAMEE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These can all take a parameter, allowing specification of the page to be operated on, instead of just the current page:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGENAME:Template:Main Page}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; '''{{PAGENAME:Template:Main Page}}'''&lt;br /&gt;
&lt;br /&gt;
{{Warning|Page titles containing certain characters, such as single quotes (&amp;lt;code&amp;gt;'&amp;lt;/code&amp;gt;) or asterisks (&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;), may produce unexpected results when handled with these magic words, e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGESINCATEGORY:{{PAGENAME}}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. See bugs [[mediazilla:14779|14779]], [[mediazilla:16474|16474]].}}&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{PAGENAMEE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{urlencode:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; have distinct implementations. See [[mw:Manual:PAGENAMEE encoding|Manual:PAGENAMEE encoding]] for details.&lt;br /&gt;
&lt;br /&gt;
=== Namespaces ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Output&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NAMESPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{NAMESPACE}}&lt;br /&gt;
| Name of the page's namespace&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBJECTSPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ARTICLESPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{SUBJECTSPACE}}&amp;lt;br /&amp;gt;{{ARTICLESPACE}}&lt;br /&gt;
| Name of the associated content namespace&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TALKSPACE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{TALKSPACE}}&lt;br /&gt;
| Name of the associated talk namespace&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following are equivalents encoded for use in MediaWiki URLs (spaces replaced with underscores and some characters percent-encoded):&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NAMESPACEE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBJECTSPACEE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TALKSPACEE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These can take a full-page-name parameter and will return the requested namespace associated with that page, instead of with the current page:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NAMESPACE:Template:Main Page}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; '''{{NAMESPACE:Template:Main Page}}'''&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBJECTSPACE:Template:Main Page}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; '''{{SUBJECTSPACE:Template:Main Page}}'''&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TALKSPACE:Template:Main Page}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; '''{{TALKSPACE:Template:Main Page}}'''&lt;br /&gt;
Parameter must not be a namespace name:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SUBJECTSPACE:Help talk}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; '''{{SUBJECTSPACE:Help talk}}'''&lt;br /&gt;
&lt;br /&gt;
== Parser functions ==&lt;br /&gt;
&lt;br /&gt;
Parser functions are very similar to variables, but take one or more parameters (technically, any magic word that takes a parameter is a parser function), and the name is sometimes prefixed with a hash to distinguish them from templates.&lt;br /&gt;
&lt;br /&gt;
This page only describes parser functions that are integral to the MediaWiki software. Other parser functions are added by the ParserFunctions extension. For those see [[mw:Help:Extension:ParserFunctions|Help:Extension:ParserFunctions]].&lt;br /&gt;
&lt;br /&gt;
=== URL data ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Parser function&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Input → Output&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{localurl:&amp;lt;/nowiki&amp;gt;''page name''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{localurl:&amp;lt;/nowiki&amp;gt;''page name''&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''query_string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{localurl:MediaWiki}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{localurl:MediaWiki}}&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;{{localurl:MediaWiki|printable=yes}}&amp;lt;/nowiki&amp;gt;  → {{localurl:MediaWiki|printable=yes}}&lt;br /&gt;
| The relative path to the title. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{fullurl:&amp;lt;/nowiki&amp;gt;''page name''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{fullurl:&amp;lt;/nowiki&amp;gt;''page name''&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''query_string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{fullurl:&amp;lt;/nowiki&amp;gt;''interwiki:remote page name''&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''query_string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{fullurl:Category:Top level}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{fullurl:Category:Top level}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{fullurl:Category:Top level|action=edit}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{fullurl:Category:Top level|action=edit}}&lt;br /&gt;
| The absolute path to the title. This will also resolve [[mw:Manual:Interwiki|Interwiki]] prefixes.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{filepath:&amp;lt;/nowiki&amp;gt;''file name''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{filepath:&amp;lt;/nowiki&amp;gt;''file name''&amp;lt;nowiki&amp;gt;|nowiki}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{filepath:Wiki.png}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{filepath:Wiki.png}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{filepath:Wiki.png|nowiki}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{filepath:Wiki.png|nowiki}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{filepath:Example.svg|300}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{filepath:Example.svg|300}}&amp;lt;br /&amp;gt;&lt;br /&gt;
| The absolute URL to the full size of a media file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{urlencode:&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{urlencode:&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;|QUERY}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{urlencode:&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;|WIKI}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{urlencode:&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;|PATH}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{urlencode:x y z á é}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{urlencode:x y z á é|QUERY}})&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{urlencode:x y z á é}}&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{urlencode:x y z á é|WIKI}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → x_y_z_%C3%A1_%C3%A9&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{urlencode:x y z á é|PATH}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → x%20y%20z%20%C3%A1%20%C3%A9&lt;br /&gt;
Note that the default changed from &amp;lt;code&amp;gt;|WIKI&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;|QUERY&amp;lt;/code&amp;gt; in 1.17; this may break templates that rely on this function.&lt;br /&gt;
| The input encoded for use in URLs. Note that there is no urldecode function like there is in the obsolete [[mw:Extension:StringFunctions|Extension:StringFunctions]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{anchorencode:&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{anchorencode:x y z á é}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{anchorencode:x y z á é}}&lt;br /&gt;
| The input encoded for use in URL section anchors (after the '#' symbol in a URL).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Namespaces ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; returns the current localized name for the [[Help:Namespaces|namespace]] with that index, canonical name, or local alias. Thus &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:6}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:File}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Image}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (an old name for the File namespace) all return &amp;quot;{{ns:6}}&amp;quot;.  On a wiki where the content language was French, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Fichier}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; would also be valid, but &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Datei}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (the localisation of &amp;quot;File&amp;quot; into German) would not.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{nse:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is the equivalent encoded for MediaWiki URLs. It does the same, but it replaces spaces with underscores, making it usable in external links.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot; | Content namespaces&lt;br /&gt;
! rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
! style=&amp;quot;background:#8DA7D6; color:black;&amp;quot; colspan=&amp;quot;2&amp;quot; width=%50%&amp;quot; | Talk namespaces&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Usage&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Output&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Usage&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Output&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:-2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Media}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:-2}} || ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:-1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Special}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:-1}} || ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:0}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:}}&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Talk}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:1}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:User}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:2}}&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:3}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:User talk}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:3}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:4}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Project}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:4}}&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:5}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Project talk}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:5}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:6}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:File}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Image}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:6}}&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:7}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:File talk}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Image talk}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:7}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:8}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:MediaWiki}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:8}}&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:9}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:MediaWiki talk}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:9}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:10}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Template}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:10}}&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:11}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Template talk}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:11}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:12}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Help}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:12}}&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:13}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Help talk}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:13}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:14}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Category}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:14}}&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:15}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ns:Category talk}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{ns:15}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Formatting ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Usage&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Input → Output&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{lc:&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{lc:DATA CENTER}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{lc:DATA CENTER}}&lt;br /&gt;
| The lowercase input.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{lcfirst:&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{lcfirst:DATA center}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{lcfirst:DATA center}}&lt;br /&gt;
| The input with the &amp;lt;u&amp;gt;very first&amp;lt;/u&amp;gt; character lowercase.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{uc:&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{uc:text transform}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{uc:text transform}}&lt;br /&gt;
| The uppercase input.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ucfirst:&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ucfirst:text TRANSFORM}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{ucfirst:text TRANSFORM}}&lt;br /&gt;
| The input with the &amp;lt;u&amp;gt;very first&amp;lt;/u&amp;gt; character uppercase.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{formatnum:&amp;lt;/nowiki&amp;gt;''unformatted&amp;amp;nbsp;num''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{formatnum:&amp;lt;/nowiki&amp;gt;''formatted&amp;amp;nbsp;num''&amp;lt;nowiki&amp;gt;|R}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{formatnum:987654321.654321}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt; → {{formatnum:987654321.654321}}&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{formatnum:987,654,321.654321|R}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt; → {{formatnum:987,654,321.654321|R}}&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{formatnum:00001}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt; → {{formatnum:00001}}&lt;br /&gt;
| The input with decimal and decimal group separators, and localized digit script, according to the wiki's default locale. The &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;R&amp;lt;/code&amp;gt; parameter can be used to unformat a number, for use in mathematical situations.&amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;{{Warning|Leading zeroes are not removed, you can use &amp;lt;nowiki&amp;gt;{{#expr:00001}}&amp;lt;/nowiki&amp;gt; instead.}}&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#dateformat:&amp;lt;/nowiki&amp;gt;''date''&amp;lt;nowiki&amp;gt;}}&lt;br /&gt;
{{#formatdate:&amp;lt;/nowiki&amp;gt;''date''&amp;lt;nowiki&amp;gt;}}&lt;br /&gt;
{{#dateformat:&amp;lt;/nowiki&amp;gt;''date''{{!}}''format''&amp;lt;nowiki&amp;gt;}}&lt;br /&gt;
{{#formatdate:&amp;lt;/nowiki&amp;gt;''date''{{!}}''format''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#dateformat:25 deC 2009|ymd}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
→ {{#dateformat:25 deC 2009|ymd}} (your pref),  2009 DeC 25 (default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#formatdate:dec 25,2009|dmy}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
→ {{#formatdate:dec 25,2009|dmy}} (your pref), 25 Dec 2009 (default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#dateformat:2009-12-25|mdy}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
→ {{#dateformat:2009-12-25|mdy}} (your pref), December 25, 2009 (default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#formatdate:2009 dec 25|ISO 8601}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
→ {{#formatdate:2009 dec 25|ISO 8601}} (your pref), 2009-12-25 (default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#dateformat:25 decEmber|mdy}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
→ {{#dateformat:25 decEmber|mdy}} (your pref), DecEmber 25 (default)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: In the example above, &amp;quot;your pref&amp;quot; refers to your date preference on the current MediaWiki wiki only.&lt;br /&gt;
| Formats an unlinked date based on user &amp;quot;Date format&amp;quot; preference, and adds metadata tagging it as a formatted date. For logged-out users and those who have not set a date format in their preferences, dates can be given a default: &amp;lt;code&amp;gt;mdy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dmy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ymd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ISO&amp;amp;nbsp;8601&amp;lt;/code&amp;gt; (all case sensitive). If only the month and day are given, only &amp;lt;code&amp;gt;mdy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;dmy&amp;lt;/code&amp;gt; are valid. If a format is not specified or is invalid, the input format is used as a default. If the supplied date is not recognized as a valid date (specifically, if it contains any metadata such as from a nested use of these or similar templates), it is rendered unchanged, and no (additional) metadata is generated.&amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;{{warning}}Although the ISO 8601 standard requires that dates be in the Gregorian calendar, the ISO parameter in this function will still format dates that fall outside the usual Gregorian range (e.g. dates prior to 1583). Also, the magic word cannot properly convert between negative years (used with ISO 8601) and years BC or years BCE (used in general writing).&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padleft:xyz|&amp;lt;/nowiki&amp;gt;''stringlength''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padleft:xyz|&amp;lt;/nowiki&amp;gt;''strlen''&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''char''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padleft:xyz|&amp;lt;/nowiki&amp;gt;''strlen''&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padleft:xyz|5}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{padleft:xyz|5}}&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padleft:xyz|5|_}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{padleft:xyz|5|_}} &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padleft:xyz|5|abc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{padleft:xyz|5|abc}} &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padleft:xyz|2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{padleft:xyz|2}}&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padleft:|1|xyz}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{padleft:|1|xyz}} (first character of the string)&amp;lt;br /&amp;gt;&lt;br /&gt;
| Inserts a string of padding characters (character chosen in third parameter; default '0') of a specified length (second parameter) next to a chosen base character or variable (first parameter). The final digits or characters in the base replace the final characters in the padding; i.e. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padleft:44|3|0}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; produces {{padleft:44|3}}. The padding string may be truncated if its length does not evenly divide the required number of characters.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padright:xyz|&amp;lt;/nowiki&amp;gt;''stringlength''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padright:xyz|&amp;lt;/nowiki&amp;gt;''strlen''&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''char''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padright:xyz|&amp;lt;/nowiki&amp;gt;''strlen''&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''string''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padright:xyz|5}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{padright:xyz|5}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padright:xyz|5|_}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{padright:xyz|5|_}}&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padright:xyz|5|abc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{padright:xyz|5|abc}}&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padright:xyz|2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{padright:xyz|2}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padright:|1|xyz}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{padright:|1|xyz}}&amp;lt;br /&amp;gt;&lt;br /&gt;
| Identical to padleft, but adds padding characters to the right side.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{plural:2|&amp;lt;/nowiki&amp;gt;''is''&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''are''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{plural:0|is|are}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{plural:0|is|are}}&amp;lt;br /&amp;gt;  &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{plural:1*1|is|are}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{plural:1*1|is|are}}&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{plural:21 mod 10|is|are}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{plural:21 mod 10|is|are}}&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{plural:{{#expr:21 mod 10}}|is|are}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{plural:{{#expr:21 mod 10}}|is|are}}&amp;lt;br /&amp;gt;  &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{plural:1|is|are}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{plural:1|is|are}}&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{plural:2|is|are}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{plural:2|is|are}}&amp;lt;br /&amp;gt; (for [[wikipedia:Polish_language|Polish]]):&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{plural:2|milion|miliony|milionów}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → miliony&lt;br /&gt;
| Outputs the singular form (second parameter) if the first parameter is an expression equalling one; the plural form (third parameter) otherwise. Plural transformations are used for languages like Russian based on &amp;quot;count mod 10&amp;quot;. You should not expect this to handle fractions (like 44.5) — see [[mediazilla:28128|bug 28128]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{grammar:N|&amp;lt;/nowiki&amp;gt;''noun''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| Outputs the correct inflected form of the given word described by the inflection code after the colon (language-dependent).  Grammar transformations are used for inflected languages like Polish.  See also [[mw:Manual:$wgGrammarForms|Manual:$wgGrammarForms]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''see also:''' [[mw:Extension:StringFunctions|Extension:StringFunctions]]&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
{| class=&amp;quot;wikitable plainlinks&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Usage&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Output&lt;br /&gt;
! style=&amp;quot;background:#A7C1F2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{int:&amp;lt;/nowiki&amp;gt;''message name''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{int:&amp;lt;/nowiki&amp;gt;edit&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; '''{{int:edit}}''' &amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;''(depends on user language, try: [{{fullurl:{{FULLPAGENAME}}|uselang=fr}}#Miscellaneous fr] &amp;amp;bull;[{{fullurl:{{FULLPAGENAME}}|uselang=ja}}#Miscellaneous ja])''&amp;lt;/small&amp;gt;&lt;br /&gt;
| Internationalizes (translates) the given '''int'''erface (MediaWiki namespace) message into the user language. ''Note that this can damage/confuse cache consistency, see [[mediazilla:14404|bug 14404]].''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#language:&amp;lt;/nowiki&amp;gt;''language code''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#language:ar}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{#language:language code}}&amp;lt;br /&amp;gt;{{#language:ar}}&lt;br /&gt;
| The full name of the language for the given language code: native name by default. Codes are mostly in accordance with [[Wikipedia:ISO 639|ISO 639]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#special:&amp;lt;/nowiki&amp;gt;''special page name''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;{{#special:userlogin}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{#special:special page name}}&amp;lt;br /&amp;gt;{{#special:userlogin}}&lt;br /&gt;
| The localized name for the given canonical Special: page.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#tag:&amp;lt;/nowiki&amp;gt;''tagname''&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''content''&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''parameter1=value1''&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''parameter2=value2''&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| ''(depends on parser tag)''&lt;br /&gt;
| Alias for XML-style parser or extension tags, but parsing wiki code. Inner content can be passed as first parameter, and attributes as subsequent ones:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;''tagname'' ''attribute1''=&amp;quot;''value1''&amp;quot; ''attribute2''=&amp;quot;''value2''&amp;quot;&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; ''content'' &amp;lt;code&amp;gt;&amp;lt;/&amp;lt;/code&amp;gt;''tagname'' &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#tag:&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;''tagname''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;''content''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;''attribute1''=''value1''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;''attribute2''=''value2''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Warning''' : You must write &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#tag:&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;''tagname''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;''attribute1''=''value1''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;''attribute2''=''value2''&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to pass an empty content.&lt;br /&gt;
No space is permitted between the {{!}} and the attribute name.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{gender:&amp;lt;/nowiki&amp;gt;''username''&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''return text if user is male''&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''return text if user is female''&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''return text if user hasn't defined their gender''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| ''(depends on the named user's gender)''&lt;br /&gt;
| A switch for the gender set in [[Special:Preferences]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Note:  If 3rd parameter is omitted and user hasn't defined his/her gender, then &amp;lt;code&amp;gt;''text if user is male''&amp;lt;/code&amp;gt; is returned.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Templates/Thankyou&amp;diff=367</id>
		<title>Справка:Templates/Thankyou</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Templates/Thankyou&amp;diff=367"/>
		<updated>2011-12-24T15:12:36Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «&amp;lt;div class=&amp;quot;noprint&amp;quot; style=&amp;quot;float:center; border:1px solid blue;width:200px;background-color:#F5F5F5;padding:3px;&amp;quot;&amp;gt; [[Image:Example.jpg|left|80px|Example sunflower i...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noprint&amp;quot; style=&amp;quot;float:center; border:1px solid blue;width:200px;background-color:#F5F5F5;padding:3px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Example.jpg|left|80px|Example sunflower image]] '''A little thank you...''' &amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;for {{{reason|{{{1}}}}}}. &amp;lt;br /&amp;gt;hugs, {{{signature|{{{2}}}}}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Templates&amp;diff=366</id>
		<title>Справка:Templates</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Templates&amp;diff=366"/>
		<updated>2011-12-24T15:11:48Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «If you have standard texts you want to include on several pages, the MediaWiki template feature comes into play.  == Creation == Templates are standard wiki pages wh...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you have standard texts you want to include on several pages, the MediaWiki template feature comes into play.&lt;br /&gt;
&lt;br /&gt;
== Creation ==&lt;br /&gt;
Templates are standard wiki pages whose content is designed to be [[wikipedia:Transclusion|transcluded]] (embedded) inside other pages. Templates follow a convention that the name is prefixed with &amp;quot;&amp;lt;code&amp;gt;Template:&amp;lt;/code&amp;gt;&amp;quot;, assigning it to that namespace; besides this, you can [[Help:Starting a new page|create them like any other wiki page]].&lt;br /&gt;
&lt;br /&gt;
The simplest use of templates is as follows. If you create a page called &amp;quot;Template:Welcome&amp;quot; with contents:&lt;br /&gt;
&lt;br /&gt;
 Hello! Welcome to the wiki.&lt;br /&gt;
&lt;br /&gt;
you'll have created your first template! If you then insert the code:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{Welcome}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in any other page, when that page is viewed the text &amp;quot;Hello! Welcome to the wiki.&amp;quot; will appear instead of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Welcome}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The template content is &amp;quot;transcluded&amp;quot; into the other page, i.e. it is integrated in the page.&lt;br /&gt;
&lt;br /&gt;
You can then insert &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Welcome}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; at any point of any page where you wish to welcome someone. Suppose it is used in 100 pages. If you then change the template contents to:&lt;br /&gt;
&lt;br /&gt;
 Hi there! Welcome to this wonderful wiki.&lt;br /&gt;
&lt;br /&gt;
and revisit any of the 100 pages where the template was used, you'll see the new text instead of the original one. In this way, you have changed the content of 100 pages without editing them, because the template is transcluded into these pages.&lt;br /&gt;
&lt;br /&gt;
This is the basic mechanism. There are several additional features of transclusion that enrich this mechanism and make templates very useful.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Templates can be used in other pages in these ways:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Name}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, described above, 'transcludes' (i.e. includes a copy of) the content of the template (stored in the page &amp;lt;nowiki&amp;gt;[[Template:Name]]&amp;lt;/nowiki&amp;gt;) whenever the page containing the template transclusion is fetched and displayed; i.e. if the template is later changed, the displayed transcluding page will automatically change too&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst:Name}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; replaces that string with the contents of the template, in the source of the transcluding page, when you save that page; the copy of the template contents can then be edited normally (and separately from the original in the template page). ''Note'': don't use this if you are looking to continually propagate changes from the source template to the page(s) that references it.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{safesubst:Name}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; allows for substitution that doesn't break transclusion, see [[wikipedia:Help:Substitution#The_safesubst:_modifier|Help:Substitution]] on en.wikipedia.org.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{msgnw:Name}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; includes the template in a form that displays it as raw wiki syntax (the way &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;lt;nowiki&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; does) when the page containing it is fetched.&lt;br /&gt;
&lt;br /&gt;
In fact, an ordinary wiki page can also be used as a template, simply by specifying the namespace it resides in, so:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Template:Pagename}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;  includes &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Template:Pagename]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Foo:Pagename}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; includes &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Foo:Pagename]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{:Pagename}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; includes &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Pagename]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst::Pagename}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; replaces itself with the contents of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Pagename]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no such namespace exists, the full title is assumed to be a template:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Foo:Bar}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; includes &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Template:Foo:Bar]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
To enrich the mechanism of transclusion, MediaWiki allows parameters to be passed to a template when it is transcluded. Parameters allow the template to produce different contents or have different behaviors.&lt;br /&gt;
&lt;br /&gt;
Suppose you wish to insert a little thank you note in the [[Help:Talk pages|talk page]] of other users, such as:&lt;br /&gt;
{{Help:Templates/Thankyou|all your effort|Me}}&lt;br /&gt;
The thank you note will have a reason (in this case, &amp;quot;all your effort&amp;quot;) and a signature (&amp;quot;Me&amp;quot;). Your objective is that any user is able to thank any other user, for any reason whatsoever.&lt;br /&gt;
&lt;br /&gt;
So that the note will look similar everywhere it is used, you can define a template called [[Help:Templates/Thankyou|Template:Thankyou]], for example. Although the note should look similar whenever a user thanks another user, its specific contents (i.e. the reason and the signature) will be different. For that reason, you should pass them as parameters. If we ignore the remaining elements to format the box and place the image, the core content of the template will be this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;'''A little thank you...'''&lt;br /&gt;
for {{{1}}}.&lt;br /&gt;
hugs, {{{2}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{1}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{2}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. This is the way to identify, within templates, the parameters that will be passed in when the template is used. Note that, within the template, each parameter is surrounded by '''three''' braces: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{ }}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. This is different from normal template name usage.&lt;br /&gt;
&lt;br /&gt;
When using the template on a page, you fill in the parameter values, separated by a pipe char (&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt;). MediaWiki allows parameters to be passed to the template in three ways.&lt;br /&gt;
&lt;br /&gt;
=== Anonymous parameters ===&lt;br /&gt;
To pass in anonymous parameters, list the values of those parameters sequentially:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{Thankyou|all your effort|Me}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
In this case, template &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Thankyou}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; receives parameters &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{1}}}=all your effort&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{2}}}=Me&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and produces:&lt;br /&gt;
&lt;br /&gt;
{{Help:Templates/Thankyou|all your effort|Me}}&lt;br /&gt;
&lt;br /&gt;
Inverting the order of the parameters:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{Thankyou|Me|all your effort}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
causes template &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Thankyou}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to receive parameters &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{1}}}=Me&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{2}}}=all your effort&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and inverts the result:&lt;br /&gt;
&lt;br /&gt;
{{Help:Templates/Thankyou|Me|all your effort}}&lt;br /&gt;
So, the order in which anonymous parameters are passed in is crucial to its behaviour.&lt;br /&gt;
&lt;br /&gt;
=== Numbered parameters ===&lt;br /&gt;
To pass in parameters by number, identify each parameter when passing it:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{Thankyou|2=Me|1=your friendship}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This time, template &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Thankyou}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; receives parameters &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{1}}}=your friendship&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{2}}}=Me&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, though they have been supplied in inverse order, and produces:&lt;br /&gt;
{{Help:Templates/Thankyou|2=Me|1=your friendship}}&lt;br /&gt;
&lt;br /&gt;
=== Named parameters ===&lt;br /&gt;
The third way of passing parameters is by name, instead of numbers. In this case, the template contents would be changed to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;'''A little thank you...'''&lt;br /&gt;
for {{{reason}}}.&lt;br /&gt;
hugs, {{{signature}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the template, we use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{reason}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{signature}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to identify each parameter, instead of a number. To pass these parameters by name, identify each parameter when passing it:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{Thankyou|signature=Me|reason=being who you are}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case, template &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Thankyou}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; receives parameters &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{reason}}}=being who you are&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{signature}}}=Me&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and produces:&lt;br /&gt;
&lt;br /&gt;
{{Help:Templates/Thankyou|signature=Me|reason=being who you are}}&lt;br /&gt;
The advantage of using named parameters in your template, besides also being flexible in the order parameters can be passed, is that it makes the template code much easier to understand if there are many parameters.&lt;br /&gt;
&lt;br /&gt;
=== Default values ===&lt;br /&gt;
If you transclude a template that expects parameters, but do not provide them, in this way:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{Thankyou}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the numbered parameters example above you would get the following:&lt;br /&gt;
&lt;br /&gt;
{{Help:Templates/Thankyou}}&lt;br /&gt;
Since no parameters were passed in, the template presents the parameters themselves, instead of their respective values. In these cases, it may be useful to define ''default'' values for the parameters, i.e. values that will be used if no value is passed in. For example, if the template contents are changed to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;'''A little thank you...'''&lt;br /&gt;
for {{{reason|everything}}}.&lt;br /&gt;
hugs, {{{signature|Me}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{reason|everything}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; defines that if no parameter &amp;lt;code&amp;gt;{{{reason}}}&amp;lt;/code&amp;gt; is provided, then the value &amp;lt;code&amp;gt;everything&amp;lt;/code&amp;gt; will be used. Similarly, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{signature|Me}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, defaults parameter &amp;lt;code&amp;gt;{{{signature}}}&amp;lt;/code&amp;gt; to value &amp;lt;code&amp;gt;Me&amp;lt;/code&amp;gt;. Now, transcluding the template again without passing any parameter, results in the following:&lt;br /&gt;
&amp;lt;!-- strictly speaking, this example is false, because the template call was changed to obtain the desired effect - but the effect is the same if the template is defined as described --&amp;gt;&lt;br /&gt;
{{Help:Templates/Thankyou|reason=everything|signature=Me}}&lt;br /&gt;
&lt;br /&gt;
=== Control template inclusion ===&lt;br /&gt;
By default, the whole content of a template will be processed and displayed both when the template page is being viewed directly and when the template is being included in another page. However, you can control template inclusion by the use of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
Anything between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; will be processed and displayed only when the template's page is being viewed directly, and will not be processed and displayed when it is included in another page. The application of this is to do things to the template page that should not be similarly done to the pages where it is included:&lt;br /&gt;
&lt;br /&gt;
* [[Help:Categories|Categorising]] the template.&lt;br /&gt;
* Placing in the template [[Help:Links#Interlanguage links|interlanguage links]] to similar templates in other languages.&lt;br /&gt;
* Presenting explanatory text about how to use the template.&lt;br /&gt;
&lt;br /&gt;
Anything between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; will be processed and displayed only when the page is being included, and will not be processed and displayed when the template page is being viewed directly. The application of this is to do things in the pages where the template is included that you do not want to be similarly done in the template page:&lt;br /&gt;
* [[Help:Categories|Categorising]] only the pages where the template is included. Note that when you change the categories applied by a template in this fashion, the categorization of all the pages where that template is included may not be updated until some time later: this is handled by the [[mw:Manual:Job queue|job queue]]. To force the re-categorisation of a particular page, open the page for edit and save it without changes.&lt;br /&gt;
* Ensuring that the template's code is not executed when viewing the template page itself. Normally this is because it isn't receiving any parameters and its execution without parameters has an undesired aspect.&lt;br /&gt;
&lt;br /&gt;
Of course, everything outside &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tags is processed and displayed both when the template page is being viewed directly and when the template is being included in another page.&lt;br /&gt;
&lt;br /&gt;
=== Organizing templates ===&lt;br /&gt;
For templates to be effective, users need to find them, and find out how to use them. &lt;br /&gt;
&lt;br /&gt;
To find them, users can:&lt;br /&gt;
# Click '''Special Pages &amp;gt; All Pages'''&lt;br /&gt;
# In the '''Namespace''' list, choose '''Template''' and click '''Go'''.&lt;br /&gt;
&lt;br /&gt;
To give usage information, include the [[Template:Documentation|&amp;lt;nowiki&amp;gt;{{Documentation}}&amp;lt;/nowiki&amp;gt;]] template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then save and click on the new '''doc''' link to create a documentation page to describe the usage of the template. An editor can simply copy and paste an usage example to use the template.&lt;br /&gt;
&lt;br /&gt;
== Copying from one wiki to another ==&lt;br /&gt;
Templates often require [http://meta.wikimedia.org/wiki/Help:CSS CSS] or other templates, so users frequently have trouble copying templates from one wiki to another. The steps below should work for most templates.&lt;br /&gt;
&lt;br /&gt;
=== MediaWiki code ===&lt;br /&gt;
If you have import rights on the new wiki:&lt;br /&gt;
# Go to [[Special:Export]] on the original wiki, and download an .xml file with the complete history of all necessary templates, as follows:&lt;br /&gt;
#* Enter the name of the template in the big text box.&lt;br /&gt;
#* Check the box &amp;quot;Include templates&amp;quot;.&lt;br /&gt;
#* '''Uncheck''' the box &amp;quot;Include only the current revision&amp;quot;.&lt;br /&gt;
#* Click Export.&lt;br /&gt;
# Go to [[Special:Import]] on the new wiki and upload the .xml file.&lt;br /&gt;
&lt;br /&gt;
If you don't have import rights on the new wiki:&lt;br /&gt;
# Go to [[Special:Export]] on the original wiki, and download an .xml file with the latest version only of all necessary templates, as follows:&lt;br /&gt;
#* Enter the name of the template in the big text box.&lt;br /&gt;
#* Check the box &amp;quot;Include templates&amp;quot;.&lt;br /&gt;
#* '''Check''' the box &amp;quot;Include only the current revision&amp;quot;.&lt;br /&gt;
#* Click Export.&lt;br /&gt;
# Open the file in a text editor and manually copy the text inside the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;text&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag of each listed template into a similarly named template in your wiki. In the edit summary of each template, link to the original page for attribution.&lt;br /&gt;
&lt;br /&gt;
This will copy the entire code necessary, and will suffice for some templates.&lt;br /&gt;
&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
Check if the template depends on any extension.  You have to convice sysops first to install the extension.&lt;br /&gt;
&lt;br /&gt;
=== CSS and JavaScript code ===&lt;br /&gt;
Besides MediaWiki code, many templates make use of CSS and some rely on JavaScript to work fully. If the copied templates are not behaving as expected, this may be the cause. To copy the required CSS and JavaScript to your wiki you'll normally need to have admin priviledges, because you'll be editing system messages in the &amp;quot;MediaWiki:&amp;quot; namespace.&lt;br /&gt;
&lt;br /&gt;
# Look for the use of CSS classes (text like &amp;lt;code&amp;gt;class=&amp;quot;foobar&amp;quot;&amp;lt;/code&amp;gt;) in the template text. If those classes appear in &amp;quot;MediaWiki:Common.css&amp;quot; or &amp;quot;MediaWiki:Monobook.css&amp;quot; on the original wiki, copy them to &amp;quot;MediaWiki:Common.css&amp;quot; on the new wiki and check if the template is now fine.&lt;br /&gt;
# If the copied template is still not working as expected, check if there is code in &amp;quot;MediaWiki:Common.js&amp;quot; or &amp;quot;MediaWiki:Monobook.js&amp;quot; on the original wiki. If so, you can try copying it to &amp;quot;MediaWiki:Common.js&amp;quot; on the new wiki. Normally, it is a good idea to only copy code from trusted sources, and first browsing the code to identify and select the parts that seem relevant. You may find comments that can serve as clues to identify the functionality of each part. When in doubt, copy all the code to the new wiki.&lt;br /&gt;
&lt;br /&gt;
== Specifying parameter defaults ==&lt;br /&gt;
Very often you will see parameters in this form:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{{A template parameter|}}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pipe character &amp;quot;|&amp;quot; is the delimiter for a default value in the parameter. In the example above, it is empty, so the default would be an empty string if no value were passed from the template to the parameter. Of course, you may define a default like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{{A template parameter|with a default value}}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The string &amp;quot;with a default value&amp;quot; is the default value of the parameter if it is not set elsewhere.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Help:External searches]] – a template special use case example&lt;br /&gt;
* [[Help:Magic words]] – fancy stuff you may find in some templates&lt;br /&gt;
* [[mw:Help:Parser functions in templates|Help:Parser functions in templates]] on mediawiki.org&lt;br /&gt;
* [[metawikipedia:Help:Template|Help:Template]] on meta.wikimedia.org – contains a much more thorough manual on how exactly templates function&lt;br /&gt;
* [[metawikipedia:Help:Embed page|Help:Embed page]] on meta.wikimedia.org – embedding pages from [[Help:namespaces|namespaces]] other than &amp;lt;code&amp;gt;Template:&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Patrolled_edits&amp;diff=365</id>
		<title>Справка:Patrolled edits</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Patrolled_edits&amp;diff=365"/>
		<updated>2011-12-24T15:11:10Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «'''Patrolled edits''' are a feature which allows specific users to mark items in recent changes as having been &amp;quot;patrolled&amp;quot; or &amp;quot;approved&amp;quot;. By default this is only ava...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Patrolled edits''' are a feature which allows specific users to mark items in recent changes as having been &amp;quot;patrolled&amp;quot; or &amp;quot;approved&amp;quot;. By default this is only available if you have sysop permissions.&lt;br /&gt;
&lt;br /&gt;
This feature is useful when reviewing recent changes for undesirable edits, link spam and vandalism. This allows people (with permission to do so) to coordinate their patrolling activity, such that edits get checked over once, with less wasted effort (different people checking the same edit).&lt;br /&gt;
&lt;br /&gt;
== Marking edits as patrolled ==&lt;br /&gt;
; To mark an edit as patrolled:&lt;br /&gt;
# Access [[Special:RecentChanges]]&lt;br /&gt;
#: Changes which are not patrolled will be indicated with a red exclamation mark&lt;br /&gt;
# Click the ([[metawikipedia:Help:Diff|diff]]) link next to an edit&lt;br /&gt;
# To mark the edit as patrolled, click the ''mark as patrolled'' link&lt;br /&gt;
&lt;br /&gt;
== Hiding patrolled edits from recent changes ==&lt;br /&gt;
Patrolled edits can be hidden from recent changes by adding &amp;lt;tt&amp;gt;&amp;amp;hidepatrolled=1&amp;lt;/tt&amp;gt; to the URL in the following form:&lt;br /&gt;
&lt;br /&gt;
 {{fullurl:{{#special:RecentChanges}}|hidepatrolled=1}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[mw:Help:Patrolling|General definition of RC Patrolling]]  on mediawiki.org&lt;br /&gt;
* [[metawikipedia:Help:Patrolled edit|Help:Patrolled edit]] on meta.wikimedia.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Protected_pages&amp;diff=364</id>
		<title>Справка:Protected pages</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Protected_pages&amp;diff=364"/>
		<updated>2011-12-24T15:10:28Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «A '''protected page''' is a page where normal users are prevented from editing and/or moving at all. Only a user with s...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A '''protected page''' is a page where normal users are prevented from [[Help:Editing pages|editing]] and/or [[Help:Moving a page|moving]] at all. Only a user with sysop permissions can edit or move a protected page. Likewise only sysop users can protect a page in the first place, or unprotect the page to lift the restriction.&lt;br /&gt;
&lt;br /&gt;
There are several reasons why a particular page might be protected: &lt;br /&gt;
* On public wikis, pages may be protected because they have been repeatedly targeted with vandalism or moved to bad titles, or where it is believed that vandalism or page moves would have a unusually severe impact. &lt;br /&gt;
* On corporate wikis, pages may be protected when they contain statements which have been approved by management, and policy dictates that those statements can't be changed without following a certain approval process.&lt;br /&gt;
&lt;br /&gt;
Page protection limits collaboration on the wiki content, and should be avoided where possible.&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Deleting_a_page&amp;diff=363</id>
		<title>Справка:Deleting a page</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Deleting_a_page&amp;diff=363"/>
		<updated>2011-12-24T15:09:57Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «== When not to delete a page == Typically you would delete a page if the contents are entirely inappropriate and do not match the purposes of the Wiki. In other situ...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== When not to delete a page ==&lt;br /&gt;
Typically you would delete a page if the contents are entirely inappropriate and do not match the purposes of the Wiki. In other situations, you would take a less extreme course of action, for example:&lt;br /&gt;
&lt;br /&gt;
* The page should have a different title -- See [[Help:Moving a page]]&lt;br /&gt;
* The contents should have been placed on a different page -- Add the contents to the other page, and then supply a redirect. See [[Help:Redirects]]&lt;br /&gt;
* The contents are already on a different page -- Delete the duplicate content and leave a redirect. That way, the page title, which made sense to somebody, will helpfully redirect to the information. See [[Help:Redirects]]&lt;br /&gt;
* The page is out-of-date -- Re-word sentences to be in the past tense, to make the page an historical record. Alternatively, label the information as out-of-date, with a warning notice.&lt;br /&gt;
&lt;br /&gt;
An actual delete is generally necessary only if the ''title'' of the page is inappropriate. In other situations, a merge and redirect is more appropriate.&lt;br /&gt;
&lt;br /&gt;
=== Proposing changes ===&lt;br /&gt;
Deciding on appropriate content/page titles can be a difficult aspect of Wiki organization, and one which can often provoke debates. If the merge or deletion you have in mind is one which might cause upset, you should propose the change first. Do this by leaving a note to give your reasons on the [[Help:Talk pages|talk page]]. You might also establish a system for labeling the page with a delete/merge proposal template, to make everybody aware of your intentions.&lt;br /&gt;
&lt;br /&gt;
=== Unlinking a page ===&lt;br /&gt;
The 'What links here' toolbox feature (bottom of left sidebar) will tell you which other Wiki pages link to the current page. Always use this feature to check before proceeding with deleting. These related pages will need to be edited for their links to reflect the change.&lt;br /&gt;
&lt;br /&gt;
== Deletion itself ==&lt;br /&gt;
'''Normal users cannot permanently delete a Wiki page'''. This is a deliberate design feature, and is an important part of why wikis work. Every kind of editing operation can be reverted by any other user, and that includes resurrecting deleted content. It doesn't cause significant wasted space; and with nothing but a 'delete' label, the page is effectively deleted anyway.&lt;br /&gt;
&lt;br /&gt;
'Sysop' users ''are'' able to delete a page semi-permanently. Typically 'sysops' might look for delete labels, and do a proper delete on these pages, after a period of time. If for some reason you need a page to be deleted more quickly than that, you will need to contact a 'sysop' to request this.&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
	<entry>
		<id>https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Redirects&amp;diff=362</id>
		<title>Справка:Redirects</title>
		<link rel="alternate" type="text/html" href="https://aidalinux.ru/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Redirects&amp;diff=362"/>
		<updated>2011-12-24T15:09:19Z</updated>

		<summary type="html">&lt;p&gt;Langator: Новая страница: «Redirects are used to forward users from one page name to another. They can be useful if a particular article is referred to by multiple names, or has alternative pu...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Redirects are used to forward users from one page name to another. They can be useful if a particular article is referred to by multiple names, or has alternative punctuation, capitalization or spellings.&lt;br /&gt;
&lt;br /&gt;
== Creating a redirect ==&lt;br /&gt;
You may start a new page with the name you want to direct from (see [[Help:Starting a new page]]). You can also use an existing page that you are making inactive as a page by going to that page and using the &amp;quot;edit&amp;quot; tab at the top. In either case, you will be inserting the following code at the very first text position of the Edit window for the page:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#REDIRECT [[&amp;lt;/nowiki&amp;gt;''pagename''&amp;lt;nowiki&amp;gt;]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
where ''pagename'' is the name of the destination page. The word &amp;quot;redirect&amp;quot; is not case-sensitive, but there must be no space before the &amp;quot;#&amp;quot; symbol. Any text before the code will disable the code and prevent a redirect. Any text or regular content code after the redirect code will be ignored (and should be deleted from an existing page). However, to put or keep the current page name listed in a Category, the usual tag for that category is entered or kept on a line after the redirect code entry.&lt;br /&gt;
&lt;br /&gt;
You should use the 'preview' button below the Edit window, or Alt-P, to check that you have entered the correct destination page name. The preview page will not look like the resulting redirect page, it will look like a numbered list, with the destination page in blue:  &lt;br /&gt;
 1. REDIRECT  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;''pagename''&amp;lt;/span&amp;gt;&lt;br /&gt;
If the ''pagename'' as you typed it is not a valid page, it will show in red. Until there is a valid destination page, you should not make the redirect.&lt;br /&gt;
&lt;br /&gt;
== Viewing a redirect ==&lt;br /&gt;
After making a redirect at a page, you can no longer get to that page by using its name or by any link using that name; and they do not show up in wiki search results, either. However, near the top of the destination page, a notice that you have been forwarded appears, with the source pagename as an active link to it. Click this to get back to the redirected page, showing the large bent arrow symbol and the destination for the redirect.&lt;br /&gt;
&lt;br /&gt;
By doing this, you can do all the things that any wiki page allows. You can go to the associated discussion page to discuss the redirect. You can view the history of the page, including a record of the redirect. You can edit the page if the redirect is wrong, and you can revert to an older version to remove the redirect.&lt;br /&gt;
&lt;br /&gt;
== Deleting a redirect ==&lt;br /&gt;
There's generally no need to delete redirects. They do not occupy a significant amount of database space. If a page name is vaguely meaningful, there's no harm (and some benefit) in having it as a redirect to the more relevant or current page. &lt;br /&gt;
&lt;br /&gt;
If you do need to delete a redirect, e.g. if the page name is offensive, or you wish to discourage people from referring to a concept by that name, then you simply go to the redirect page as mentioned above, and follow the procedures at [[Help:Deleting a page]].&lt;br /&gt;
&lt;br /&gt;
== Double redirects ==&lt;br /&gt;
A double redirect is a page redirecting to a page which is itself a redirect, and it will not work. Instead, people will be presented with a view of the next redirect page. This is a deliberate restriction, partly to prevent infinite loops, and partly to keep things simple. &lt;br /&gt;
&lt;br /&gt;
However, you could look out for double redirects and eliminate them by changing them to be 1-step redirects instead. You are most likely to need to do this after a significant [[Help:Moving a page|page move]]. Use the &amp;quot;what links here&amp;quot; toolbox link to find double redirects to a particular page, or use [[Special:DoubleRedirects]] to find them throughout the whole wiki.&lt;br /&gt;
&lt;br /&gt;
== A redirect to a page in the category namespace ==&lt;br /&gt;
To prevent a page that redirects to a category from appearing in the category, precede the word &amp;quot;Category&amp;quot; with a colon: &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#REDIRECT [[:Category:Glossary]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Langator</name></author>
	</entry>
</feed>