- Как выполнять Linux-команды внутри Windows: официальный и сторонние способы
- Содержание
- WSL — официальная подсистема Linux внутри Windows
- CoreUtils — лёгкий инструмент для запуска базовых команд
- Cygwin — запуск команд и Bash-скриптов
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- WSL (подсистема Windows для Linux): подсказки, инструкции, решения проблем
- Оглавление
- I. Управление дистрибутивами Linux
- Как включить WSL2 (подсистему Windows для Linux второй версии) и установить последнюю версию ядра
- Характеристика дистрибутивов Linux в WSL
- Как установить дистрибутив Linux в WSL
- Как просмотреть список установленных дистрибутивов Linux в WSL
- Как пользоваться Linux в WSL
- Как в WSL сбросить Linux до начального состояния
- Как удалить дистрибутив Linux в WSL
- Как узнать, какие дистрибутивы запущены
- Как выключить все дистрибутивы
- Как перезагрузить или выключить отдельный дистрибутив
- Как в Linux открыть файл Windows
- Как смонтировать съёмные диски в подсистеме Windows для Linux
- Как смонтировать сетевые папки
- Лёгкий доступ к файлам в подсистеме Windows для Linux (WSL)
- Подсказки по использованию дистрибутивов на основе Debian
- Подсказки по использованию дистрибутивов на основе openSUSE
- Подсказки по использованию дистрибутивов на основе Fedora
- II. Установка и использование программ, свойства и настройка системы
- Double Commander (бесплатный аналог Total Commander) в Linux (WSL)
- Как запустить веб-сервер в Linux на WSL
- Как получить доступ к службам Linux в WSL (какой IP у Linux)
- Как получить доступ к службам Windows из Linux на WSL
- Как установить аналог Диспетчера задач в Linux на WSL
- Как посмотреть открытые порты в Linux на WSL
- Как запустить СУБД MySQL в Linux на WSL
- Поддерживает ли Linux в WSL графический пользовательский интерфейс
- III. Решение проблем в WSL
- Ошибка «WslRegisterDistribution failed with error: 0x80370102»
- Ошибка «Address already in use … make_sock: could not bind to address»
- Почему Linux в WSL не видит Wi-Fi адаптеры
- Может ли Linux в WSL использовать видеокарты для выполнения вычислений
- Ошибка в WSL (Kali Linux, Ubuntu) «sleep: cannot read realtime clock: Invalid argument»
- Ошибка «unable to connect to socket: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. (10061)»
- Ошибка «E: Release file for http://http.kali.org/kali/dists/kali-rolling/InRelease is not valid yet (invalid for another 2h 43min 57s). Updates for this repository will not be applied»
Как выполнять Linux-команды внутри Windows: официальный и сторонние способы
Под GNU/Linux-дистрибутивы создано огромное количество полезных и удобных инструментов и приложений для обычных пользователей и разработчиков. Далеко не всё из этого доступно на Windows, но, к счастью, для ОС от Microsoft есть решения, исправляющие эту проблему.
Содержание
WSL — официальная подсистема Linux внутри Windows
В Windows 10 существует крайне полезная вещь под названием Windows Subsystem for Linux (WSL). Она позволяет использовать GNU/Linux-среду прямо в Windows и запускать не только команды, но и, например, Bash-скрипты. Для использования WSL необходимо следовать инструкции ниже.
Шаг 1. Проверьте, подходит ли текущая версия Windows требованиям. Для этого нажмите сочетание клавиш Win+R, затем введите winver. Найдите строку «Сборка ОС» — она должна быть свежее версии 14316.
Шаг 2. Запустите стандартную утилиту PowerShell от имени администратора и введите в ней команду для включения WSL:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Шаг 3. Если версия Windows, определённая в первом пункте, свежее 18362, вы можете установить WSL 2, который в разы быстрее первой версии и обладает доработанным ядром. Введите команду ниже, если нужно установить WSL 2:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
После этого скачайте и установите пакет обновления с официального сайта.
Шаг 4. Перезагрузите компьютер. Если была произведена установка WSL 2, введите в PowerShell от имени администратора следующую команду:
Шаг 5. После перезагрузки откройте фирменный магазин приложений Microsoft Store и найдите подходящий GNU/Linux-дистрибутив. Самым популярным является Ubuntu — вы можете установить любую версию из представленных в Microsoft Store.
Шаг 6. Как только установка завершится, найдите дистрибутив в меню «Пуск» и запустите его.
Шаг 7. Пройдите этап первоначальной настройки, введя имя нового пользователя и придумав пароль.
Шаг 8. Теперь различные GNU/Linux-команды можно выполнять, запустив дистрибутив, либо введя в командной строке wsl . Например, для просмотра всех файлов в текущей директории достаточно в командной строке выполнить wsl ls -a.
Обращу внимание на то, что путь к дискам в WSL отличается от такового в Windows. Вместо привычного C:/ используйте /mnt/c/. Также не забывайте про экранирование пробелов с помощью символа \ — это также пригодится при вводе путей к файлам.
Помимо выполнения базовых команд, с помощью WSL можно даже запускать приложения с графическим интерфейсом. Правда, рассчитывать на большое количество поддерживаемых подобных программ не стоит.
Шаг 1. Загрузите X-сервер и установите его.
Шаг 2. Запустите его с помощью ярлыка на рабочем столе. В открывшемся окне выберите вариант Multiple windows, затем Start no client. Завершите настройку кнопкой Finish.
Шаг 3. Откройте дистрибутив через меню Пуск и выполните команду export DISPLAY=:0
Шаг 4. Запустив приложение с графическим интерфейсом в WSL, вы увидите новое окно прямо в Windows.
CoreUtils — лёгкий инструмент для запуска базовых команд
Плюс данной утилиты — возможность запуска не только на Windows 10, но и на более старых версиях ОС. Кроме того, она легка и не занимает много места. Не обошлось без недостатков — программа скудна на функционал и не обновлялась очень давно. Она не только не умеет запускать скрипты и приложения с GUI, но и поддерживает лишь самые базовые GNU/Linux-команды. Установка CoreUtils весьма проста.
Шаг 1. Скачайте утилиту с официального сайта.
Шаг 2. Следуйте инструкциям установщика.
Шаг 3. Откройте «Панель управления», в разделе «Система и безопасность» выберите пункт «Система». На панели слева откройте «Дополнительные параметры системы». Нажмите кнопку «Переменные среды» и в открывшемся окне найдите область с заголовком «Системные переменные». В случае, когда там есть переменная Path, выберите её, нажмите «Изменить» и далее создайте новую строку. Содержимым этой строки должен быть путь к папке, который был указан при установке. Если вы ничего не меняли, то введите следующее:
Переменной Path нет? Тогда для начала создайте её кнопкой «Создать», затем в поле имени введите Path, а в поле значения — строку выше.
Шаг 4. Запустите командную строку и выполняйте команды прямо там.
Cygwin — запуск команд и Bash-скриптов
Ещё одна утилита, схожая с CoreUtils, но обладающая более широким функционалом — в том числе и возможностью запуска скриптов. Из минусов — немалый вес и более сложная установка. Разумеется, не идёт ни в какое сравнение с максимально удобным WSL, но для базовых команд вполне подойдёт.
Шаг 1. Загрузите Cygwin и запустите установку.
Шаг 2. Выберите Install from Internet, укажите директории для установки и загрузки пакетов, а также любой подходящий сайт из списка для скачивания файлов.
Шаг 3. В процессе установки можете выбрать необходимые пакеты, либо сразу нажать «Далее», оставив базовый набор.
Шаг 4. Откройте «Панель управления», в разделе «Система и безопасность» выберите пункт «Система». На панели слева откройте «Дополнительные параметры системы». Нажмите кнопку «Переменные среды» и в открывшемся окне найдите область с заголовком «Системные переменные». В случае, когда там есть переменная Path, выберите её, нажмите «Изменить» и далее создайте новую строку. Содержимым этой строки должен быть путь к папке, который был указан при установке. Если вы ничего не меняли, то введите следующее:
Переменной Path нет? Тогда для начала создайте её кнопкой «Создать», затем в поле имени введите Path, а в поле значения — строку выше.
Шаг 5. Команды можно выполнять как через командную строку, так и через специальный терминал.
Шаг 6. Для удаления Cygwin достаточно удалить папку, в которую программа была установлена, а также (по желанию) значение из переменной Path по методу, обратному тому, что был описан в 4 шаге (не удаляйте саму переменную).
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
WSL (подсистема Windows для Linux): подсказки, инструкции, решения проблем
Оглавление
I. Управление дистрибутивами Linux
II. Установка и использование программ, свойства и настройка системы
III. Решение проблем в WSL
На HackWare.ru готовится серия статей по использованию Kali Linux в подсистеме Windows для Linux (WSL). На мой взгляд, эти инструкции очень интересные для начинающих пользователей WSL и начинающих пользователей Kali Linux. В этих инструкциях не просто освоение терминала и базовых команд, а примеры использования лучших инструментов прямо в Windows без необходимости установки ещё одной операционной системы или Python, Ruby, Perl и прочего.
Технология WSL позволяет получить быстрый доступ к большому количеству инструментов Linux потратив минимальное количество времени на настройку рабочего окружения.
Тем не менее, чтобы эффективно использовать инструменты Linux и Kali Linux, нужно быть с ними знакомым и знать синтаксис их запуска (об этом в следующей части). Но не менее важно уверенно себя чувствовать с Linux в WSL — именно этому и посвящён данный раздел. Здесь приведены пошаговые инструкции использования WSL, даны советы и подсказки по выполнению базовых действий, описаны решения некоторых проблем.
Данные список подсказок будет пополняться. Если у вас есть вопрос по WSL, то спрашивайте его в комментариях.
I. Управление дистрибутивами Linux
Как включить WSL2 (подсистему Windows для Linux второй версии) и установить последнюю версию ядра
Microsoft работала с Canonical, чтобы предложить полную среду оболочки Bash на основе Ubuntu, которая работает поверх этой подсистемы, а в настоящее время теперь можно запускать полноценные дистрибутивы Linux. Технически это вообще не Linux. Linux — это базовое ядро операционной системы, которое здесь недоступно. Вместо этого она позволяет запускать оболочку Bash и те же двоичные файлы, которые вы обычно запускаете в Ubuntu Linux. Сторонники свободного программного обеспечения часто утверждают, что среднюю операционную систему Linux следует называть «GNU/Linux», потому что на самом деле на ядре Linux работает множество программ GNU. Оболочка Bash, которую вы получите, на самом деле представляет собой все эти утилиты GNU и другое программное обеспечение.
Эта функция изначально называлась «Bash в Ubuntu в Windows», но она также позволяла запускать Zsh и другие оболочки командной строки. Теперь же она поддерживает и другие дистрибутивы Linux. Вы можете выбрать openSUSE Leap или SUSE Enterprise Server, Fedora или Kali Linux вместо Ubuntu.
Здесь есть некоторые ограничения. Она пока не поддерживает фоновое серверное программное обеспечение и официально не работает с графическими настольными приложениями Linux. Не все приложения командной строки также работают, поскольку функция не идеальна.
По умолчанию WSL2 отключена в Windows. Чтобы её включить можно воспользоваться графическим интерфейсом или командной строкой. Чтобы включить WSL2 в командной строке, нажмите Win+x и в открывшемся меню выберите «Windows PowerShell (администратор)»:
Важно открыть PowerShell с повышенными правами.
Выполните в нём:
Дождитесь окончания загрузки и выполнения.
Перезагрузите компьютер, для этого нажмите Enter.
Теперь опять откройте PowerShell от администратора и выполните:
Вновь перезагрузите компьютер.
Скачайте и установите последнее ядро WSL2 Linux Kernel отсюда: https://aka.ms/wsl2kernel (прямая ссылка).
Опять откройте PowerShell как администратор и выполните:
Если у вас уже установлен дистрибутив (например, Kali Linux) в WSL1, то для обновления выполните команду:
Характеристика дистрибутивов Linux в WSL
Debian
Debian — популярен как дистрибутив, например, для серверов, так и как основа для других дистрибутивов. Например, на Debian основываются Ubuntu, Kali Linux, Linux Mint (есть версия LMDE, которая основывается непосредственно на Debian, а также «классическая» версия, которая основывается на Ubuntu, которая, в свою очередь, также основывается на Debian).
То есть Debian и производные очень популярна.
Вы сможете использовать полную среду командной строки Debian, содержащую среду полной текущей стабильной версии.
Kali Linux
Kali Linux — это популярнейший дистрибутив для специалистов в информационной безопасности, цифровой криминалистике, хакеров и продвинутых пользователей. Вы можете установить и использовать в родной среде Linux множество специализированных инструментов. Для Kali Linux разработано ПО для упрощённого запуска графического интерфейса (смотрите статью «Как установить Kali Linux с Win-KeX (графический интерфейс) в WSL2 (подсистему Windows для Linux)», а также для инструкций на HackWare.ru взят именно этот дистрибутив, поэтому для него вы найдёте много детаьлных инструкций. По этой причине рекомендуется Kali Linux.
SUSE Linux Enterprise Server
SUSE Linux Enterprise Server — это мультимодальная операционная система, которая открывает путь к трансформации ИТ в эпоху программного обеспечения. Современная модульная ОС помогает упростить мультимодальные ИТ, делает традиционную ИТ-инфраструктуру эффективной и обеспечивает привлекательную платформу для разработчиков. В результате вы можете легко развертывать и переносить критически важные для бизнеса рабочие нагрузки в локальную и общедоступную облачные среды. SUSE Linux Enterprise Server 15 SP1 с его мультимодальным дизайном помогает организациям трансформировать свой ИТ-ландшафт за счет объединения традиционной и программно определяемой инфраструктуры.
Ubuntu
В WSL у дистрибутива Ubuntu также отсутствует графический интерфейс (как по умолчанию у всех других дистрибутивов), поэтому её нельзя назвать более «дружественной» к пользователю. Основана на Debian.
Fedora
Обещают добавить, но пока отсутствует.
Как установить дистрибутив Linux в WSL
После того, как вы включили WSL2, как это показано в предыдущем разделе, откройте Microsoft Store из меню «Пуск».
И выполните поиск «Linux» в магазине. Выберите Debian или другой дистрибутив Linux из приложения Store.
Вы увидите список всех дистрибутивов Linux, доступных в настоящее время в Магазине Windows. Сюда входят Debian, Kali Linux, Ubuntu, openSUSE Leap и openSUSE Enterprise с обещанием скорого появления Fedora.
Чтобы установить дистрибутив Linux, щёлкните его, а затем нажмите кнопку «Получить» или «Установить», чтобы установить его, как любое другое приложение Store.
Если вы не знаете, какую среду Linux установить, мы рекомендуем Debian. Этот популярный дистрибутив Linux, которые может применяться для самых разных целей. Или выберите другую систему Linux если у вас более специфические потребности.
Вы также можете установить несколько дистрибутивов Linux, каждый из которых получит свои уникальные ярлыки. Вы даже можете запускать несколько разных дистрибутивов Linux одновременно в разных окнах.
Как просмотреть список установленных дистрибутивов Linux в WSL
Чтобы вывести список всех дистрибутивов, используйте следующую команду:
Опция —all нужна для того, чтобы в список попали все дистрибутивы, в том числе те, которые сейчас устанавливаются или удаляются.
Точно такой же список можно получить с помощью команды:
Вы можете увидеть пометку «по умолчанию» она указывает на дистрибутив, который будет запущен, если в командной строке Windows вы выполните команду:
Если вам не нужно, чтобы выводилась информация о том, какая из систем является выбранной по умолчанию (то есть запускается при выполнении в командной строке bash), то используйте следующую команду:
Есть два способа вывести список дистрибутивов Linux, которые в данный момент работают.
Первый способ выводит все Linux в WSL и помечает запущенные в настоящий момент:
Значение «Running» в поле «STATE» означает, что данный дистрибутив запущен.
А вторая команда показывает только запущенные, не выводя неактивные вовсе:
Как пользоваться Linux в WSL
Чтобы открыть установленную вами среду Linux, просто откройте меню «Пуск» и найдите установленный вами дистрибутив. Например, если вы установили Kali Linux, запустите ярлык Kali Linux.
Вы можете закрепить этот ярлык приложения в меню «Пуск», на панели задач или на рабочем столе для облегчения доступа.
При первом запуске среды Linux вам будет предложено ввести имя пользователя и пароль UNIX. Они необязательно должны совпадать с вашим именем пользователя и паролем Windows, но будут использоваться в среде Linux.
Например, если вы введёте «alex» и «hackware» в качестве учётных данных, ваше имя пользователя в среде Linux будет «alex», а пароль, который вы используете в среде Linux, будет «hackware» — независимо от вашего имени пользователя Windows и его пароля.
Вы можете запустить установленную среду Linux, выполнив команду wsl. Если у вас установлено несколько дистрибутивов Linux, вы можете выбрать среду Linux по умолчанию, запускаемую этой командой.
Если у вас установлена Kali Linux, вы также можете запустить команду kali, чтобы установить её. Для openSUSE Leap 15 SP1 используйте opensuse-15-sp1. Для SUSE Linux Enterprise Server 15 SP1 используйте SLES-15-SP1. Эти команды перечислены на странице каждого дистрибутива Linux в Магазине Windows.
Вы по-прежнему можете запустить среду Linux по умолчанию, выполнив команду bash, но Microsoft утверждает, что это устарело. Это означает, что команда bash может перестать работать в будущем.
Если у вас есть опыт использования оболочки Bash в Linux, Mac OS X или других платформах, вы будете как дома.
В Kali Linux и Ubuntu вам нужно добавить к команде префикс sudo, чтобы запустить её с правами root. Пользователь «root» на платформах UNIX имеет полный доступ к системе, как пользователь «Администратор» в Windows. Ваша файловая система Windows в среде оболочки Bash находится в /mnt/c.
Ещё одна важная особенность дистрибутивов Linux, запущенных этим образом, в том, что прямо в консоли Linux вы можете выполнять команды Windows.
Связанная статья: Что такое sudo
Используйте те же команды терминала Linux, которые вы используете в этой операционной системе. Если вы привыкли к стандартной командной строке Windows с её командами DOS, вот несколько основных команд, общих для Bash и Windows:
- Изменить каталог: cd в Bash, cd или chdir в DOS
- Список содержимого каталога: ls в Bash, dir в DOS
- Перемещение или переименование файла: mv в Bash, move и rename в DOS
- Скопировать файл: cp в Bash, copy в DOS
- Удалить файл: rm в Bash, del или erase в DOS
- Создайте каталог: mkdir в Bash, mkdir в DOS
- Используйте текстовый редактор: vi или nano в Bash, edit в DOS
Связанная статья: Азы работы в командной строке Linux (часть 1), а также последующе части
Важно помнить, что, в отличие от Windows, оболочка Bash и её среда, имитирующая Linux, чувствительны к регистру. Другими словами, «File.txt» с большой буквы отличается от «file.txt» без заглавной буквы.
Дополнительные инструкции смотрите в серии наших руководств Азы работы в командной строке Linux для начинающих.
Вам нужно будет использовать команду apt для установки и обновления программного обеспечения среды Debian, Kali Linux, Ubuntu. Не забудьте указать перед этими командами префикс sudo, чтобы они запускались от имени пользователя root — Linux-эквивалента Администратора. Вот команды apt, которые вам нужно знать:
Загрузить обновлённую информацию о доступных пакетах:
Установить пакет приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):
Удаление пакета приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):
Поиск доступных пакетов (замените СЛОВО словом, по которому нужно искать пакеты в именах и описаниях):
Загрузите и установите последние версии установленных пакетов:
Если вы установили дистрибутив SUSE Linux, вместо этого вы можете использовать команду zypper для установки программного обеспечения.
После того, как вы загрузили и установили приложение, вы можете ввести его имя в запросе, а затем нажать Enter, чтобы запустить его. Дополнительную информацию смотрите в документации к конкретному приложению.
Программное обеспечение, устанавливаемое в оболочке Bash, ограничено оболочкой Bash. Вы можете получить доступ к этим программам из командной строки, PowerShell или где-либо ещё в Windows, но только если вы запустите команду вида
Как в WSL сбросить Linux до начального состояния
Чтобы сбросить дистрибутив до начального состояния, нужно знать его название — это название не всегда соответствует команде, которой он запускается.
Чтобы посмотреть название дистрибутива для использования в команде, выполните:
Для сброса дистрибутива до исходного состояния (будут удалены все настройки и все сохранённые файлы), выполните команду вида:
Как удалить дистрибутив Linux в WSL
Чтобы удалить дистрибутив Linux, нужно знать его название — это название не всегда соответствует команде, которой он запускается.
Чтобы посмотреть название дистрибутива для использования в команде, выполните:
Для полного удаления дистрибутива и освобождения места на диске выполните команду вида:
Как узнать, какие дистрибутивы запущены
Посмотреть запущенные дистрибутивы можно двумя командами.
Первый способ выводит все Linux в WSL и помечает запущенные в настоящий момент:
Значение «Running» в поле «STATE» означает, что данный дистрибутив запущен.
А вторая команда показывает только запущенные, не выводя неактивные вовсе:
Как выключить все дистрибутивы
Раньше для выхода из Linux, запущенного с помощью WSL (подсистема Windows для Linux), достаточно было закрыть терминал. В последних версиях при выходе из консоли Linux (например, если нажать Ctrl+d или закрыть терминал), то дистрибутив Linux продолжит работу в фоне.
Чтобы выключить сразу все запущенные Linux выполните команду:
Как перезагрузить или выключить отдельный дистрибутив
Вы можете остановить не все системы, а определённые, для этого используйте команду вида:
Например, я хочу выключить Kali Linux – имя этого дистрибутива для управления kali-linux, тогда команда следующая:
Обратите внимание, что имя дистрибутива не совпадает с командой запуска. Например, для Kali Linux команда запуска kali, а имя дистрибутива — kali-linux. Приведённые выше команды (wsl —list -v) показывают имя дистрибутива, которое вы можете использовать для его выключения.
Как в Linux открыть файл Windows
Все диски компьютера смонтированы в папке /mnt/. Например, диск C:/ смонтирован по пути /mnt/c
Чтобы посмотреть содержимое диска C:/ выполните команду:
Отсюда вы можете получить доступ к любому файлу пользователей или системы.
К примеру, я хочу просмотреть содержимое файла с именем 123.reg, который расположен в папке C:\Users\MiAl\Documents\, то есть в Windows путь до этого файла C:\Users\MiAl\Documents\123.reg. Тогда в Linux этот файл будет доступен по пути /mnt/c/Users/MiAl/Documents/123.reg:
Обратите внимание, что в Linux:
- используются слэши, а не обратные слэши, как в Windows
- регистр букв имеет значение. То есть file.txt и File.txt это совершенно разные вещи.
Если вы используете графический интерфейс в Linux (как его установить и запустить в Kali Linux рассказано в этой статье), то вы можете установить Double Commander (о нём рассказано ниже) и с удобством перемещать и копировать файлы между двумя системами:
Как смонтировать съёмные диски в подсистеме Windows для Linux
Подсистема Windows для Linux автоматически монтирует постоянные диски с файловой системой NTFS в дистрибутив Linux. То есть, если у вас есть внутренний диск C: и диск D:, то в среде Linux вы увидите их в /mnt/c и /mnt/d.
DrvFs теперь позволяет монтировать внешние диски, такие как USB-накопители, компакт-диски и DVD-диски. Эти устройства должны использовать файловую систему Windows, такую как NTFS, ReFS или FAT. Вы по-прежнему не можете подключать устройства, отформатированные в файловой системе Linux, например ext3 или ext4.
Как и внутренние диски, эти внешние диски останутся доступными в Windows после их подключения в среде Linux. А после их монтирования, как показано в этой статье, они станут одновременно доступными в Windows и Linux.
Допустим, у вас есть внешний носитель M: это либо USB-накопитель, либо оптический дисковод. Чтобы смонтировать его, вы должны выполнить следующие команды:
Конечно, вам необязательно монтировать диск в /mnt/m. Вы можете смонтировать его куда угодно. Просто замените оба экземпляра строки /mnt/m в приведённых командах на желаемый путь.
Посмотрим из Linux содержимое USB диска, который мы только что смонтировали:
Чтобы позже отключить диск и безопасно удалить его, выполните стандартную команду umount:
При работе с внешним устройством, отформатированным в файловой системе FAT или любой сетевой файловой системе, существуют некоторые ограничения. В файловой системе не учитывается регистр, и вы не можете создавать на ней символьные или жёсткие ссылки.
Как смонтировать сетевые папки
Вы также можете монтировать сетевые местоположения (папки, шары). Любое сетевое расположение, доступное из Windows, можно смонтировать из оболочки Linux.
Дополнительный материал: Руководство по SMB и Samba
Сетевые локации можно смонтировать одним из двух способов. Если вы сопоставите сетевой диск с буквой диска, вы можете подключить его, используя те же параметры, что и выше. Это даст вам возможность легко войти в общий сетевой ресурс и ввести свои учётные данные в проводнике. Например, если ваш сетевой диск подключён с буквой F:, вы можете запустить следующие команды, чтобы подключить его:
Вы также можете указать диск, используя его путь UNC (Universal Naming Convention). Например, если путь к общему сетевому ресурсу — \\СЕРВЕР\ПАПКА, вы должны выполнить следующую команду. Опять же, используйте любую точку монтирования вместо /mnt/ПАПКА.
Подсистема Windows для среды Linux не предоставляет никакого способа указать учётные данные, которые вы хотите использовать. Вы можете указать учётные данные, перейдя к папке в проводнике Windows, введя их через диспетчер учётных данных или используя команду net use.
Команду net use можно запустить из среды Linux, поскольку подсистема Windows для Linux позволяет запускать программное обеспечение Windows из командной строки Linux. Просто запустите команду так:
Например, следующая команда подключится к \\СЕРВЕР\ПАПКА с именем пользователя Bob и паролем LetMeIn и назначит ему букву диска F:. Вот команда, которую вы должны выполнить:
После того, как вы подключитесь один раз, Windows запомнит это имя пользователя и пароль и автоматически использует их, даже если вы используете команду mount в среде Linux.
Чтобы отключить сетевое расположение, вы можете снова использовать стандартную команду umount:
DrvFs неточно устанавливает разрешения Linux при подключении сетевого хранилища. Вместо этого все файлы в сетевой файловой системе имеют разрешение на полный доступ (0777), и вы можете увидеть, есть ли у вас доступ к файлу, только попытавшись его открыть. В файловой системе также не будет учитываться регистр, и вы не сможете создавать на них символические ссылки.
Лёгкий доступ к файлам в подсистеме Windows для Linux (WSL)
Вы можете открыть окно проводника прямо в текущем каталоге из среды оболочки Linux. Просто введите следующую команду в оболочку Bash:
Отсюда вы можете нормально работать с файлами. Используйте перетаскивание, копируйте и вставляйте их или даже открывайте их непосредственно в приложениях Windows, чтобы изменить их.
Microsoft может изменить то, как это работает в будущем. Но пока вы также можете ввести следующий путь в окно проводника для доступа к файлам дистрибутива Linux:
Другими словами, если вы используете Kali Linux, вы должны ввести:
Это, конечно, также работает из командной строки. В PowerShell или командной строке
Подсказки по использованию дистрибутивов на основе Debian
Регулярное обновление системы
Обновления исправляют баги в работе системы и несут новые функции. Для выполнения полного обновления выполните команду:
Регулярная очистка системы
Время от времени рекомендуется выполнять команды по удалению пакетов, которые были установлены автоматически (так как были зависимостями других программ), но теперь больше не нужны.
Для этого применяется команда:
Её использование безопасно и не должно приводить к проблемам.
При каждом обновлении программ файлы пакетов скачиваются в кэш. После обновления скаченные файлы (можно назвать их установочными) не удаляются, и постепенно кэш разрастается до больших размеров. Это сделано намерено с той идеей, что если после очередного обновления вы обнаружите, что новый пакет имеет проблемы, а старая версия уже недоступна в онлайн репозитории, то вы сможете окатиться до старой версии установив её из файла, сохранённого в кэше.
Для роллинг дистрибутивов кэш разрастается очень быстро, и если вы недостаточно квалифицированы, чтобы откатиться до старой версии, установочный пакет которой сохранён в кэше, то для вас эти сотни мегабайт или даже несколько гигабайт – это зря потраченное место на жестком диске. Поэтому время от времени можно выполнять команды
clean — удалить скачанные файлы архивов
clean вычищает локальный репозиторий от полученных файлов пакетов. Она удаляет все, кроме lock файла из /var/cache/apt/archives/ и /var/cache/apt/archives/partial/.
autoclean — удалить старые скачанные файлы архивов
Как и clean, autoclean вычищает из локального репозитория скаченные файлы пакетов. Разница только в том, что она удаляет только файлы пакетов, которые не могут быть больше загружены и в значительной степени бесполезны.
Это позволяет поддерживать кэш в течение долгого периода без его слишком большого разрастания. Опция настройки APT::Clean-Installed не даст быть удалёнными установочным файлам тех пакетов, которые установлены в данный момент.
Исправление ошибок установки пакетов и зависимостей
Следующая команда не связана непосредственно с очисткой, но помогает поддержать здоровье системы.
Опция -f, —fix-broken исправляет, пытается привести в норму систему с нарушенными зависимостями. Эта опция, когда используется с install/remove, может пропустить какие-либо пакеты, чтобы позволить APT найти вероятное решение. Если пакеты указаны, это должно полностью исправить проблему. Эта опция иногда необходима при запуске APT в первый раз; APT сама по себе не позволяет существовать в системе пакетам со сломанными зависимостями. Вполне возможно, что структура зависимостей системы может быть настолько нарушена, что потребуется ручное вмешательство (что обычно означает использование dpkg —remove для устранения некоторых пакетов-нарушителей). Использование этой опции совместно с -m в некоторых ситуациях может вызвать ошибку. Пункт в файле настройки: APT::Get::Fix-Broken.
Поиск пакетов программ
Поиск доступных пакетов (замените СЛОВО словом, по которому нужно искать пакеты в именах и описаниях):
Установка и удаление пакетов
Установить пакет приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):
Удаление пакета приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):
Подсказки по использованию дистрибутивов на основе openSUSE
Подсказки по использованию дистрибутивов на основе Fedora
II. Установка и использование программ, свойства и настройка системы
В этом разделе будут затронуты только обычные программы, специализированные инструменты будут рассмотрены в отдельных инструкциях.
Установка программ показана на примере дистрибутива Debian и производных. В других дистрибутивах пакеты должны называться также.
Double Commander (бесплатный аналог Total Commander) в Linux (WSL)
Чтобы установить двух оконный файловый менеджер Double Commander, который поддерживает функции и плагины Total Commander, выполните следующую команду:
Double Commander является кроссплатформенным, то есть работает на Windows и Linux. Рекомендуется установить его вместо пиратского Total Commander.
Как запустить веб-сервер в Linux на WSL
Хотя официально не поддерживаются серверные фоновые службы, мне удалось успешно запустить веб-сервер Apache на Kali Linux (должно работать на всех производных Debian).
Для запуска веб-сервера, установите пакеты apache2 и php:
Для запуска службы веб-сервера выполните команду:
Веб-сервер работает, это можно проверить посмотрев открытые порты:
В Kali Linux и других производных Debian файлы веб-сервера расположены в папке /var/www/html/.
Как получить доступ к службам Linux в WSL (какой IP у Linux)
Для дистрибутивов Linux создаётся виртуальная сеть Ethernet. Благодаря этой сети можно получить доступ из Windows в Linux, а также в обратном направлении.
Чтобы узнать IP адрес Linux выполните команду:
На скриншоте видно, что IP адресом Linux является 172.26.173.37. На предыдущем шаге мы запустили веб-сервер — попробуем в веб-браузере из Windows открыть страницу с веб-сервера в Linux:
Мы видим «Apache2 Debian Default Page», то есть страницу по умолчанию веб-сервера Apache2 на Debian.
Это означает, что
- Веб-сервер действительно работает
- Мы можем получить доступ к сетевым службам Linux из Windows
Что мне осталось непонятным — все запущенные дистрибутивы имеют один и тот же IP адрес. Более того, если запустить службу (открыть порт) на одном из дистрибутивов, то этот же порт окажется открытым и на всех остальных. Следовательно, например, не получится запустить веб-сервер одновременно на двух или более дистрибутивах… У всех дистрибутивах в WSL один сетевой интерфейс на всех.
Как получить доступ к службам Windows из Linux на WSL
Рассмотрим другой вариант — на Windows запущен сервер (веб, FTP и пр.) или сетевая служба, можно ли к ней подключиться из Linux на WSL? Можно! Нам нужно знать IP адрес Windows в виртуальной сети, созданной для WSL.
Из Linux этот IP адрес можно посмотреть командой:
IP адрес Windows это 172.26.160.1.
В самой Windows также можно посмотреть этот IP, причём как минимум двумя способами.
В терминале с помощью команды:
В графическом интерфейсе, в Диспетчере задач на вкладке «Производительность»:
Теперь используйте этот IP адрес для подключения к веб-серверу, FTP или любой другой службе Windows из Linux на WSL.
Как установить аналог Диспетчера задач в Linux на WSL
Если вы пользуетесь только интерфейсом командной строки, то запустите команду top, которая обычно уже предустановлена:
Изучите инструкцию «Как пользоваться командой top для наблюдения за процессами в Linux» чтобы полностью раскрыть потенциал этой программы.
Некоторые пользователи предпочитают аналог этой утилиты под названием htop. Обычно она отсутствует по умолчанию, поэтому начните с установки:
Для запуска выполните:
Если вы используете графическое окружение рабочего стола, то вы можете установить очень похожую на Диспетчер задач программу под названием System Monitor, для этого выполните команду:
Затем запустите System Monitor из меню или в консоли:
Как посмотреть открытые порты в Linux на WSL
Открытые порты вы можете увидеть с помощью команды:
Подробности об этой и аналогичных командах, а также об опциях, смотрите в статье «4 способа узнать, какие порты прослушиваются в Linux».
Как запустить СУБД MySQL в Linux на WSL
Для полноценного использования веб-сервера необходима СУБД, например, MySQL или MariaDB.
По идее, они должны запускаться командой вида:
Но в настоящее время MySQL/MariaDB ещё не работают в WSL.
Поддерживает ли Linux в WSL графический пользовательский интерфейс
Официально не поддерживается, но варианты его установки и подключения к нему имеются. Пример и больше подробностей вы найдёте в статье «Как установить Kali Linux с Win-KeX (графический интерфейс) в WSL2 (подсистему Windows для Linux)».
III. Решение проблем в WSL
Ошибка «WslRegisterDistribution failed with error: 0x80370102»
Если при попытке запуска дистрибутива вы получили ошибку:
то её причина в том, что центральный процессор не поддерживает виртуализацию. Причины могут быть разными:
- вы отключили виртуализацию в БИОСе
- процессор вообще не поддерживает виртуализацию
- вы запускаете Windows уже в виртуальной машине (независимо от модели, там процессоры не поддерживают виртуализацию).
Ошибка «Address already in use … make_sock: could not bind to address»
При запуске сетевой службы, которая открывает порт для прослушивания, например, веб-сервер Apache:
Может возникнуть примерно следующая ошибка:
Суть её в том, что указанный порт (80 в данном случае) уже используется другим процессом.
Ошибка может возникнуть даже в дистрибутиве, в котором не запущены сетевые службы. Дело в том, что на данный момент все дистрибутивы Linux имеют одну общую сетевую (виртуальную) карту. Поэтому если вы запустили веб-сервер или другую службу в одном дистрибутиве, вы не можете её запустить на другом, пока не остановите первый экземпляр.
Почему Linux в WSL не видит Wi-Fi адаптеры
У Linux в WSL нет прямого доступа к железу компьютера. По этой причине невозможно использовать Wi-Fi адаптеры, даже USB Wi-Fi адаптеры, в WSL.
Может ли Linux в WSL использовать видеокарты для выполнения вычислений
На данный момент Linux в WSL не может использовать графические процессоры, но эту функцию обещают добавить позже.
Ошибка в WSL (Kali Linux, Ubuntu) «sleep: cannot read realtime clock: Invalid argument»
Ошибка может возникнуть при попытке установить программу:
Либо при обновлении пакетов и системы:
Эти команды выводят что-то вроде следующего:
приведёт к другим ошибкам:
И так до бесконечности.
Для исправления выполните следующие команды:
Затем опять попробуйте
И затем как обычно установите нужный пакет или обновите систему.
Ошибка «unable to connect to socket: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. (10061)»
При использовании команды kex в Kali Linux (Win-KeX) может возникнуть ошибка:
В командной строке выводится:
Для исправления этой ошибки нажмите Ctrl+c.
Затем введите команду
Эта команда может вывести что-то вроде следующего:
Вновь попробуйте открыть графический интерфейс:
На этот раз всё должно заработать:
Причина ошибки до конца не ясна — возможно, дело в неудачном старте VNC сервера или процесса Win-KeX, на это указывает строка «Win-KeX process ID 1618… which was already dead», то есть процесс уже мёртвый.
Командой kex stop мы принудительно останавливаем Win-KeX, который при следующем запуске работает нормально.
Ошибка «E: Release file for http://http.kali.org/kali/dists/kali-rolling/InRelease is not valid yet (invalid for another 2h 43min 57s). Updates for this repository will not be applied»
При попытке обновления Kali Linux я столкнулся с ошибкой:
Суть её в том, что релизный файл для репозитория ещё не является действительным и, следовательно, обновление из этого репозитория невозможно.
Такое может произойти из-за неправильной цифровой подписи репозитория или неправильного времени.
Я столкнулся с этой ошибкой в WSL2 (подсистеме Windows для Linux), но, теоретически, она может возникнуть и в обычном дистрибутиве Kali Linux, а также в Docker.
При запуске команды:
Эта проблема вызвана тем, что неверно установлена временная зона (timezone) в Windows в следствии чего дистрибутив Linux в WSL также получает неверное время.
Время дистрибутив в WSL получает при своём запуске, то есть даже если вы впоследствии исправили время в Windows, в запущенных ранее дистрибутивах WSL по-прежнему время будет неправильным и ошибка сохранится.
Для исправления, как уже было сказано, начать нужно с установки правильного времени и правильной временной зоны в хостовом компьютере Windows.
Затем вам нужно использовать один из следующих способов:
1. Можно выключить и заново запустить все дистрибутивы Linux, для этого выполните команду:
2. Другой способ, внутри дистрибутива Linux выполните команду:
Эта команда получает последнее время от RTC вашей машины Windows и использует его для установки системного времени в Linux.
Вновь попробуйте сделать обновление:
Как можно убедиться по скриншоту, в этот раз обновление началось без ошибок: