Winscp создать символическую ссылку
Кроме того, WinSCP предоставляет пользователю массу дополнительных возможностей:
- Возможность импорта настроек соединений из установленной в системе программы PuTTY. - Интеграция с Pageant (PuTTY Agent) с поддержкой авторизации по открытым ключам.
- Интеграция с операционной системой Windows (поддержка Drag&Drop, ярлыков, поддержка схем URL).
- Поддержка работы с любыми версиями протокола SSH (Secure Shell)
- Поддержка различных типов авторизации, как по паролю, так и с использованием ключей.
- Встроенный текстовый редактор.
- Возможность сохранять настройки соединений.
- Возможность работы с использованием файла конфигурации вместо хранения настроек в реестре, что позволяет использовать ее в переносимом варианте (Portable WinSCP).
- Плагин для поддержки протокола SFTP в программе FAR Manager .
- Возможность синхронизации каталогов локального и удаленного узлов.
Программа WinSCP абсолютно бесплатна и распространяется с открытым исходным кодом.
Установка и настройка WinSCP
Установка программы выполняется стандартным образом с рекомендуемыми параметрами или с возможностью выбора параметров. Выбираемые параметры можно изменить в любой момент времени после установки. Настройки WinSCP выполняются через меню Параметры - Настройки . Множество различных параметров настройки внешнего вида и поведения программы позволяют легко адаптировать ее под предпочтения конкретного пользователя.
Настройки по умолчанию, как правило, соответствуют предпочтениям обычного пользователя Windows, но при необходимости, можно например, изменить поведение программы при обрыве связи, отклонении сервером подключения по протоколу SFTP и т.п.
Подключение к серверам
Программа WinSCP позволяет создавать и, по желанию пользователя – сохранять, профили подключений к различным серверам, поддерживающим соответствующие прикладные протоколы FTP, FTPS, SFTP, SCP, WebDAV, Amazon S3.
Для создания нового подключения используется кнопка Новое соединение - Новое подключение или комбинация клавиш CTRL+N . Далее необходимо выбрать параметры соединения – протокол передачи данных, наличие и свойства шифрования, имя сервера (IP-адрес) и номер порта, а также - учетную запись пользователя, используемую при подключении к указанному серверу:
После завершения настройки подключения, можно выполнить его сохранение нажав кнопку Сохранить Сохраненное соединение можно использовать в качестве соединения по умолчанию, которое будет выбираться при запуске программы WinSCP.
В нижней части окна со списком соединений размещены кнопки Инструменты и Действия предоставляющие пользователю дополнительные возможности по сохранению и восстановлению конфигурации подключений, взаимодействию с программой PuTTY , стиранию следов работы программы и вызову ее настроек.
Передача данных.
Двухпанельный интерфейс по образу Total Commander, как правило, удобнее интерфейса в стиле Проводника Windows. В левом окне отображается локальная файловая система, в правом – файловая система сервера, к которому выполнено подключение.
Настройки WinSCP позволяют поменять панели местами - Настройки - Внешний вид - Коммандер - Панели - включить Поменять панели местами (локальная справа, сервер слева)
В процессе передачи данных отображается статистическая информация:
Важной особенностью Winscp является возможность синхронизации локальных и удаленных данных. Режим синхронизации включается через меню Команды - Синхронизация .
В настройках синхронизации можно выбрать 3 направления:
Компьютер - изменения в удаленном каталоге применяются по отношению к локальному.
Сервер - изменения в локальном каталоге применяются по отношению к удаленному.
В обе стороны - изменения выполняются как в удаленном, так и в локальном каталогах.
Кроме направления синхронизации, можно выбрать также и ее режим:
Синхронизация файлов - основной режим синхронизации в WinSCP. Реализуется алгоритм:
- Файлы, более новые в каталоге источника передаются в каталог приемника.
- Файлы, присутствующие в каталоге источника, но отсутствующие в каталоге приемника передаются в каталог приемника, если не включен режим Лишь имеющиеся файлы в настройках Параметры синхронизации .
- Файлы, существующие в каталоге приемника, но отсутствующие в каталоге источника могут быть удалены, если включен режим Удалять файлы в настройках Параметры синхронизации .
- При направлении синхронизации В обе стороны файлы, отсутствующие в противоположном каталоге считаются новыми и передаются, если не включен режим Лишь имеющиеся файлы . Удаление файлов при использовании данного направления синхронизации не выполняется.
Зеркальные файлы - различающиеся файлы (более новые и более старые) в каталоге источника передаются в каталог приемника.
Синхр. штампов времени - режим активен, если в удаленной и локальной системе существует возможность определения времени модификации файлов. Обычно, это подключение по протоколу SFTP. Никакие файлы не изменяются и не удаляются. Если один и тот же файл существует в каталоге источника и в каталоге приемника, можно изменить его отметку времени на время модификации либо источника, либо приемника по выбору пользователя. При направлении синхронизации В обе стороны обновляется отметка времени более старых файлов.
Автоматизация обмена данными с применением WinSCP
Программа WinSCP имеет поддержку командной строки и развитую систему создания и выполнения сценариев, что позволяет легко реализовать автоматизацию повторяющихся процессов приема и передачи данных.
"C:\Program Files (x86)\WinSCP\WinSCP.exe" /console
Для удобства работы с командной строкой WinSCP можно добавить путь к каталогу программы в переменную PATH стандартными средствами Windows либо средствами самой WinSCP: Параметры - Настройки - Интеграция - Добавить папку WinSCP в путь поиска . Поскольку добавление пути поиска WinSCP выполняется в системную переменную PATH, требуется запуск программы от имени администратора и перезагрузка Windows для применения изменений.
По умолчанию, в окне командной строки WinSCP используется кодировка UTF-8 . При желании, внешний вид и поведение консоли WinSCP можно настроить под свои предпочтения, например, включив выделение текста мышью и сменив цветовую палитру на черные символы на белом фоне.
Получение справки по командам WinSCP
Большинство внутренних команд WinSCP имеют синтаксическое и смысловое сходство с командами командной строки Linux. Для получения встроенной справки используется команда help :
call - Выполняет заданную команду на сервере
cd - Изменяет папку на сервере
checksum - Вычисляет контрольную сумму файлов на сервере
chmod - Изменить права доступа к файлу на сервере
close - Закрывает соединение
cp - Дупликация/дубль удалённого файла
exit - Закрывает все соединения и завершает программу
get - Загрузить файл с сервера
help - Отображает справку
keepuptodate - Постоянно отслеживать изменения в локальной папке
lcd - Изменить локальную папку
lls - Отобразить содержимое локальной папки
ln - Создать ссылку на сервере
lpwd - Отобразить содержимое локальной папки
ls - Отобразить содержимое папки на сервере
mkdir - Создать папку на сервере
mv - Переименование/перенос файла на сервере
open - Соединение с сервером
option - Просмотреть/задать параметры сценария
put - Выгрузить файл на сервер
pwd - Печатает имя папки сервера
rm - Удалить файл с сервера
rmdir - Удалить папку с сервера
session - Показать список активных соединений или выбрать активное соединение
stat - Запрашивает атрибуты файла на сервере
synchronize - Синхронизировать папку на сервере с локальной
Получение справки по конкретной команде WinSCP
Для получения дополнительной справочной информации по отдельным командам используется синтаксис:
help synchronize - получить подсказку по команде синхронизации. Результат выполнения:
Если первый параметр — 'local', синхронизирует локальный каталог с удалённым Если первый параметр — 'remote', синхронизирует удалённый каталог с локальным. Если первый параметр — 'both', взаимно синхронизирует каталоги. Если каталоги не указаны, синхронизируются текущие рабочие каталоги.
Примечание: подтверждения перезаписи для этой команды всегда отключены.
BR> параметры:
-preview - Только просмотр различий, не синхронизировать
-delete - Удалить устаревшие файлы
-mirror - Зеркалирование (синхронизирует старые файлы тоже). Игнорируется в режиме 'both'.
-criteria= - Критерии сравнения. Возможные значения: 'none', 'time', 'size' и 'either'. Игнорируется в режиме 'both'.
-permissions= - Установить права
-nopermissions - Сохранить права по умолчанию
-speed= - Ограничить скорость передачи
-transfer= - Режим передачи: binary, ascii, automatic
-filemask= - Задаёт файловую маску.
-resumesupport= - Настраивает поддержку возобновления. Возможные значения: 'on', 'off' или пороговая величина
действующие параметры: reconnecttime
synchronize remote -delete
synchronize both d:\www /home/martin/public_html
Использование собственных сценариев WinSCP .
WinSCP позволяет пользователю получить уже готовые сценарии для выполнения большинства операций приема и передачи файлов. Например, при приеме файла от удаленного сервера в локальный каталог, после нажатия кнопки Получить можно открыть выпадающее меню Настройки передачи
Выбранный сценарий нужно сохранить в каком-нибудь файле в кодировке UTF-8 (UTF-16), например C:\Scripts\s1.txt и передать его на выполнение в виде параметра командной строки winscp:
Если каталог WinSCP не добавлен в пути поиска переменной PATH, по нужно указать полный путь к исполняемому файлу:
"C:\Program Files (x86)\WinSCP\winscp.com" /script=c:\Scripts\s1.txt /ini=nul
В процессе выполнения сценария, на экране отображается справочная информация:
При необходимости, можно включить протоколирование выполнения сценария в журнале, например, C:\Scripts\s1.log :
Для получения командного файла CMD Windows, необходимо выбрать Формат - Пакетный файл :
Содержимое командного файла копируется в буфер обмена и затем в командный файл, например, C:\Scripts\s1.bat . В полученный таким образом командный файл нужно внести некоторые изменения, указав действительные путь для файла журнала или отключить его ведение:
@echo off
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log="C:\Scripts\s1.log" /ini=nul ^
/command ^
"open ftp://[email protected]/" ^
"cd /utility/Backplane Utility" ^
"lcd C:\Backplane_Utility" ^
"get backplane.zip" ^
"exit"
REM Ниже пример анализа кода возврата для оценки результата выполнения сценария set WINSCP_RESULT = %ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
echo Success
) else (
echo Error
)
exit /b %WINSCP_RESULT%
WinSCP возвращает ERRORLEVEL равный нулю, если сценарий выполнен успешно. Команда exit /b %WINSCP_RESULT% формирует ERRORLEVEL для данного командного файла, который может быть использован в других сценариях для анализа результатов его выполнения.
winscp.com /command "open ftp://[email protected]/" "cd /Backplane_Utility" "lcd C:\Backplane_Utility" "get backplane.zip" "exit"
Полученный код для выполнения в среде PowerShell копируется в файл с расширением .ps1 , например - C:\Scripts\s1.ps1 и запускается на выполнение командой:
powershell -file C:\Scripts\s1.ps1
powershell -Command Set-ExecutionPolicy RemoteSigned
После выполнения данной команды, выполнение сценариев в среде PowerShell будет разрешено.
Полученный код сборки для PowerShell, может потребовать некоторой правки, в частности - указания полного пути для загрузки динамической библиотеки WinSCPnet.dll .
Использование планировщика заданий для автоматизации выполнения сценариев
Для запуска Планировщика заданий можно воспользоваться поиском в Windows, перейти в “Панель управления” - “Администрирование” - “Планировщик заданий”, либо выполнить команду taskschd.msc .
Библиотека планировщика заданий , отображаемая в левой части окна оснастки планировщика, имеет довольно непростую иерархическую структуру, поэтому, можно создать отдельную папку, с использованием контекстного меню, вызываемого правой кнопкой мышки и пункта Создать папку , ввести имя папки, и в дальнейшем, именно в ней создавать свои тестовые или рабочие задания.
Для создания задач планировщика могут использоваться два мастера, вызываемые в режимах Создать простую задачу и Создать задачу . При создании простой задачи используется минимальный набор параметров, не предусматривающий наличие множественных условий выполнения и множественных действий. Для запуска сценариев WinSCP по расписанию, вполне достаточно создания простой задачи.
Новую задачу можно создать с использованием пункта меню Действие - Создать простую задачу либо через контекстное меню, вызываемое правой кнопкой мышки на уровне созданной папки в библиотеке планировщика, либо на уровне "Библиотека планировщика", если такая папка не нужна. После чего запускается мастер создания задачи:
На шаге Общие введите имя задания и его описание. Имя, для примера - DownloadFiles , а описание "Download files from site.com". Описание может быть произвольным текстом, но желательно, чтобы оно отражало суть создаваемой задачи.
На шаге Триггер выполняется настройка условий, при возникновении которых, будет запущена создаваемая задача.
На шаге Действия в качестве действия выбираем Запуск программы , в виде которой будет выступать созданный ранее командный файл Script1.bat , который нужно выбрать с использованием кнопки Обзор… .
На шаге Завершение нажмите кнопку Готово и задание будет создано. Настройки созданного задания можно изменить в любое время при наличии у пользователя соответствующих прав.
WinSCP — графический клиент для Windows, классический двухпанельный или как в проводнике. Обеспечивает защищённое копирование файлов между компьютером и серверами, поддерживающими протоколы SFTP, FTP, SCP, WebDAW и S3. Распространяется по лицензии GNU GPL.
- Графический двухпанельный интерфейс и как в проводнике Windows Explorer (на выбор).
- Локализации интерфейса для нескольких десятков языков, в том числе русского.
- Интеграция с Windows (поддержка Drag&Drop, ярлыков, поддержка схем URL).
- Все основные файловые операции.
- Поддержка протоколов SFTP и SCP поверх SSH-1 и SSH-2, а также FTP, WebDAV и S3.
- Автоматизация при помощи скриптов и интерфейса командной строки.
- Синхронизация папок по нескольким автоматическим и полуавтоматическим алгоритмам.
- Встроенный текстовый редактор.
- Возможность сохранять настройки соединений.
- Совместимость настроек с PuTTY.
- Поддержка различных типов авторизации: по паролю, аутентификации с открытым ключом, Kerberos.
- Интеграция с Pageant (PuTTY Agent) с поддержкой авторизации по открытым ключам.
- Защита сохранённых настроек мастер-паролем.
- Возможность работы с использованием файла конфигурации вместо хранения настроек в реестре, что удобно при запуске с переносных носителей.
При помощи WinSCP можно соединиться с сервером SSH (Secure Shell) по протоколу SFTP (SSH File Transfer Protocol) или SCP (Secure Copy Protocol). Обычно это нужно для обмена файлами с машинами под ОС Linux. SFTP входит в реализацию протокола SSH-2. SCP входит в реализацию протокола SSH-1. В последнее время добавилась поддержка протоколов FTP, WebDAV и S3.
FTP протокол используется для передачи файлов, поддерживается FTPS (FTP Secure, FTP-SSL).
Amazon S3 (Simple Storage Service) — это служба Amazon Web Services (AWS). Она даёт возможность соединяться с облаком Amazon посредством интерфейсов REST, SOAP, и BitTorrent. WinSCP для соединения по S3 использует REST интерфейс. Облака Google Cloud Storage, Backblaze B2, Dell ECS, DigitalOcean Spaces, MinIO, Wasabi поддерживают S3 API, поэтому WinSCP также может работать с ними по S3.
WinSCP выполняет все основные операции с файлами:
- загружать и выгружать файлы
- переименовывать файлы и папки
- создавать папки
- изменять свойства файлов и папок
- создавать символические ссылки и ярлыки
Программа предлагает два пользовательских интерфейса, каждый из которых может быть настроен при помощи множества параметров. Графический интерфейс как в проводнике Windows Explorer может выступать в качестве файлового менеджера.
WinSCP — графический клиент для Windows, классический двухпанельный или как в проводнике. Обеспечивает защищённое копирование файлов между компьютером и серверами, поддерживающими протоколы SFTP, FTP, SCP, WebDAW и S3. Распространяется по лицензии GNU GPL.
- Графический двухпанельный интерфейс и как в проводнике Windows Explorer (на выбор).
- Локализации интерфейса для нескольких десятков языков, в том числе русского.
- Интеграция с Windows (поддержка Drag&Drop, ярлыков, поддержка схем URL).
- Все основные файловые операции.
- Поддержка протоколов SFTP и SCP поверх SSH-1 и SSH-2, а также FTP, WebDAV и S3.
- Автоматизация при помощи скриптов и интерфейса командной строки.
- Синхронизация папок по нескольким автоматическим и полуавтоматическим алгоритмам.
- Встроенный текстовый редактор.
- Возможность сохранять настройки соединений.
- Совместимость настроек с PuTTY.
- Поддержка различных типов авторизации: по паролю, аутентификации с открытым ключом, Kerberos.
- Интеграция с Pageant (PuTTY Agent) с поддержкой авторизации по открытым ключам.
- Защита сохранённых настроек мастер-паролем.
- Возможность работы с использованием файла конфигурации вместо хранения настроек в реестре, что удобно при запуске с переносных носителей.
При помощи WinSCP можно соединиться с сервером SSH (Secure Shell) по протоколу SFTP (SSH File Transfer Protocol) или SCP (Secure Copy Protocol). Обычно это нужно для обмена файлами с машинами под ОС Linux. SFTP входит в реализацию протокола SSH-2. SCP входит в реализацию протокола SSH-1. В последнее время добавилась поддержка протоколов FTP, WebDAV и S3.
FTP протокол используется для передачи файлов, поддерживается FTPS (FTP Secure, FTP-SSL).
Amazon S3 (Simple Storage Service) — это служба Amazon Web Services (AWS). Она даёт возможность соединяться с облаком Amazon посредством интерфейсов REST, SOAP, и BitTorrent. WinSCP для соединения по S3 использует REST интерфейс. Облака Google Cloud Storage, Backblaze B2, Dell ECS, DigitalOcean Spaces, MinIO, Wasabi поддерживают S3 API, поэтому WinSCP также может работать с ними по S3.
WinSCP выполняет все основные операции с файлами:
- загружать и выгружать файлы
- переименовывать файлы и папки
- создавать папки
- изменять свойства файлов и папок
- создавать символические ссылки и ярлыки
Программа предлагает два пользовательских интерфейса, каждый из которых может быть настроен при помощи множества параметров. Графический интерфейс как в проводнике Windows Explorer может выступать в качестве файлового менеджера.
FTP — это стандартный метод передачи файлов или других данных между компьютерами, однако с каждым днём он становится всё более устаревшим, учитывая современные стандарты безопасности. К счастью, именно здесь на помощь приходит SFTP, который пользователи VPS-хостинга найдут особенно полезным.
В этом руководстве мы покажем, как использовать SFTP для безопасной передачи файлов, поговорим о некоторых других полезных командах и подробнее остановимся на том, как это работает.
Как подключиться к серверу по SFTP?
SFTP — это подсистема SSH. Следовательно, этот протокол поддерживает все методы аутентификации SSH. Хотя настроить и использовать аутентификацию по паролю намного проще, вход в систему с помощью ключей SSH по SFTP без пароля намного безопаснее.
Подробную информацию о том, как настроить ключи SSH можно найти в этом руководстве. Когда вы будете готовы, выполните следующие действия, чтобы подключиться по SFTP:
- Проверьте свой доступ по SSH с помощью одной из следующих команд:
- Выйдите из сеанса, если ошибок не возникло.
- Инициируйте SFTP-соединение с помощью следующих команд:
- Если вы используете собственный порт SSH, используйте одну из этих команд, чтобы изменить порт SFTP:
- Вот как это должно выглядеть:
После подключения вы увидите командную оболочку SFTP.
Как передавать файлы по SFTP?
Здесь мы покажем вам, как передавать удалённые файлы в локальную систему и наоборот с помощью SFTP.
Обратите внимание! Вы также можете передавать файлы с помощью SFTP-клиентов, таких как WinSCP или FileZilla. Если вас интересует последний, ознакомьтесь с нашим руководством на эту тему.
Передача удалённых файлов с сервера в локальную систему
Для начала давайте проверим, какие локальный и удалённый рабочие каталоги мы используем. Для этого воспользуемся следующими командами SFTP:
Теперь давайте посмотрим, как передать файл с удалённого сервера на локальный компьютер с помощью команды get. Вот основной синтаксис команды get:
Например, чтобы скопировать файл /etc/xinetd.conf с удалённого сервера на локальный компьютер, вы должны использовать команду:
По завершению загрузки вы найдёте файл xinetd.conf в каталоге /user/home на вашей локальной машине.
Чтобы загрузить по SFTP несколько файлов, используйте команду mget. Для загрузки в текущий рабочий каталог все файлы из каталога /etc с расширением .conf, воспользуйтесь следующей командой:
После загрузки вы найдёте все файлы *.conf в каталоге /user/home на вашем компьютере.
Передача файлов с локального компьютера на удалённый сервер
Чтобы скопировать файл с локального компьютера на удалённый сервер, мы снова воспользуемся командой get. В этом случае синтаксис команды get будет следующим:
Чтобы переместить файл example.txt с локальной машины на удалённую, введите следующую команду:
Теперь мы найдём файл в корневом каталоге удалённого сервера. Вы также можете попробовать передать несколько файлов с помощью команды mput. Работает почти так же, как mget:
Эта команда переместит все файлы с расширением .txt в папке /home/user-name с локального компьютера на удалённый в каталог /root.
Обратите внимание! Для загрузки и выгрузки файлов по SFTP вам нужно будет ввести команду put или get и нажать клавишу TAB.
Команды для навигации по SFTP
Некоторые команды можно использовать для более эффективной навигации по удалённым и локальным серверам с помощью SFTP. Они похожи на те, которые вы бы использовали в командной строке Linux.
Например, команда pwd всегда поможет узнать, в каком рабочем каталоге вы находитесь.
Вы также можете вывести список файлов и каталогов, которые вы используете для удалённого каталога:
Аналогично для локального рабочего каталога:
Вывод будет выглядеть примерно так:
Чтобы переключиться из одного удалённого рабочего каталога на другой локальный рабочий каталог, введите следующие команды:
Наконец, используйте ! и команды exit, чтобы вернуться в локальную оболочку и выйти из SFTP.
Основы обслуживания файлов с использованием SFTP
SFTP также позволяет управлять каталогами и файлами с помощью определённых команд.
Чтобы проверить дисковое пространство удалённого сервера в гигабайтах, используйте функцию df следующим образом:
Вот пример вывода:
Используйте команду mkdir, чтобы создать новый каталог на удалённом или локальном сервере:
Вы можете удалить его с удалённого сервера с помощью команды rmdir:
Переименовать удалённый файл тоже довольно просто:
Если вы хотите удалить удалённый файл, используйте команду rm:
В то время как команда chown используется для замены владельца файла:
Значением userid может быть либо имя пользователя, либо числовой идентификатор пользователя. Например:
chgrp используется для изменения владельца группы файла:
Наконец, вам нужно будет использовать интерактивную команду chmod, чтобы изменить права доступа к файлу:
В этом примере трёхзначное значение обозначает пользователя, группу и других пользователей файла.
Что касается разрешений на чтение (r), запись (w) и выполнение (x), их значения равны 4, 2, 1 соответственно. 0 также может использоваться, чтобы не предоставлять никаких разрешений.
Чтобы назначить разрешения, просто вычислите общие значения для каждого класса пользователей. Вот подробный пример:
Список полезных команд SFTP
Если вам нужна шпаргалка, вот список всех доступных команд SFTP. Вы можете найти этот список самостоятельно, просто введя команду вызова справки help или ? — обе предложат один и тот же результат.
Что такое SFTP?
SFTP, или SSH File Transfer Protocol — более безопасный способ передачи файлов. Используя протокол SSH, он поддерживает шифрование и другие методы безопасности для лучшей защиты передачи файлов. Это единственный безопасный протокол, который защищает от атак на любом этапе процесса передачи данных.
Во время передачи файлов все данные разделяются на пакеты и отправляются через единое безопасное соединение.
SFTP шифрует конфиденциальную информацию при передаче между клиентом и сервером и делает её нечитаемой. Другими словами, исходное содержимое (открытый текст) заменяется бессвязной строкой символов (зашифрованным текстом).
Только получатель с требуемым ключом дешифрования сможет увидеть исходный контент. Это предотвращает любой несанкционированный доступ к данным во время передачи файлов.
Обычный протокол передачи файлов (FTP) имеет два разных канала для обмена данными — командный канал и канал даных. SFTP имеет только один зашифрованный канал, по которому данные передаются зашифрованными, отформатированными пакетами.
Заключение
В этом руководсве мы охватили основы использования SFTP для безопасной передачи файлов. Мы надеемся, что эта статья была вам полезной. Однако, если вам нужна дополнительная информация только о FTP, вы можете найти больше руководств здесь.
Также, если у вас возникли вопросы, не стесняйтесь оставлять их в комментариях ниже.
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Читайте также: