Хелпикс

Главная

Контакты

Случайная статья





МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ



МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФГБОУ ВПО «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ»

 

Кафедра информационных систем, технологий и автоматизации в строительстве

«Основы командной строки Windows»

Лабораторный практикум

по курсу «Операционные системы»

М о с к в а 2 0 1 2


Составитель:

доцент кафедры ИСТАС Иванов Н.А.

Методические указания содержат основные сведения о назначении командной строки Windows и о средствах настройки и управления работой командной оболочки, о приемах эффективной работы с командной строкой. В методических указаниях изложены основы сценариев командной строки.

 

Методические указания предназначены для студентов факультета ИСТАС по направлению подготовки 230100 «Информатика и вычислительная техника», изучающих дисциплину «Операционные системы».

1. Средства работы с командной строкой в Windows

Консоль командной строки присутствует во всех версиях операционных систем Windows. Ранние версии ОС поддерживали режим MS-DOS напрямую, что позволяло выполнять простые команды прямо из консоли. Представители же семейства NT, такие как Windows XP, Windows 7 или Windows Server 2008, работают уже совсем по другим принципам, однако MS-DOS в них тоже поддерживается, но через виртуальную машину (NT Virtual DOS Machine, NTVDM), что позволяет контролировать и администрировать системные ресурсы прямо из консоли командного режима.

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

При стандартной установке командный интерпретатор хранится на диске под именем cmd.exe в папке \Windows\System32. Размер файла в Windows 7 равен 295 Кб, в  Windows XP SP3 – 387 Кб.

Значимость командной строки состоит в том, что некоторые возможности ОС Windows доступны только при использовании командной строки. Кроме того, ключи командной строки перекрывают параметры Реестра Windows.

2. Запуск командной оболочки

Существует 2 способа запуска интерпретатора командной строки. Первый, самый быстрый и простой, подразумевает выполнение следующих шагов (рис. 1а и 1б):

 – нажать клавишу с логотипом Windows + R;
– откроется окно Выполнить (Windows 7) или Запуск программы(Windows XP);
– введите cmd, нажмите OK;


Рис. 1а. Запуск командного интерпретатора в Windows 7.

Рис. 1б. Запуск командного интерпретатора в Windows XP.

При необходимости при запуске интерпретатора командной строки можно указать ключи, управляющие работой командной строки. С помощью ключей можно, например, запустить командную строку с отключением эхо-вывода («тихий» режим), определить, как будет вести себя окно командной строки после выполнения команды, указать, какая кодировка ANSI или Unicode будет использована при выводе результатов выполнения команды в файл. В таблице 2.1 перечислены основные ключи, доступные при запуске командной строки.

Таблица 2.1. Ключи управления запуском интерпретатора командной строки

Ключ Описание Пример использования
Указывает, что командная оболочка должна выполнить текущую команду и завершить свою работу cmd /c "dir c:"
/k Указывает, что командная оболочка должна выполнить текущую команду и остаться в интерактивном режиме cmd /k "dir c:"
/a Устанавливает для вывода в файл ANSI-кодировку cmd /a
/u Устанавливает для вывода в файл Unicode-кодировку cmd /u
/q Отключает эхо-вывод cmd /q
/t:FG Задает цвета текста и фона окна командной строки cmd /t:F1

 

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

• Windows XP: Пуск –> Программы –> Стандартные –> Командная строка.
• Windows 7:    Пуск –> Все программы –> Стандартные –> Командная строка.

Независимо от способа запуска будет открыто окно интерпретатора командной строки, вид которого для разных версий Windows представлен на рисунках 2а и 2б.

Рис. 2а. Вид окна интерпретатора командной строки в Windows 7.

 

Рис. 2б. Вид окна интерпретатора командной строки в Windows XP

Для выполнения некоторых команд могут потребоваться права администратора. В Windows 7 если текущий пользователь является администратором компьютера, то при запуске командного интерпретатора через комбинацию клавиш WIN + R на экран будет выведено окно «Выполнить», отличающееся от стандартного окна наличием фразы о запуске от имени администратора (рис. 3).

Рис. 3. Запуск командного интерпретатора пользователем-администратором в Windows 7.

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

Пуск — Все программы — Стандартные — Командная строка, нажать правую кнопку мыши и выбратьЗапуск от имени администратора(рис. 4).

Рис. 4. Запуск командного интерпретатора обычным пользователем с правами администратора в Windows 7.

В Windows XP обычный пользователь так же может запустить командный интерпретатор от имени пользователя, наделенного правами администратора. Для этого необходимо последовательно выбрать Пуск — Все программы — Стандартные — Командная строка, нажать правую кнопку мыши, выбрать«Запуск от имени…» (рис. 5) и указать пользователя, от имени которого будет выполнен запуск командной строки (рис. 6).

Рис. 5. Запуск командного интерпретатора обычным пользователем от имени другого пользователя в Windows XP.

Рис. 6. Окно выбора пользователя, от имени которого будет запускаться командный интерпретатор в Windows XP.

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

 

3. Настройка свойств командной оболочки

3.1. Работа с мышью в окне командной строки

 

Чтобы в окне командной строки можно было работать мышью в каждой из версий Windows нужно выполнить определенную последовательность действий.

В Windows 7 (рис. 7) нужно:

–  щелкнуть правой кнопкой мыши по строке заголовка окна «Командная строка»;
– из открывшегося контекстного меню выбрать «Свойства»;
– в открывшемся окне «Свойства: Командная строка» на вкладке «Общие» в разделе «Правка» установить флажок «Выделение мышью» и нажать кнопку OK.

 

В Windows XP (рис. 8) нужно:

– щелкнуть правой кнопкой мыши по строке заголовка окна «Командная строка»;
– из открывшегося контекстного меню выбрать «Свойства»;
– в открывшемся окне «Свойства: Командная строка» на вкладке «Общие» в разделе «Редактирование» установить флажок «Выделение мышью» и нажать кнопку OK.

 

Рис. 7. Настройка возможности использования мыши в командной строке в Windows 7.

Рис. 8. Настройка возможности использования мыши в командной строке в Windows XP.

В появившемся окне «Изменение свойств ярлыка» (рис. 9) нужно выбрать один из предложенных вариантов. В первом случае все проделанные изменения будут сохранены только для текущего сеанса работы с командной строкой. Во втором случае все изменения сохранятся для последующих сеансов работы.

Рис. 9. Окно выбора варианта сохранения изменений свойств командной строки.

После этого можно выделять мышью текстовое содержимое окна командной строки, нажатием Enter копировать в буфер обмена, а затем вставлять, например, в файл *.txt, или *.doc. Но самое главное, после этого можно вставлять – предварительно скопированные из текстового файла в буфер обмена – длинные текстовые строки команд, щелкнув правой кнопкой мыши по строке заголовка командной строки и выбрав из контекстного меню Изменить –> Вставить.


3.2. Изменение цветов окна командной строки

По умолчанию фоновый цвет окна интерпретатора команд и в Windows XP, и в Windows 7 мрачного черного цвета (рис. 11), но у пользователя есть возможность изменить цветовую гамму окна командной строки (рис. 12).

Чтобы изменит цветовую гамму окна «Командная строка» нужно:
– запустить интерпретатор команд;
– щелкнуть правой кнопкой мыши по строке заголовка окна;
– из открывшегося контекстного меню выберать пункт «Свойства»;
– в открывшемся окне «Свойства Командная строка» на вкладке «Цвета» последовательно, устанавливая переключатели «Фон экрана» и «Текст на экране»,
внизу в строке палитры выделить нужный цвет и нажать кнопку OK.
– в появившемся окне Изменение свойств установите переключатель –> Сохранить свойства для других окон с тем же именем –> OK.

В Windows XP нужно выбрать вариант сохранения изменений цветовой гаммы путем установки переключателя в окне «Изменение свойств ярлыка» (рис. 9).

Рис. 10. Настройка цветовой гаммы окна командной строки.

Рис.11. Цветовая гамма окна «Командная строка» по умолчанию.

Рис.12. Цветовая гамма окна «Командная строка» после настройки цветов.

4. Перенаправление стандартных ввода, вывода и ошибок

4.1. Синтаксис перенаправления ввода, вывода и ошибок

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

Таблица 4.1. Синтаксис перенаправления ввода и/или вывода

Синтаксис перенаправления Описание
Команда1 | Команда2 Вывод первой команды служит вводом для второй
Команда < [путь]имя_файла Ввод команды поступает из заданного файла
Команда > [путь]имя_файла Вывод команды направляется в заданный файл. При этом если указанный файл не существует, то он создается, в противном случае – перезаписывается
Команда >> [путь]имя_файла Вывод команды направляется в заданный файл. При этом если указанный файл не существует, то он создается, в противном случае вывод  дописывается в конец файла
Команда < [путь]имя_файла1 > [путь]имя_файла2 Ввод команды поступает из заданного первого заданного файла, а вывод направляется во второй с перезаписью
Команда < [путь]имя_файла1 >> [путь]имя_файла2 Ввод команды поступает из заданного первого заданного файла, а вывод дозаписывается во второй файл
Команда 2> [путь]имя_файла Создается заданный файл, в который направляется вывод сообщений об ошибках. Если такой файл уже существует, то он перезаписывается
Команда 2>&1 [путь]имя_файла Сообщения об ошибках и стандартный вывод записываются в один и тот же файл

4.2. Примеры перенаправления ввода, вывода и ошибок

4.2.1. Перенаправление стандартного вывода

Перенаправление вывода команды в качестве ввода другой команды принято называть конвейеризацией. Вывод можно последовательно перенаправлять неоднократно. Чаще всего конвейеризация используется для двух команд – FIND и MORE.

Команда FIND ищет строки в файлах или в тексте ввода и выводит строки, соответствующие условию, которое задается в виде подстроки, заключенной кавычками. Например, чтобы получить список всех файлов с расширением .bmp каталоге c:\windows можно воспользоваться следующим вариантом перенаправления и обработки ввода:

dir c:\windows | find ".bmp"

Команда MORE принимает вывод других команд и разбивает его на части, каждая из которых умещается в окне консоли. Например, если нужно просмотреть список всех файлов с расширением .dll каталога c:\windows\system32, можно воспользоваться командами FIND и MORE следующим образом:

dir c:\windows\system32 | find ".dll" | more

Подробную справку о возможностях использования рассмотренных команд можно получить, введя в командной строке find/? или more/?.

4.2.2. Перенаправление ввода-вывода в файлы

Одним из эффективных и часто используемых методов перенаправления является получение входных данных для команды из файла и помещение вывода команды в файл.

 

Например, вывод списка файлов каталога c:\test\data в файл c:\test\list.txt можно оформить следующей командой:

dir c:\test\data > c:\test\list.txt

Поиск файлов с расширением .bat в списке файлов, хранящемся в файле c:\test\list.txt можно организовать так:

find< c:\test\list.txt “.bat”

Здесь в качестве стандартного ввода для команды findопределен файл c:\test\list.txt, а критерием поиска служит помещенная в кавычки строка .bat.

 

5. Создание цепочек и группирование команд

Как правило, при работе с командной строкой пользователь вводит текст команды и нажатием клавиши ENTER запускает ее на выполнение. Однако командная строка позволяет выполнять не только одиночные команды, но и список команд, используя специальные управляющие символы «&» и «|». Пользователю предоставляется возможность создавать цепочку команд и выполнять их последовательно, а также определять условия выполнения команд в зависимости от успеха или неудачи выполнения предыдущих команд. Можно группировать наборы команд, выполняемых по условию.

В таблице 5.1 представлены основные схемы для создания цепочек и группирования команд.

Таблица 5.1. Основные схемы для создания цепочек и группирования команд

Символ Синтаксис Описание
& Команда1 & Команда2 Последовательно выполняются команды Команда1 и Команда2
&& Команда1 && Команда2 Команда2 выполняется, если Команда1 выполнена успешно
|| Команда1 || Команда2 Команда2 выполняется, если Команда1 не выполнена успешно
() (Команда1 & Команда2)&&( Команда3) Команды Команда1 и Команда2 объединятся в группу, а Команда3 выполняется в случае успешного завершения этих команд
  (Команда1 & Команда2) || ( Команда3) Команды Команда1 и Команда2 объединятся в группу, а Команда3 выполняется в случае неудачного завершения этих команд

 

5.1. Примеры использования цепочек команд

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

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

cd c:\test\dir_cont & dir /o:d

Иногда требуется выполнить какую-либо операцию, если предыдущая операция потерпела неудачу.

Пусть есть группа рабочих станций, на части которых существует каталог c:\test\data, а на других – каталог c:\data. Необходимо обеспечить возможность копирования всех данных из каталога docs внешнего накопителя D: в каталог data, независимо от конфигурации рабочей станции. Используя механизм цепочек команд, решить поставленную задачу можно следующим образом:

cd c:\test\data || cd c:\data & copy d:\docs\*.*

Выполняя указанную цепочку команд, система попытается сначала перейти в каталог c:\test\data. Если такого каталога нет, то система попытается перейти в каталог c:\data. Затем, независимо от того, какой каталог станет текущим, система скопирует в него все файлы из каталога d:\docs.

Часто возникает ситуация, когда запуск последующей команды зависит от того, как завершилась предыдущая команда – успешно или неудачно.

Пусть требуется переместить файл test.bat из каталога c:\test в каталог d:\arhiv, только если указанный файл существует. Задача может быть решена вводом следующей строки:

dir c:\test\test.bat && move c:\test\test.bat d:\arhiv

5.2. Группирование последовательностей команд

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

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

hostname & ver > info.txt

Однако, при выполнении команд в файл info.txt попадет только информация об операционной системе, а имя компьютера будет выдано на экран. Это вполне объяснимо. Команды выполняются последовательно, для первой команды стандартный вывод не переопределен и направляется на экран. Для второй команды стандартный вывод перенаправлен в файл. Чтобы в файл попадал вывод обеих команд, их нужно сгруппировать:

(hostname & ver) > info.txt

Теперь в файл indo.txt попала вся необходимая информация.


 

6. Основы сценариев командной строки

6.1. Создание сценариев командной строки

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

Сценарии командной строки – текстовые файлы с командами, которые необходимо выполнять последовательно, часто в автоматическом режиме. Сценарии можно создавать и редактировать подобно любому текстовому файлу, используя текстовые редакторы, например, Блокнот. Каждая команда или группа команд, которые нужно выполняться совместно, должны размещаться в отдельной строке. Командная строка не требует специального символа завершения помимо символа конца строки. Файл, в котором сохраняется сценарий командной строки, должен иметь расширение .bat или .cmd.

При создании сценариев командной строки очень часто используются шесть простейших команд: cls, rem, echo, @, title, color.

Рассмотрим подробнее назначение этих команд.

 

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

 

Команда rem позволяет добавлять в сценарий строки комментариев. Текст комментария помещается через пробел после имени команды. По словам одного из ведущих экспертов в области компьютерных технологий, Уильяма Р. Станека, добавление комментариев в сценарий является признаком хорошего тона:

«…в каждом создаваемом сценарии должны быть комментарии, поясняющие:

- когда сценарий был создан и в последний раз изменен;

- кто создал сценарий;

- для чего предназначен сценарий;

- куда направляется вывод сценария.»

 

Команда remможет быть использована для предотвращения выполнения команды или группы команд. В этом случае достаточно поместить команду rem в начало строки.

 

Команда echo служит двум целям: для записи текста в вывод и для включения/выключения эхо-отображения команд. Обычно при выполнении команд сценария сами команды и вывод этих команд отображаются в консольном окне. Это называется эхо-отображением команд. Чтобы отключить эхо-отображение нужно ввести команду echo off. Чтобы узнать, включено ли эхо-отображение команд или нет, достаточно просто ввести команду echo.

Для возобновления эхо-отображения используется команда echo on. Чтобы использовать команду echo для отображения текста нужно указать текст после пробела после команды.

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

При этоммежду командой и точкой пробела быть не должно!

Команда @ предотвращает эхо-отображение одной текущей строки. Эту возможность команды @ используют для отключения эхо-отображения команды echo off.

 

Команда titleпозволяет отобразить в заголовке окна консоли команд любого текста. Этой возможностью можно пользоваться для отображения хода выполнения сценария.

Команда colorпозволяет изменять цвета фона и текста окна консоли непосредственно при выполнении сценария. По умолчанию консольное окно отображает белый текст на черном фоне. Изменить цвета можно, указав в качестве параметра команды color двухразрядный шестнадцатеричный код, первая цифра которого определяет цвет фона, а вторая – цвет текста. В таблице 6.1 представлены значения кодов цветов окна командной оболочки.

Таблица 6.1. Коды цветов для окна командной оболочки

Код

Цвет

Код

Цвет

Black Черный Gray Серый
Blue Синий Bright Blue Ярко-синий
Green Зеленый A Bright Green Салатовый
Aqua Бирюзовый B Bright Aqua Голубой
Red Красный C Bright Red Ярко-красный
Purple Фиолетовый D Bright Purple Ярко-фиолетовый
Yellow Желтый E Bright Yellow Ярко-желтый
White Белый F Bright White Ярко-белый

 

6.2. Использование аргументов и параметров в сценариях

При запуске сценария на выполнение можно передать сценарию необходимую информацию путем задания значения аргументов. Каждое значение, передаваемое сценарию, задает значение одного из формальных параметров. Имя самого сценария сохраняется в параметре %0. Значение первого аргумента сохраняется в параметре %1, второго аргумента – параметру %2 и так далее до %9 для девятого аргумента. Если при вызове сценария указывается более девяти аргументов, то дополнительные аргументы не теряются. Они сохраняются в специальном параметре %*.  Получить доступ к дополнительным аргументам можно с помощью команды shift. Если команда shiftиспользуется без аргумента, то значения параметров сценария сдвигаются на 1, то есть значение параметра %1 заменяется значением параметра %2 и т.д.

При необходимости можно указать, с какого параметра начинается сдвиг, указав номер первого из заменяемых параметров в качестве аргумента команды shift. Например, если указать shift /2, то значение параметра %2 будет заменено значением параметра %3 и т.д. Значения параметров %0 и %1 при этом останутся без изменения.

 

6.3. Использование переменных в сценариях в сценариях

Наряду с параметрами в сценариях командной строки можно использовать переменные, которые принято называть переменными окружения или переменные среды. Переменные окружения бывают двух типов: встроенные системные и встроенные пользовательские.

Встроенные системные переменные являются ресурсами операционной системы или формируются драйверами аппаратуры. Такие переменные доступны всем Windows-процессам даже если никто не вошел в систему в интерактивном режиме. Значения встроенных системных переменных выбираются из реестра Windows.

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

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

Команда имеет следующий формат:

set [переменная=[строка]] , где

переменная - имя переменной среды;

строка - строка символов, присваиваемая указанной переменной.

Имена переменных не чувствительны к регистру и могут содержать латинские буквы, цифры и практически все символы клавиатуры, кроме символов, зарезервированных в командной строке: @ < > & | ^.

На практике принято присваивать переменным информативные имена, например:

System_name

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

userName

В отличие от многих языков программирования, командная строка игнорирует типы данных. Значения всех переменных хранятся как символьные строки.

Для доступа к значениям переменных используются два варианта метода подстановки.

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

if %errorlevel%=="2" echo "Код возврата равен 2"

В приведенном примере определяется, содержит ли переменная errorlevel значение 2 и, если да, отображается текст сообщения. Символы процента, окружающие имя переменной, предписывают сравнивать с символьным значением "2" значение переменной, а не ее имени.

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

cd %systemroot%\system32

где systemroot - это имя встроенной системной переменной, хранящей имя корневого системного каталога Windows.

Подстановку можно использовать и при присвоении значений переменным, например:

systemPath = %SystemRoot%\System32

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

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

set working_dir =

6.4. Организация передачи управления в сценариях Windows

Обычно командная оболочка Windows исполняет сценарии построчно от начала файла до конца. Порядок выполнения команд можно изменить с помощью команды if,команды безусловной передачи управления gotoи команды вызова одного сценария из другого call.

6.4.1. Реализация ветвления по условию

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

if [not] условие (оператор1) [else (оператор2)]

Оператор1 и оператор2 могут быть одной командой или несколькими объединенными в цепочку, конвейер или группу. Условие – это любое выражение, возвращающее булево значение Истина или Ложь.

Команда работает так: если условие возвращает Истина, выполняется Оператор1. В противном случае выполняется Оператор2, если он указан.

Пример.

if  %OS%==”Windows_NT ” echo “Windows NT” else echo “Not Windows NT”

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

if not errorlevel 0 (echo Обнаружена ошибка) & (exit)

Для проверки наличия переменных используется команда if [not] defined.

Пример.

if defined kolServers (echo Количество серверов: % kolServers %)

Если переменная kolServers задана, то в вывод заносится информация о количестве серверов, в противном случае сценарий переходит к следующей команде.

6.4.2. Реализация безусловного перехода

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

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

 

 

Пример создания бесконечного цикла

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.