Большинство пользователей ПК используют 64-разрядную версию Windows 10. Если вы также используете 64-разрядную версию Windows 10 , вы можете убедиться, что все установленные программы являются 64-разрядными для оптимальной производительности.
Есть несколько преимуществ запуска 64-битной версии программы на 64-битной установке Windows 10. 64-разрядная программа может получить доступ к большему объему памяти, чем 32-разрядная версия, поскольку она поддерживает более 4 ГБ памяти. Из-за этого 64-битное приложение в 64-битной Windows может работать немного быстрее.
Как вы, вероятно, уже знаете, установка 64-битной Windows 10 позволяет устанавливать и запускать программы как 32-битной, так и 64-битной архитектуры. Однако вы можете устанавливать и запускать только 32-разрядные программы в 32-разрядной (x86) версии Windows 10.
При оптимизации установки Windows 10 для повышения производительности вы можете узнать, является ли установленная программа 32-разрядной или 64-разрядной. К счастью, выяснить, является ли установленная программа 32-битной или 64-битной, довольно просто.
Могу ли я обновить 32-битные приложения до 64-битных?
Точно так же, как вы не можете обновить 32-разрядную версию Windows до 64-разрядной , вы не можете обновить 32-разрядные приложения до 64-разрядных и наоборот.
Вам придется удалить 32-разрядное приложение, а затем установить 64-разрядное, если оно доступно.
ВАЖНО! Используйте это руководство, только если вы используете 64-разрядную версию Windows 10. Поскольку 32-разрядная установка Windows не поддерживает установку 64-разрядных программ, все программы, установленные в 32-разрядной версии Windows, являются только 32-разрядными.
Метод 1 из 2
Проверьте, является ли программа 32-битной 64-битной через диспетчер задач
Если вы используете сборку 19541 или новее Windows 10, проверить архитектуру программы довольно просто. Диспетчер задач в Windows 10 build 19541 или более поздней версии имеет возможность отображать программную архитектуру. Вот как проверить, является ли программа 64-битной или 32-битной в диспетчере задач.
Шаг 1. Откройте диспетчер задач, щелкнув правой кнопкой мыши пустое место на панели задач и выбрав пункт « Диспетчер задач».
Шаг 2. Разверните диспетчер задач, если вы получите меньшую версию, щелкнув опцию «Подробнее».
Шаг 3: Щелкните правой кнопкой мыши заголовок столбца (как показано на рисунке ниже), выберите « Выбрать столбцы» и выберите «Архитектура» из списка.
Вкладка Details диспетчера задач теперь показывает вкладку Architecture, которая отображает архитектуру всех запущенных программ.
Шаг 4: Наконец, запустите программу, архитектуру которой вы хотите проверить. Загляните в столбец Архитектура, чтобы узнать архитектуру программы.
Метод 2 из 2
Другой способ проверить, является ли программа 64-разрядной или 32-разрядной в Windows 10
Шаг 1: Откройте проводник и перейдите к этому компьютеру. Дважды щелкните диск, на котором установлена Windows 10, чтобы увидеть, помимо прочего, папки Program Files и Program Files (x86).
Обратите внимание, что Program Files (x86) создается только в 32-разрядной версии Windows 10.
Шаг 2: Теперь проверьте папки Program Files и Program Files (x86) на предмет записи приложения, архитектуру которого вы хотите выяснить. Если приложение или папка приложения присутствует в Program Files, это означает, что установленная программа является 64-разрядной версией.
Аналогично, если приложение находится в папке Program Files (x86), это 32-разрядное приложение, установленное на 64-разрядной установке Windows 10. Вы можете проверить разработчика, доступна ли 64-битная версия приложения. Если доступно, удалите существующий и установите 64-разрядный.
Само собой разумеется, что вы не можете установить 64-битные программы на 32-битной Windows 10. Итак, если вы работаете с 32-битной Windows 10, все программы, установленные на ней, являются только 32-битными.
Вы хотите загрузить свое любимое видео или любые большие мультимедийные файлы из Интернета с помощью браузера Google Chrome и сохранить его на своем компьютере в виде общего файла, но загрузка повторяется снова и снова или просто загрузка останавливается до ее завершения?
Ну, есть выход для вас, Internet Download Manager на Chrome . Да, расширение IDM является спасителем. Просто добавьте расширение Chrome для загрузки через Интернет и сохраните все, что угодно, из Интернета, чтобы работать в автономном режиме. Но что, если вы точно не знаете, как добавить расширение IDM в Chrome на компьютере или ноутбуке с Windows 10?
Не о чем беспокоиться! Вам не нужно быть техническим наркоманом, просто следуйте инструкциям, описанным ниже, и без проблем интегрируйте программное обеспечение IDM с браузером Google Chrome. Наряду с этим также узнайте, почему вы должны использовать Internet Download Manager (IDM) вместо обычных компонентов загрузки вашего браузера.
Так что теперь без дальнейших задержек давайте окунемся и узнаем об основных функциях Internet Download Manager и правильном способе интеграции IDM в Chrome.
Почему вы должны использовать Internet Download Manager на Chrome?
Прежде чем мы продолжим работу с полным интернет-менеджером загрузок Google Chrome, давайте кратко рассмотрим IDM и то, что делает его идеальным менеджером загрузок и самым быстрым ускорителем загрузки для вашего ПК с Windows 10.
Internet Download Manager (IDM) — это условно-бесплатный менеджер загрузок, который позволяет увеличить скорость загрузки до 5 раз, а также предоставляет возможности возобновления и планирования загрузки. Проще говоря, IDM является одним из наиболее удобных способов загрузки файлов любого типа из Интернета и упорядочения их по своему усмотрению.
IDM представляет ваши лучшие на рынке функции загрузки, такие как расписание, возобновление и сохранение ваших загрузок. Он также обеспечивает наилучшую возможную скорость загрузки, используя оптимальную доступную полосу пропускания. Вот несколько важных функций IDM:
⭐ Скорость загрузки: благодаря своей оригинальной технологии динамической сегментации файлов IDM может повысить скорость загрузки до 5 раз.
⭐ Много прокси-серверов и поддержка протоколов: IDM поддерживает прокси-серверы, такие как Microsoft ISA, FTP и MMS HTTP, а также поддерживает протоколы аутентификации, такие как NTLM, Kerberos, basic, Negotiate.
⭐ Встроенный планировщик: в IDM вы можете запланировать загрузку файлов и IDM с загрузкой их в установленное время.
Monitor Антивирусный монитор: IDM поставляется с автоматическим антивирусным монитором, который предупреждает вас о попытке загрузить файл, содержащий вредоносное ПО.
⭐ Приоритетность ваших загрузок: IDM позволяет вам ранжировать ваши загрузки в иерархии по вашему выбору. Вы также можете загружать медиа-файлы и одновременно воспроизводить их в своем браузере.
⭐ Easy Installation Wizard: Простые и быстрые программы установки позаботятся о необходимых настройках и, в конце концов, проверит интернет-соединение и гарантируют, что у вас не возникнет проблем при установке IDM.
⭐ Загрузка в один клик: при нажатии на ссылку для загрузки IDM автоматически берет на себя загрузку браузера по умолчанию и увеличивает скорость загрузки.
Однако необходимо помнить о некоторых вещах: некоторые из этих функций недоступны в бесплатной версии программного обеспечения для управления загрузками через Интернет. Для доступа к этим функциям вам необходимо иметь серийный номер IDM и зарегистрировать приложение Internet Download Manager, используя его.
Как добавить расширение IDM в Chrome в Windows 10
Когда дело доходит до выбора самого быстрого ускорителя загрузки, программное обеспечение Internet Download Manager (IDM), очевидно, является наиболее широко используемым и наиболее предпочтительным выбором для большинства пользователей Google Chrome. Но если вы не знаете, как правильно интегрировать расширение IDM с браузером Chrome, оно не будет работать должным образом.
Вот почему мы придумали это подробное руководство и скомпилировали пошаговый процесс, чтобы показать вам, как установить расширение IDM вручную из папки установки IDM и как точно добавить модуль интеграции IDM в ваш браузер Chrome. Чего же ты ждешь? Следуйте всем нижеприведенным инструкциям и сразу же включите Internet Download Manager в ваш браузер Chrome. Вот так:
Установите Internet Download Manager на Windows 10
Мы исследовали различные форумы сообщества и обнаружили, что среди пользователей звучит одна вещь: «Модуль интеграции IDM не работает в Chrome». Что ж, если вы также заметили это, вкладка загрузки IDM отсутствует при просмотре видео или прослушивании песни, что указывает на проблемы с расширением вашего браузера. В этом случае вы должны сначала удалить расширение из Google Chrome и добавить его снова, чтобы решить проблему.
Кроме того, если вы устанавливаете программное обеспечение для управления загрузкой через Интернет на ПК с Windows 10 и впервые добавляете IDM в Chrome, неукоснительно выполняйте все эти шаги.
Шаг (2): После завершения установки откройте программное обеспечение Internet Download Manager на своем компьютере и перейдите к пункту «Загрузки», а затем «Параметры».
Шаг (3). Теперь в диалоговом окне «Конфигурация диспетчера загрузки Интернета» перейдите на вкладку «Общие» и убедитесь, что установлены флажки «Использовать расширенную интеграцию с браузером» и «Google Chrome».
Настройте расширение IDM для Chrome
Во время установки программного обеспечения IDM в вашем браузере Chrome автоматически устанавливается расширение модуля интеграции IDM. Но в случае, если расширение IDM не устанавливается автоматически, выполните следующие шаги, чтобы сделать это правильно и настроить его правильно.
Шаг (4). Перейдите по этой ссылке, чтобы открыть расширение модуля интеграции IDM в Chrome Web Store, а затем нажмите кнопку «Добавить в Chrome».
Важное примечание: в интернет-магазине Chrome доступно множество поддельных расширений IDM, поэтому не ищите его по названию, всегда переходите по официальной ссылке на модуль интеграции IDM.
Шаг (5): Затем нажмите кнопку «Добавить расширение», чтобы подтвердить установку.
Шаг (6). После добавления расширения IDM в браузер Chrome нажмите значок «Меню» (три вертикальные точки) и выберите «Дополнительные инструменты» > «Расширения».
Шаг (7): Далее в расширении модуля интеграции IDM нажмите кнопку Подробности, чтобы открыть его настройки.
Шаг (8): Теперь убедитесь, что расширение модуля интеграции IDM включено . А если вы используете режим инкогнито в Chrome, то включите опцию «Разрешить в инкогнито».
Таким образом, вы можете легко интегрировать расширение IDM с браузером Chrome.
Это все! Теперь вы можете легко загрузить предпочитаемую песню, видео, программное обеспечение и т. Д. И проверить их в автономном режиме. Если у вас все еще есть вопрос, как добавить расширение IDM в Chrome на компьютере с Windows 10? Просто поместите вашу проблему в поле для комментариев ниже. Мы свяжемся с вами и ответим в течение нескольких часов.
Резюме : в этой статье мы покажем вам различные способы сброса значений автоинкремента столбцов AUTO_INCREMENT в MySQL.
MySQL предоставляет вам полезную функцию под названием автоинкремент . Вы можете присвоить атрибут AUTO_INCREMENT столбцу таблицы, чтобы создать уникальный идентификатор для новой строки. Как правило, вы используете атрибут AUTO_INCREMENT для столбца первичного ключа таблицы.
Всякий раз, когда вы вставляете новую строку в таблицу, MySQL с помощью атрибута AUTO_INCREMENT автоматически присваивает порядковый номер столбцу.
Например, если в таблице восемь строк, и вы вставляете новую строку без указания значения для столбца автоинкремента, MySQL автоматически вставит новую строку id со значением 9.
Иногда вам может понадобиться сбросить значение столбца автоинкремента, чтобы идентификатор первой записи, который вы вставляете в таблицу, начинался с определенного числа, например, 1.
В MySQL вы можете сбросить значения автоинкремента различными способами.
Примеры сбрасывания значения автоматического приращения в MySQL
Сначала создайте таблицу с именем tmp и присвойте атрибут AUTO_INCREMENT столбцу id первичного ключа.
CREATE TABLE tmp (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(45) DEFAULT NULL,
PRIMARY KEY (id)
);
Во-вторых, вставьте пример данных в таблицу tmp:
INSERT INTO tmp(name)
VALUES('test 1'),
('test 2'),
('test 3');
В- третьих, запрос к таблице tmp для проверки операции вставки:
SELECT
*
FROM
tmp;
У нас есть три строки со значениями столбца ID: 1, 2 и 3. Отлично! Пора попрактиковаться в сбросе значения автоинкремента столбца ID.
Использование инструкции ALTER TABLE
Вы можете сбросить значение автоинкремента с помощью оператора ALTER TABLE. Синтаксис оператора ALTER TABLE для сброса значения автоинкремента выглядит следующим образом:
ALTER TABLE table_name AUTO_INCREMENT = value;
Вы указываете имя таблицы после оператора ALTER TABLE и имя value, которое вы хотите сбросить в выражении AUTO_INCREMENT=value.
Обратите внимание, что значение value должно быть больше или равно текущему максимальному значению столбца автоинкремента.
Давайте удалим последнюю запись в таблице tmp с id значением 3:
DELETE FROM tmp
WHERE
ID = 3;
Если вы вставите новую строку, MySQL назначит 4 столбцу id новой строки. Однако вы можете сбросить число, сгенерированное MySQL, на 3, используя следующую инструкцию ALTER TABLE:
ALTER TABLE tmp AUTO_INCREMENT = 3;
Теперь давайте попробуем вставим новую строку в таблицу tmp и запросить данные из нее, чтобы увидеть эффект:
INSERT INTO tmp(name)
VALUES ('MySQL example 3');
SELECT
*
FROM
tmp;
У нас есть три строки с последним значением автоинкремента, равным 3 вместо 4, что мы и ожидали.
Использование оператора TRUNCATE TABLE
Оператор TRUNCATE TABLE удаляет все данные из таблицы и сбрасывает значение автоинкремента на ноль.
Используя оператор TRUNCATE TABLE, вы удаляете все данные из таблицы навсегда и сбрасываете значение автоинкремента на ноль.
Использование операторов DROP TABLE и CREATE TABLE
Вы можете использовать пару операторов: DROP TABLE и CREATE TABLE, чтобы сбросить столбец автоинкремента. Обратите внимание, что этот метод удаляет все данные из таблицы навсегда.
Как и оператор TRUNCATE TABLE, эти операторы удаляют таблицу и воссоздают ее, поэтому значение автоинкремента сбрасывается на ноль.
DROP TABLE table_name;
CREATE TABLE table_name(...);
В этой статье вы узнали, как различными способами сбросить значение автоинкремента в MySQL. Первый способ предпочтительнее, потому что он самый простой и не имеет побочных эффектов.
Сегодня в статье приведу пример по установке и настройке VPN сервера WireGuard для операционных систем Ubuntu и Debian. Также данная статья будет справедлива и для всех производных систем данного типа.
WireGuard – это современная высокопроизводительная VPN для Linux,Windows, MacOS. Главной функцией WireGuard является обеспечение безопасного соединения между сторонами через сетевой интерфейс, зашифрованный с помощью аутентификации по открытому ключу. Это означает, что, в отличие от большинства виртуальных частных сетей, WireGuard не применяет топологию, что позволяет создавать различные конфигурации путем изменения конфигураций окружающей сети. Эта модель предлагает большую производительность и гибкость.
Сейчас WireGuard готовится к включению в состав ядра Linux. Если быть точнее, то он появится в ядре версии 5.6, он даже получил похвалу от Линус Торвальдса и в американском сенате.
Специалисты проверили скорость работы WireGuard и выяснили, что он способен обойти большинство протоколов шифрования в том числе широко известный протокол OpenVPN.
Причина, которая объясняет высокую скорость работы WireGuard, это применение быстрого и современного алгоритма шифрования, благодаря которому скорость передачи данных очень высока.
Кроме того, данный протокол очень похож на https, что позволяет обманывать системы анализа трафика DPI, установленные у Вашего провайдера и обходить эти блокировки по сигнатурам.
Установка и настройка при помощи скрипта
Для облегчения установки и настройки можете воспользоваться готовым скриптом. Данный скрипт универсальный для большинства систем.
Давайте теперь настроим наш высокопроизводительный VPN на сервере wireguard. Для этого создадим файл конфигурации и необходимые ключи шифрования. Все действия выполняем из под root.
sudo su
(umask 077 && printf "[Interface]nPrivateKey = " | sudo tee /etc/wireguard/wg0.conf > /dev/null)
wg genkey | sudo tee -a /etc/wireguard/wg0.conf | wg pubkey | sudo tee /etc/wireguard/wg-server-publickey.key
Первая команда записывает исходное содержимое конфигурационного файла в /etc/wireguard/wg0.conf. Значение umask в суб-оболочке позволяет создать файл с ограниченными разрешениями, не затрагивая обычную среду.
Вторая команда генерирует закрытый ключ с помощью команды wg и записывает ее непосредственно в конфигурационный файл с ограниченным доступом. Затем ключ передается обратно команде wg pubkey, чтобы получить связанный с ним открытый ключ, который записывается в /etc/wireguard/wg-sever-publickey.key.
Следующим шагом нам необходимо включить форвардинг пакетов через наш сервер, для этого открываем следующий файл:
sudo nano /etc/sysctl.conf
И уберем знак комментария # со строки:
net.ipv4.ip_forward=1
Применим изменения
sudo sysctl -p
Далее отрываем файл на редактирования и вносим необходимую информацию о нашей VPN сети.
sudo nano /etc/wireguard/wg0.conf
Конфигурационный файл vpn wireguard
Внутри, в разделе [Interface], вы должны увидеть свой сгенерированный закрытый ключ. Этот раздел содержит конфигурацию для локальной стороны соединения.
В разделе Interface нужно также определить IP-адрес VPN, который будет использовать этот узел, и порт, который он будет прослушивать для соединений с одноранговыми узлами.
Давайте добавим в него следующие строки ListenPort, SaveConfig и Address:
ListenPort – указываем свободный порт который будет прослушивать наш сервис wg-quick (VPN WireGuard)
SaveConfig – имеет значение true, чтобы сервис wg-quick мог автоматически сохранять свою активную конфигурацию в этом файле при завершении работы.
Address – это наш IP-адрес и маска сети
PostUP и PostDown – запускают необходимые правило для iptables
Пробуем поднять нашу сеть скриптом wg-quick:
sudo wg-quick up /etc/wireguard/wg0.conf
В системах с systemd вместо этого можно использовать следующую запись:
sudo systemctl start wg-quick@wg0.service
Если systemd ругается, то сперва необходимо включить сервис следующей командой:
sudo systemctl enable wg-quick@wg0.service
Настройка VPN WireGuard на клиентской машине
В качестве клиента у меня будет выступать ноутбук с операционной системой Ubuntu Desktop 18.04 LTS
Все действия выполняем из под пользователя root.
sudo su
add-apt-repository ppa:wireguard/wireguard
apt install wireguard -y
Для Ubuntu 20.04 необходимо повторить тоже самое, что и при установке на серверную часть. (см. Выше)
Далее создаем конфигурационный файл и генерируем ключи:
(umask 077 && printf "[Interface]nPrivateKey = " | sudo tee /etc/wireguard/wg0.conf > /dev/null)
wg genkey | sudo tee -a /etc/wireguard/wg0.conf | wg pubkey | sudo tee /etc/wireguard/wg-server-publickey.key
Открываем наш конфигурационный файл и вносим изменения.
PublicKey – укажите значение открытого ключа сервера. Вы можете найти это значение, набрав на сервере команду: wg
AllowedIPs – указывает на пропуск трафика через VPN. В данном случае будет проходить через VPN только трафик сети 10.0.0.0/24. Весть остальной трафик пойдет через вашего провайдер. Для заворота всего трафика через VPN указываем значение 0.0.0.0/0
PersistentKeepalive – время в секундах для постоянной проверки доступности ресурса.
Запускаем сервис на Ubuntu:
sudo systemctl start wg-quick@wg0.service
Запускаем сервис на Debian:
sudo wg-quick up /etc/wireguard/wg0.conf
Peer на стороне сервера
На сервере также необходимо добавить информацию о клиенте. Иначе ваш туннель VPN не откроется. Для этого возвращаемся на сервер и останавливаем службу wireguard:
PublicKey – ключ клиента можно посмотреть на клиентской машине при помощи команды wg.
AllowedIPs – указывает на IP клиента. Обязательно с маской 32
Запускаем наш сервис:
sudo systemctl start wg-quick@wg0.service
Пробуем пропинговать клиента.
ping 10.0.0.2
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.916 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.545 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.647 ms
Со стороны клиента также должен проходить пинг до сервера.
ping 10.0.0.1
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=2.40 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.646 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.555 ms
Хотя статья получилась большой, но все настраивается очень быстро.
Тонкая настройка параметров WireGuard на примере Proxmox
Vim – это легендарный текстовый редактор, способный на многое, но недружелюбный к новичкам. VIM — текстовый редактор, который появился в 1991 году, но до сих пор пользуется огромной популярностью (наряду с Emacs). Как правило, на него переходят после других редакторов уже состоявшиеся разработчики. Нередко, переходят с полноценных IDE.
Минимальные основы VIM
На данный момент существует две версии редактора – vi и vim. Vim расшифровывается как Vi Improved, улучшенный vi. Это новая версия, которая принесла очень много улучшений. В большинстве современных дистрибутивов используется именно она. Поэтому если я буду писать vi, это значит, что я предполагаю использование vim.
Текстовый редактор Vim может работать в двух режимах. Это и есть его главная особенность. Первый режим, который используется по умолчанию при открытии редактора – это командный. В этом режиме вы можете вводить команды vi, а также использовать символьные клавиши для управления редактором. Второй режим – обычное редактирование текста, он работает так же как и редактирование текста в nano. Для переключения в командный режим используется клавиша Esc. Для переключения в режим редактирования – клавиша i. Если вас интересует только как в редакторе vi сохранить и выйти, листайте вниз, но если вы хотите узнать как пользоваться текстовым редактором vim, эта статья для вас.
Перед тем как идти дальше мы бы посоветовали вам пройти курс обучения встроенный в редакторе. Выполнение всех обучающих заданий займет 25-30 минут. Но после того как вы освоите все что там написано, эта статья поможет вам закрепить материал. Дело в том, что команд и сочетаний клавиш у vim очень много и запомнить их все без практики невозможно. Для запуска обучения наберите: $ vimtutor.
Синтаксис VIM
Начнем мы, как обычно с запуска программы, а также опций, которые ей можно передать. Синтаксис Vim очень прост:
$ vim опции имя_файла
Или:
$ vi опции имя_файла
Простой запуск vim без указания имени файла приведет к созданию пустого файла. А теперь давайте рассмотрим основные опции запуска:
+номер – переместить курсор к указной строке после запуска.
+/шаблон – выполнить поиск по шаблону и переместить курсор к первому вхождению
“+команда” – выполнить команду после запуска программы
-b – двоичный режим, для редактирования исполняемых файлов.
-d – режим поиска различий в файлах, нужно указать несколько файлов для открытия.
-g – графический режим.
-n – не использовать автосохранение для восстановления файла при сбое.
-R – режим только для чтения.
-w – сохранить все действия в файл.
-x – шифровать файл при записи.
-C – режим совместимости с Vi.
Выход из Vim
Выход без сохранения изменений:
:q!
Как запомнить: quit dammit! (закройся, чёрт возьми!)
Выход с сохранением изменений:
:wq
Как запомнить: write to disk and quit
Навигация в Vim
Для перемещения по открытому файлу используйте стрелки.
Перемещение на строку 285:
:285
Поиск слова «import»:
/import
Изменение текста в Vim
Вставка текста там, где стоит курсор:
i
Как запомнить: insert
Вставка текста в конце текущей строки:
A
Как запомнить: Append
Выход из режима редактирования (возврат в стандартный режим):
ESC
Выделение текста в Vim
Переход в визуальный режим:
v
Как запомнить: visual
Для выделения текста используйте стрелки.
Выход из визуального режима:
ESC
Копирование, удаление, вставка
Копирование выделенного текста в буфер:
y
Как запомнить: yank
Удаление выделенного текста:
d
Как запомнить: delete
Копирование текущей строки в буфер:
yy
Как запомнить: yank yank
Копирование трёх строк, включая текущую, в буфер:
3yy
Удаление текущей строки и помещение её в буфер:
dd
Как запомнить: delete delete
Удаление 5 строк, включая текущую:
5dd
Вставка из буфера перед текущей строкой:
P
Примечание: заглавная P
Вставка из буфера после текущей строки:
p
Отмена и восстановление последнего изменения в Vim
Отмена последнего изменения:
u
Как запомнить: uh-oh 🙂
Восстановление последнего отменённого изменения:
CTRL + R
Вывод изменений:
:undolist
Отмена двух последних изменений:
2u
Многоуровневое дерево отката изменений Vim очень мощное, подробнее о нём можно почитать в документации.
Работа с файлом в Vim
Открытие файла index.html вместо текущего:
:edit index.html
Сохранение текущего файла:
:w
Как запомнить: write to disk
Сохранение файла с изменённым именем, например, changes.txt:
:w changes.txt
Поиск и замена в Vim
Поиск и замена всех вхождений строки в файле:
:%s/typo/corrected/g
Поиск и замена с запросом подтверждения замены:
:%s/typo/corrected/gc
Как запомнить: confirm
Подсветка синтаксиса и отступы
Включение подсветки синтаксиса:
:syntax on
Включение автоматических отступов:
:set autoindent
Увеличение отступов нескольких строк при выделении их в визуальном режиме:
>
Вкладки в Vim
Открытие server.py в новой вкладке:
:tabe server.py
Как запомнить: tab edit
Переход на вкладку справа:
:tabn
Как запомнить: tab next
Переход на предыдущую вкладку слева:
:tabp
Как запомнить: tab previous
Для закрытия вкладки переключитесь на неё и используйте команду :q или :wq.
Разделённый экран в VIM
Открытие templates/base.html в режиме вертикального разделения экрана:
:vs templates/base.html
Как запомнить: vertical split
Открытие shared.js в режиме горизонтального разделения экрана:
:sp shared.js
Как запомнить: the ’default’ horizontal split
Перемещение между «частями» экрана:
CTRL + W + ARROW KEYS
Для закрытия экрана переключитесь на него и используйте команду :q или :wq.
Настройка Vim: файл .vimrc
Многие команды, используемые для изменения вида и поведения Vim, можно сделать включёнными по умолчанию, поместив их в .vimrc — файл конфигурации Vim, который расположен в домашнем каталоге.
Например, добавление этих строк в ~/.vimrc сделает подсветку синтаксиса и автоматическую корректировку отступов включёнными по умолчанию:
syntax on
set autoindent
Командный режим в VIM
В командном режиме вы можете перемещаться по редактируемому тексту и выполнять действия над ним с помощью буквенных клавиш. Именно этот режим открывается по умолчанию при старте редактора. Здесь вы будете использовать краткие команды, перед которыми может устанавливаться номер, чтобы повторить команду несколько раз. Для начинающих может быть поначалу очень запутанно то, что в командном режиме символы интерпретируются как команды.
Для перемещения используются такие команды:
h – на один символ влево;
l – на один символ вправо;
j – на одну строку вниз;
k – на одну строку вверх;
w – на слово вправо;
b – на слово влево;
H – перейти в низ экрана;
G – перейти в конец файла;
Можете запустить редактор и поэкспериментировать, чтобы было легче понять как это работает. Если перед тем как нажать кнопку буквы нажать цифру, то эта команда будет повторена несколько раз. Например, 3j переведет курсор на три строки вверх.
Для переключения в режим редактирования используются такие команды:
i – вставить текст с позиции курсора, символ под курсором будет заменен;
I – вставить текст в начало строки;
a – добавить текст начиная от позиции курсора;
o – вставить новую строку после этой и начать редактирование;
O – вставить новую строку перед этой и начать редактирование;
r – заменить текущий символ;
R – заменить несколько символов.
К этим командам тоже применимы символы повторения. Поэкспериментируйте, можно получить интересный и не совсем ожиданий результат.
Более сложны команды редактирования текста. Вы можете править текст не только в обычном режиме, но и в командном с помощью команд. Для этого применяются такие команды:
d – удалить символ;
dd – удалить всю строку;
D – удалить символы начиная от курсора и до конца строки;
y – копировать символ;
yy или Y – скопировать всю строку;
v – выделить текст;
Эти команды редактора vim работают немного по-другому после нажатия одной из них ничего не произойдет. Мы еще можем задать количество символов, к которым будет применена команда и направление, с помощью кнопок перемещения курсора. Например, чтобы удалить два символа справа от курсора нажмите d3l, а чтобы удалить три строки вниз – d3j. Команды yy, dd, Y – не что иное, как сокращения.
Кроме этих команд, есть еще несколько полезных, которые мы не можем не рассмотреть:
p – вставить после позиции курсора;
P – вставить перед позицией курсора;
u – отменить последнее действие;
. – повторить еще раз последнее действие;
U – отменить последнее действие в текущей строке;
/шаблон – искать вхождение;
%s/шаблон/заменить – заменить первое слово на второе;
n – продолжить поиск вперед;
N – продолжить поиск назад;
С основными командами разобрались. Но у нас есть еще командная строка Vim, которая сама по себе тоже представляет огромный интерес.
Командная строка VIM
Командная строка Vim запускается в командном режиме нажатием двоеточия – “:“. Здесь доступны команды для сохранения файла и выхода из редактора, настройки внешнего вида и взаимодействия с внешней оболочкой. Рассмотрим наиболее часто используемые команды редактора vim:
:w – сохранить файл;
:q – закрыть редактор;
:q! – закрыть редактор без сохранения;
:e файл – прочитать содержимое файла в позицию курсора;
:r файл – вставить в содержимое файла в следующую строку;
:r! – выполнить команду оболочки и вставить ответ в редактор;
:set переменная=значение – установить значение переменной, например, tabstop=4, или set number, с помощью этой команды можно управлять многими аспектами работы vim.
:buffers – посмотреть открытые файлы.
Со всеми основами разобрались, и вы теперь использование vim не будет казаться вам таким сложным. Но это еще далеко не все, этот мощный редактор может еще очень многое. Дальше мы рассмотрим несколько примеров использования vim, чтобы вам было легче справиться с новой программой.
Редактирование файла в VIM
Несмотря на то, что из всего вышесказанного можно понять как это делается рассмотрим еще раз. Чтобы открыть файл выполните:
vim имя_файла
Затем, если вы не хотите пока использовать возможности командного режима просто нажмите i, чтобы перейти в режим редактирования. Здесь вы можете редактировать файл так же, как и в nano. После того как завершите нажмите Esc, чтобы перейти в командный режим и наберите :wq. Записать и выйти. Все, готово.
Одновременное редактирование нескольких файлов
Чтобы открыть несколько файлов, просто передайте их в параметры при запуске программы:
vim файл1 файл2 файл3
Редактор vim linux откроет первый файл, для переключения ко второму используйте команду :n, чтобы вернутся назад :N.
С помощью команды :buffers вы можете посмотреть все открытые файлы, а командой :buffer 3 переключится на третий файл.
Буфер обмена VIM
Текстовый редактор Vim имеет свой буфер обмена. Например, вам нужно скопировать в четыре строки и вставить их в другое место программы, для этого выполните такую последовательность действий:
Нажмите Esc, чтобы перейти в командный режим;
Наберите 4yy чтобы скопировать четыре строки;
Переместите курсор в место где нужно вставить эти строки;
Нажмите p для вставки.
Также можно использовать выделение vim, чтобы скопировать строки. Выделите текст с помощью v, а затем нажмите y, чтобы скопировать.
Кирилица В VIM
Кириллица в Vim работает превосходно. Но есть одно но, когда включена кириллица в системе, все команды vim не работают, им и не нужно работать, они же не приспособлены для кириллицы.
Но переключать каждый раз раскладку, когда работаете в командном режиме тоже не очень удобно, поэтому открываем файл ~/.vimrc и добавляем туда такие строки:
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0
Теперь раскладка клавиатуры в командном режиме переключается по Ctrl+^ и все команды работают.
Когда не стоит учить вим
Если вас целиком устраивают обычные редакторы
При недостаточном владении слепой печатью
Вы не готовы возиться с конфигурацией, а хотите чтобы редактор просто работал
Отдельно стоит сказать, что не стоит учить вим одновременно с тем, что вы собираетесь делать внутри него. Когнитивная нагрузка при изучении вима настолько высокая, что у вас не будет оставаться никакой энергии на изучение нового языка, фреймворка или, даже, программирования в целом. На вим имеет смысл смотреть тогда, когда вы уже спокойно работаете и хотите новых острых ощущений.
Другой важный аспект — готовность принять идеологию вима. Нередко происходит ситуация, когда программист садится за вим и при этом не начинает пользоваться вимом. Он продолжает использовать стрелки и практически не выходит в командный режим. Такой способ обучения виму самый опасный. Как только произойдет привыкание, переучить себя будет неимоверно сложно. Немалое число людей, считающих себя вимерами, не используют вим и в действительности работают крайне неэффективно.
Обучение виму — процесс сложный морально. Дело в том, что опыт сам по себе не делает вас лучше в чем-то. Научившись как-нибудь набирать текст, человек и через много лет будет делать это как-нибудь (не по скорости, а по эффективности работы с ним). То же самое касается использования редакторов.
Для повышения своей эффективности необходимо постоянно наблюдать за своими действиями, отслеживать те, что занимают слишком времени, читать статьи и книги в поисках новых способов решения старых проблем. Такой подход, конечно же, важен не только при работе с вимом и даже не только в программировании, но именно в виме по-другому успеха достичь невозможно. Во время обучения нельзя себе давать слабину и действовать из принципа «сейчас сделаю хоть как-нибудь, а потом разберусь». Незаметно для вас сформируются неправильные привычки и дальнейший рост остановится. Если вы к этому не готовы, то изучение стоит отложить.
Сколько понадобится времени
Если следовать советам выше и постоянно правильно практиковать вим, то время от «любое действие занимает минуту» до «могу неспешно работать периодически подсматривая в документацию» займет около месяца. Дальше процесс пойдет легче, но останавливаться в развитии на этом этапе нельзя. Оттачивание всех необходимых навыков может занять и год. Но не стоит пугаться. В любом случае через месяц-два вы сможете вполне сносно работать.
Процесс обучения
Поставьте nvim и vim (с поддержкой python3).
Не все шаги, описанные ниже, нужно выполнять последовательно. То что можно делать параллельно, стоит делать параллельно. В любом случае перед тем, как решиться распробовать вим, стоит пройти официальный vimtutor который идет в поставке с самим вимом. Он проведет вас через все базовые команды и даст представление о том, как все работает. Откройте терминал и наберите vimtutor, при необходимости установив vim. После него можно браться за интерактивные учебники, описанные в полезных ссылках ниже. Делать это стоит одновременно с практикой работы с настоящим вимом.
Научитесь использовать возможности вашего терминала — сплиты/табы используя горячие клавиши.
Измените маппинги клавиш как описано выше.
Дальше есть два пути. Либо брать и с нуля настраивать свой собственный .vimrc (конфиг), что невероятно сложно и затратно на первых порах, либо, что лучше, взять готовую сборку и сосредоточиться на владении самим вимом. А затем, постепенно разбираться с тем как все устроено внутри и по необходимости делать собственную сборку. Я рекомендую использовать свою сборку. Она вобрала в себя лучше практики и практически не содержит самописного кода. К тому же, внутри неё используются самые современные плагины. Внимательно изучите Makefile и выполните все необходимые команды. В процессе работы постоянно смотрите в файл vimrc и изучайте его содержимое вместе с установленными плагинами. Все плагины хостятся на гитхабе вместе с их документацией.
Научитесь работать с пакетным менеджером plug. С него начинается вход в vim.
Изучение самого вима включает два аспекта. Первый, работа внутри буфера. К нему, как раз, относится та самая навигация и владение базовыми командами по модификации и перемещению. Второе, навигация по проекту и управление файловой структурой. Управление файловой структурой (создание, переименование и удаление) производятся плагином NERDTree, а для навигации существует три основных и несколько дополнительных способов. Основные: нечеткий поиск (fzf), переключение между буферами (bufexplorer) и перемещение по файловому дереву (NERDTree). Все они важны и используются постоянно. Несмотря на то, что вим поддерживает табы, вимеры редко ими пользуются, но даже если и пользуются, то не для тех целей, для которых табы используются в обычных редакторах. К дополнительным способам навигации относятся прыжки по последним модификациям (вим их запоминает и позволяет ходить вперед назад), а так же комбинация gf, означающая “go to file”.
Изучите набор плагинов подходящих под ваш стек и установите его. В интернете много статей для настройки практически любого стека разработки. Единственная рекомендация, смотрите плагины основанные на lsp.
Анализ сетевого трафика всегда был неотъемлемой частью работы любого сетевого инженера, администратора сети для выявления проблем работоспособности и конфигурации активного оборудования, а также специалистов по информационной безопасности для выявления аномальной сетевой активности вредоносного программного обеспечения.
Анализ перехваченных пакетов безусловно требует от специалиста наличие глубоких знаний в области сетевых технологий, а также навыков работы с программным обеспечением анализаторов пакетов, таким например, как всем известный wireshark, так как необходимо знать синтаксис фильтров, уметь быстро находить интересующие протоколы и т.д.
Но гораздо сложнее это трафик перехватить, точнее установить оборудование для его перехвата.
Так как же перехватить трафик?
Как расположить и настроить оборудование для прослушивания ?
Предлагаю рассмотреть варианты расположения (подключения) оборудования для снифа в коммутируемой среде (перехват wi-fi канала рассмотрим в следующей статье).
Самым удобным способ является установка сниффера непосредственно на интересующем нас прослушиваемом хосте.
Однако часть трафика, весьма полезная для исследования, но не предназначенное конечному устройсву будет отбрасыватся сетевым интерфейсом и не передаваться на обработку в систему, а значит и захватить этот трафик для дальнейшего исследования мы не сможем. К такому трафику относятся широковащательный трафик в рамках работы коммутатора.
К примеру ARP запрос, который используют хосты для определения MAC-адреса, который соответствует определенному IP-адресу.
Зная IP, направляем ARP запрос с целью сопоставления IP-MAC всем устройствам внутри широковещательного домена.
Однако только искомый хост “заинтересован” в получении такого запроса, остальные хосты, как упомяналось выше, указанный пакет отбросят.
Для наглядности, с помощью Cisco Packet racer, рассмотрим как хост с IP-адрессом 192.168.1.2 направляет ARP запрос на хост 192.168.1.4.
Предварительно проверив, что ARP записей на 192.168.1.2 нет от слова совсем командой arp -a (удалить их можно с помощью arp -d) выолняем команду ping на 192.168.1.4.
Так как мы не знаем MAC адрес, то первончально направляем ARP запрос. Запрос приходит на коммутатор (cisco 2960), далее он направляется на все хосты, подключенные к коммутатору. После этого хост 192.168.1.3 отбрасывает указанный, а 192.168.1.4 соответственно отвечает.
Для того, чтобы захватывать весь поступающий траффик на 192.168.1.3 необходимо на сетевом интерфейсе включить смешанный режим раюоты. Это позволяют сделать программные компоненты Aircrack-ng, Wireshark, tcp dump идр.
Когда нет возможности разместить анализатор трафика на целевом хосте помочь может концентратор.
В таком случае исследуемый хост и анализатор трафика в одном коммутируемом сегменте сети подключаются к одному концентратору.
В результате все поступающие и исходящие пакеты будут проходить по всем портам концентратора.
Так например, отправив пакеты с Host1 на Host2, концентратор Hub0 направит их как на исследуемый Host2, так и на анализатор пакетов Sniffer.
Отброс пакетов Sniffer’ом на картинке, обусловлен отключенным смешанным режимом работы сетевого адаптера.
Самым популярным способом перехвата трафика остается метод зеркалирование портов.
Для реализации этого метода необходимо чтобы коммутатор был управляемым, а также иметь физический или через удаленный ssh/Web-интерфейс доступ к нему.
Смысл заключается в том, чтобы принимаемый и отправляемый трафик устройства подключённого к порту коммутатора – зеркально направлялся на другой порт коммутатора, куда подключен анализатор трафика.
Так, подключившись, настроим коммутатор Сisco 2960 для зеркалирования трафика на портах fastEthernet 0/1 и fastEthernet 0/2 куда подключены host1 и host2 соответсвенно:
Итак направим пакеты от Host1 (192.168.1.1) на Host2( 192.168.1.2) и видим, что они зеркалируются коммутатором наш снифер:
Открываем перехваченный ICMP пакет на снифере:
Указанные методы не лишены недостатков, а другие методы перехвата сетевого трафика – такие как заражение ARP-кэша и применение сетевых ответвителей рассмотрим в следующих статьях.
¯_(ツ)_/¯
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.