- Как Выполнить команды Linux из Командной строки Windows 10.
- Сответствие консольных команд Windows и Linux.
- Использование команд Linux в среде Windows.
- Как выполнять Linux-команды внутри Windows: официальный и сторонние способы
- WSL — официальная подсистема Linux внутри Windows
- CoreUtils — лёгкий инструмент для запуска базовых команд
- Cygwin — запуск команд и Bash-скриптов
Как Выполнить команды Linux из Командной строки Windows 10.
Как вы знаете, Windows 10 может похвастаться Bash консолью Ubuntu, которая позволяет пользователю получить доступ и запускать приложения Ubuntu Windows 10. Баш предназначен для консольных приложений и услуг и позволяет запускать даже GUI — приложения с помощью небольшой хитрости. В этой статье мы рассмотрим, как выполнить команду Linux непосредственно из строки cmd.exe в операционной системе Windows 10.
Можно опустить необходимость в отдельной консоли для Bash на Ubuntu в Windows 10 и запустить конкретную команду или набор команд непосредственно из командной строки. Это стало возможным благодаря реализации подсистеме Windows для Linux (WSL) .
Консоль Баш может быть запущена с помощью следующего файла:
c:\windows\system32\bash.exe
Это приложение консоли, которое поддерживает несколько аргументов командной строки. Вы можете посмотреть их, выполнив команду:
Вывод –help выглядит следующим образом:
Как видно из краткой помощи, вы можете вызвать команду Linux напрямую, используя следующий синтаксис:
Следующий пример демонстрирует эту способность:
bash -c "lsb_release -a"
Вот некоторые команды Linux которые можно выполнить напрямую из Командной строки Windows 10.
Системная информация
- bash -c «lsb_release -a» — Посмотреть версию Ubuntu
- bash -c «uname -r» — Проверить версию ядра
- bash -c «uname -a» — Посмотреть всю информацию о ядре
- bash -c «arch» — отобразить архитектуру вашего компьютера
- bash -c «cat /proc/cpuinfo» — информация о ЦПУ
- bash -c «cat /proc/meminfo» — проверить использование памяти
- bash -c «df» — информация о использовании дисков
- bash -c «uptime» — время работы с момента включения
- bash -c «uname -a» — Посмотреть информация о ядре
Сответствие консольных команд Windows и Linux.
При переходе с Windows на Linux и наоборот, для тех, кто знаком с командной строкой, может пригодиться небольшая справка по соответствию консольных команд этих операционных систем. Естественно, полного соответствия, за редким исключением, не бывает, и в приведенной таблице собраны команды, идентичные по результатам выполнения или функционально близкие.
Соответствие команд CMD Windows командам Linux
Строчные и заглавные буквы для команд командной строки Windows воспринимаются одинаково, ECHO и echo — будет интерпретировано как одна и та же команда. При работе в командной строке Linux соблюдение регистра символов обязательно.
И в Linux, и в Windows используются специальные символы (иногда их еще называют метасимволами), которые интерпретируются оболочкой пользователя как определенные команды или данные.
Наиболее распространенные спецсимволы CMD Windows и оболочки bash Linux
Описание | Спецсимвол CMD Windows | Спецсимвол Linux |
Объединение команд | | и & (|| и &&) | | и & (|| и &&) |
Выполнение задачи в фоновом режиме | & | |
Подстановочные значения в строках | * и ? | * и ? |
Набор символов | [ ] | |
Отмена спецсимвола | ^ | \ |
Перенаправление ввода | или >> | > или >> |
Значение переменной | %переменная% | $переменная |
Домашний каталог | ~ | |
Текущий каталог | . | . |
Родительский каталог | .. | .. |
Комментарий | # |
В Linux набор спецсимволов зависит от используемой оболочки, и в любой из них спецсимволы используются чаще и их набор больше, чем в командной строке Windows. При чем, даже если спецсимволы одинаковы, их применение может приводить к разным результатам. Например, шаблоны имен файлов, задаваемые с помощью символа звездочки:
*.* — и в Linux, и в Windows такая конструкция означает – ”любые имена файлов с любым расширением”.
Аналогичным образом используется и знак вопроса, означающий ”любой одиночный символ” и в Linux, и в Windows.
test?.* — все файлы, имена которых начинаются со строки test и имеющие после нее любой символ. Однако особенности реализации командных интерпретаторов, могут приводить все же к разным результатам использования вроде бы аналогичных конструкций:
ls . * — эта команда Linux отобразит список файлов с длиной имени в 5 символов.
dir . * — эта команда Windows отобразит список файлов с длиной имени в 5 символов и меньше.
При использовании шаблона . txt в Windows отобразятся все файлы с именами длиной в 5 символов и менее, с расширением и .txt и .TXT. В Linux – с именами в 5 символов, и только те файлы, у которых расширение не содержит заглавные буквы.
Использование команд Linux в среде Windows.
С появлением в Windows 10 Подсистемы Windows для Linux (WSL – Windows Subsystem for Linux) пользователь получил возможность использовать в командной строке Windows команды оболочки Linux, появилась возможность создавать сценарии, в которых будут использоваться и команды CMD Windows, и команды оболочки Linux. Например, командный файл для вывода списка определенных файлов каталога C:\Windows\System32:
REM вывод списка файлов с 3-символьными именами и
REM расширением .exe средствами Linux
wsl ls /mnt/c/windows/system32/. exe
REM вывод списка файлов с 3-символьными именами и
REM расширением .exe средствами Windows
По умолчанию, Подсистема Windows для Linux не включена. Как ее включить и настроить – в отдельной статье, ссылка на которую приведена в конце страницы.
После установки и настройки WSL, в командных файлах CMD Windows можно использовать утилиту wsl.exe , обеспечивающую конфигурирование и выполнение команд Linux.
wsl ls /mnt/c/windows/system32/. exe — команда wsl, обеспечивающая исполнение в обычном bat-файле линуксовой команды ls /mnt/c/windows/system32/. exe .
После установки подсистемы WSL, кроме утилиты wsl.exe в среде Windows будут присутствовать еще и утилиты wslconfig.exe и bash.exe обеспечивающие максимальную совместимость Windows и Linux.
Как выполнять 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:
Шаг 3. Если версия Windows, определённая в первом пункте, свежее 18362, вы можете установить WSL 2, который в разы быстрее первой версии и обладает доработанным ядром. Введите команду ниже, если нужно установить WSL 2:
После этого скачайте и установите пакет обновления с официального сайта.
Шаг 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 шаге (не удаляйте саму переменную).