Windows linux subsystem terminal

Содержание
  1. Справочные материалы по командам подсистемы Windows для Linux Command Reference for Windows Subsystem for Linux
  2. Задать WSL 2 в качестве версии по умолчанию Set WSL 2 as your default version
  3. Установите вашу версию дистрибутива на WSL 1 или WSL 2 Set your distribution version to WSL 1 or WSL 2
  4. wsl.exe
  5. Аргументы для выполнения команд Linux Arguments for running Linux commands
  6. Аргументы для управления подсистемой Windows для Linux Arguments for managing Windows Subsystem for Linux
  7. Дополнительные команды Additional Commands
  8. wslconfig.exe
  9. Аргументы Arguments
  10. bash.exe
  11. Быстрота Linux на Windows 10
  12. Введение
  13. Спойлер
  14. Упоминаемые в статье файлы
  15. Установка Windows Subsystem for Linux (WSL)
  16. Основы использования терминала Ubuntu в Windows 10
  17. Как запускать Sublime Text из консоли Ubuntu
  18. Настройка консоли Ubuntu
  19. Цвета
  20. Переход к нужной директории при старте
  21. Алиасы
  22. Странная проблема с алиасами
  23. Показ git-ветки в командной строке
  24. Мелкие улучшения
  25. Замеченные баги
  26. Как заходить на сервер, запущенный в WSL, со сторонних устройств в одной локальной сети
  27. Комфортное использование с Cmder
  28. Вместо заключения

Справочные материалы по командам подсистемы Windows для Linux Command Reference for Windows Subsystem for Linux

Лучший способ взаимодействовать с подсистемой Windows для Linux — использовать команду wsl.exe . The best way to interact with the Windows Subsystem for Linux is to use the wsl.exe command.

Задать WSL 2 в качестве версии по умолчанию Set WSL 2 as your default version

Выполните следующую команду в PowerShell, чтобы задать WSL 2 в качестве версии по умолчанию при установке нового дистрибутива Linux: Run the following command in Powershell to set WSL 2 as the default version when installing a new Linux distribution:

Установите вашу версию дистрибутива на WSL 1 или WSL 2 Set your distribution version to WSL 1 or WSL 2

Вы можете проверить версию WSL, назначенную каждому из установленных дистрибутивов Linux, открыв командную строку PowerShell и введя команду (доступна только в сборке Windows 19041 или более поздней версии): wsl -l -v . You can check the WSL version assigned to each of the Linux distributions you have installed by opening the PowerShell command line and entering the command (only available in Windows Build 19041 or higher): wsl -l -v

Чтобы настроить дистрибутив для одной из версий WSL, выполните: To set a distribution to be backed by either version of WSL please run:

Не забудьте заменить на фактическое имя дистрибутива и с номером «1» или «2». Make sure to replace with the actual name of your distribution and with the number ‘1’ or ‘2’. Вы можете всегда вернуться к WSL версии 1, выполнив эту команду и заменив «2» на «1». You can change back to WSL 1 at anytime by running the same command as above but replacing the ‘2’ with a ‘1’.

Кроме того, если вы хотите сделать WSL 2 архитектурой по умолчанию, выполните следующую команду: Additionally, if you want to make WSL 2 your default architecture you can do so with this command:

Будет установлена версия любого нового дистрибутива, установленного в WSL 2. This will set the version of any new distribution installed to WSL 2.

wsl.exe

Ниже приведен список, содержащий все параметры wsl.exe при использовании в Windows версии 1903. Below is a list containing all options when using wsl.exe as of Windows Version 1903.

Использование: wsl [Argument] [Options. ] [CommandLine] Using: wsl [Argument] [Options. ] [CommandLine]

Аргументы для выполнения команд Linux Arguments for running Linux commands

Без аргументов Without arguments

Если командная строка не указана, wsl.exe запускает оболочку по умолчанию. If no command line is provided, wsl.exe launches the default shell.

—exec, -e —exec, -e

Выполнение указанной команды без использования оболочки Linux по умолчанию. Execute the specified command without using the default Linux shell.

Остальная часть командной строки передается «как есть». Pass the remaining command line as is.

Приведенные выше команды также принимают следующие параметры. The above commands also accept the following options:

—distribution, -d —distribution, -d

Запуск указанного дистрибутива. Run the specified distribution.

—user, -u —user, -u

Выполнение от имени указанного пользователя. Run as the specified user.

Читайте также:  Раздел диска для линукс

Аргументы для управления подсистемой Windows для Linux Arguments for managing Windows Subsystem for Linux

—export —export

Экспорт дистрибутива в TAR-файл. Exports the distribution to a tar file. Именем файла может быть «-» для стандартного вывода. The filename can be — for standard output.

—import —import

Импорт указанного TAR-файла в качестве нового дистрибутива. Imports the specified tar file as a new distribution. Именем файла может быть «-» для стандартного ввода. The filename can be — for standard input.

—list, -l [параметры] —list, -l [Options]

Вывод списка дистрибутивов. Lists distributions.

—all —all

Вывод списка всех дистрибутивов, включая дистрибутивы, которые сейчас устанавливаются или удаляются. List all distributions, including distributions that are currently being installed or uninstalled.

—running —running

Вывод списка всех дистрибутивов, выполняемых в данный момент. List only distributions that are currently running.

—set-default, -s —set-default, -s

Указание дистрибутива, используемого по умолчанию. Sets the distribution as the default.

—terminate, -t —terminate, -t

Завершение указанного дистрибутива. Terminates the specified distribution.

—unregister —unregister

Отмените регистрацию дистрибутива. Un-register the distribution.

—help отображает сведения об использовании. —help Display usage information.

Дополнительные команды Additional Commands

Доступны также устоявшиеся команды для взаимодействия с подсистемой Windows для Linux. There are also historic commands to interact with the Windows Subsystem for Linux. Их функциональные возможности реализованы в wsl.exe , но эти команды по-прежнему можно использовать. Their functionality is encompassed within wsl.exe , but they are still available for use.

wslconfig.exe

Эта команда позволяет настроить дистрибутив WSL. This command lets you configure your WSL distribution. Ниже приводится список ее параметров. Below is a list of its options.

Использование: wslconfig [Argument] [Options. ] Using: wslconfig [Argument] [Options. ]

Аргументы Arguments

/l, /list [параметры] /l, /list [Options]

Вывод списка зарегистрированных дистрибутивов. Lists registered distributions.

/all Дополнительный вывод списка всех дистрибутивов, включая дистрибутивы, которые сейчас устанавливаются или удаляются. /all Optionally list all distributions, including distributions that are currently being installed or uninstalled.

/running Вывод списка всех дистрибутивов, выполняемых в данный момент. /running List only distributions that are currently running.

/s, /setdefault Задание дистрибутива, используемого по умолчанию. /s, /setdefault Sets the distribution as the default.

/t, /terminate Завершение работы дистрибутива. /t, /terminate Terminates the distribution.

/u, /unregister Отмена регистрации дистрибутива. /u, /unregister Un-registers the distribution.

/upgrade Обновление дистрибутива до файловой системы WslFs. /upgrade Upgrades the distribution to the WslFs file system format.

bash.exe

Эта команда используется для запуска оболочки Bash. This command is used to start a bash shell. Ниже приведены параметры, которые можно использовать с этой командой. Below are the options you can use with this command.

Использование: bash [Options. ] Using: bash [Options. ]

Параметр не задан No Option given

Запуск оболочки Bash в текущем каталоге. Launches the Bash shell in the current directory. Если оболочка Bash не установлена, автоматически запускается lxrun /install . If the Bash shell is not installed automatically runs lxrun /install

запускает оболочку Bash в корневом каталоге пользователя. bash

launches the bash shell into the user’s home directory. Это аналог команды cd

. Similar to running cd

-c -c » «

Выполнение команды, вывод выходных данных и возврат в командную строку Windows. Runs the command, prints the output and exits back to the Windows command prompt.

Пример: bash -c «ls» . Example: bash -c «ls» .

Быстрота Linux на Windows 10

Ода bash-терминалу в Windows Subsystem for Linux

Статья о настройке функциональности и внешнего вида bash-терминала Windows Subsystem for Linux (WSL) в Windows 10.

Введение

Я постоянно использую терминал для работы с git и автоматизации сборки проектов (вёрстка/фронтенд: компиляция pug и scss, обработка изображений, транспиляция js…). На моём рабочем компьютере стоит Windows 10, а на ноутбуке — OSX и мне хочется использовать одни и те же консольные команды на обеих системах, поэтому я использовал GitBash (терминал, устанавливающийся вместе с Git) внутри эмулятора (Cmder). Такая связка работала заметно медленнее терминала на OSX, поэтому я был воодушевлён новостью «В Windows 10 встроили подсистему Linux» (март 2016 г.), но тогда, в 2016 году, её использование разочаровало: нельзя было запускать из bash-терминала программы Windows, подсистема не определяла изменение файла, если изменение было сделано из Windows. Сейчас эти проблемы решены.

Читайте также:  Track host windows что это

Спойлер

Главный выигрыш для меня — скорость. В моём стартовом репозитории есть трудоёмкая задача полной сборки проекта (компиляция, транспиляция, спрайты, шрифты, картинки…), с Gitbash она занимает 17 секунд, с bash-терминалом WSL — 10 секунд.

Упоминаемые в статье файлы

Установка Windows Subsystem for Linux (WSL)

В сети полно статей с инструкциями (по большей части, устаревших). Пользуйтесь официальной инструкцией с docs.microsoft.com и всё получится. Я установил Ubuntu, т.к. имею небольшой опыт ее использования.

После успешной установки можно запустить терминал подсистемы Linux командой bash в cmd.exe (или PowerShell) или кликом по иконке в меню «Пуск».

Основы использования терминала Ubuntu в Windows 10

Это подсистема внутри Windows, чтобы использовать nodeJS и git, нужно поставить их в подсистему (даже если они уже установлены в Windows). Я выбрал вариант с Ubuntu, поэтому при установке nodejs пользовался этой инструкцией, а git установил командой sudo apt-get install git (не забудьте указать git-у своё имя пользователя и email).

Можно запускать приложения Windows. Попробуйте notepad.exe — запустится Windows-блокнот.

Диски Windows расположены в /mnt/ . Попробуйте cd /mnt/c/ && ls для перехода к диску С:/ и вывода его корневых директорий (по умолчанию вывод выглядит уныло, но это настраивается).

Директория пользователя расположена в

для переходя в неё). Просто напоминаю.

В Linux-системах заглавные и строчные символы — разные символы. При использовании автодополнения ( Tab ) важно вводить символы в правильном регистре.

Директория пользователя подсистемы Linux физически у меня расположилась по довольно длинному пути (см. ниже). Сегмент nicothin — имя пользователя системы (как в начале пути (Windows), так и в конце (Ubuntu)).

Если редактировать файлы Linux-подсистемы из Windows, то Linux в некоторых случаях не сможет получить к ним доступ (не хватит прав). После такого редактирования нужно в bash-терминале подсистемы выполнить что-то вроде chmod 777

/.bashrc — редактированный из Windows файл) и перезапустить терминал. Или можно использовать команду source

/.bashrc (укажите редактированный файл) для применения внесённых изменений.

Как запускать Sublime Text из консоли Ubuntu

Если используете Sublime Text, добавьте путь к subl.exe в PATH в Windows, чтобы по команде в терминале subl.exe запускался Sublime Text:

  1. В проводнике сделайте правый клик на Этот компьютер, выберите Свойства, потом Дополнительные параметры системы.
  2. На вкладке Дополнительно нажмите кнопку Переменные среды.
  3. Сделайте двойной клик по Path для перехода к её редактированию.
  4. Нажмите кнопку Создать и добавьте путь к subl.exe.
    В моем случае это c:\Program Files\Sublime Text 3\ .
  5. Перезапустите терминал.

Вконтакте ВКонтакте вконтакте вконтактов

Настройка консоли Ubuntu

Цвета

Увы, сразу после установки консоль (особенно вывод команды ls ) выглядит «бородато» и «носит свитер».

Можно добавить файл с настройками цветового оформления ( touch

/.dircolors для создания файла) с этим содержимым.

Содержимое удобно добавлять из Windows, но тогда после сохранения файла в bash-терминале выполните chmod 777

/.dircolors и перезапустите терминал.

Переход к нужной директории при старте

Если при запуске терминала хочется попадать в директорию проектов, можно вписать в самом верху

/.bashrc команду cd /mnt/d/projects/ (укажите путь к нужной директории).

Алиасы

Добавим файл ( touch

/.bash_aliases ) c этим содержимым и перезапустим bash-терминал.

Теперь по команде subl . откроется Sublime Text (текущая папка будет показана как проект), а по команде наподобие subl filename.txt можно быстро открывать файлы.

Странная проблема с алиасами

Я настраивал bash-терминал на двух домашних компьютерах с Windows 10 и на одном из них после добавления файла терминал при рестарте выводил 4 сообщения : command not found . Из-за чего — я так и не понял (права доступа были и владелец файла — я), но нашел строки в

/.bashrc , которые к этому приводили. Это было подключение файла с алиасами:

Решил проблему, закомментировав эти строки и вписав алиасы прямо в

/.bashrc (в самом низу).

Показ git-ветки в командной строке

Шаг 1: добавим в начале

/.bashrc функцию для показа ветки:

Шаг 2: определим переменную, отвечающую за приглашение командной строки, добавим в неё показ результата работы этой функции (см. .bashrc ). Получится что-то вроде:

Читайте также:  Изменить расположение корзины windows 10

Мелкие улучшения

Есть довольно много действий в bash-терминале, на которые Windows 10 отреагирует звуковым сигналом (нажатие Backspace , когда уже нечего стирать, например). Чтобы это отключить, создайте

/.inputrc со строкой set bell-style none .

Vim по умолчанию показывает довольно тёмный текст, что на тёмном фоне смотрится плохо. Можно создать

/.vimrc со строкой set background=dark , чтобы текст стал более читаемым.

Замеченные баги

Работать с буфером обмена по умолчанию не комфортно ( Ctrl + V , Shift + Insert не работают, приходится кликать (. ) ПКМ по заголовку окна и выбирать ИзменитьВставить). Решается использованием терминала не самостоятельно, а внутри Cmder.

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

На одном из домашних компьютеров работает сохранение истории команд между сеансами, на другом не работает (хотя права доступа и владелец файла

/.bash_history — активный пользователь и сохранение истории включено). Не критично.

Не работают инструменты копирования в буфер. К примеру, при настройке SSH для github.com, есть инструкция для Linux:

Но её невозможно выполнить, т.к. xclip работать не будет. Решается использованием виндовской утилиты: clip.exe

После загрузки Windows иногда (было всего дважды) отказывается работать. Помогает перезагрузка (это же Windows).

Брандмауэр Windows по умолчанию не даёт зайти на запущенный внутри WSL сервер при запросе с другого устройства (запускаем сервер разработки на рабочем компе, открываем его страницы с телефона, находящегося в той же локальной сети). Как это лечить — не разобрался, приходится временно отключать брандмауэр.

Как заходить на сервер, запущенный в WSL, со сторонних устройств в одной локальной сети

Я пишу много html-страниц. В процессе работы у меня запущен локальный сервер, собирающий разметку, стили, javascript, спрайты и т.п. Бывает удобно запустить на основном компьютере сервер и зайти на него с помощью ноутбука, телефона, планшета (сервер доступен по IP, наподобие http://192.168.1.207:8080). Однако, встроенный в Windows 10 фаервол по умолчанию блокирует такие соединения.

Чтобы попасть на такой сервер, нужно добавить правило для брандмауэра:

  1. Найти с помощью поиска «Брандмауэр защитника Windows», открыть, нажать слева «Дополнительные параметры».
  2. В открывшемся окне Монитора брандмауэра выбрать (слева) «Правила для входящих…», нажать «Создать правило» (справа).
  3. Выбрать «Для порта», нажать «Далее».
  4. Выбрать «Определенные локальные порты», ввести номер порта (мой локальный сервер работает на порту 8080, его я и ввёл), нажать «Далее».
  5. Выбрать «Разрешить подключение», нажать «Далее», выбрать профили (я выбрал все), «Далее».
  6. Ввести какое-либо имя, нажать «Готово».

После этого получится зайти с любого устройства (в одной локальной сети) на запущенный в WSL на рабочем компьютере сервер.

Комфортное использование с Cmder

Для более тонкой настройки внешнего вида и комфортной работы с буфером обмена (привычное сочетание Ctrl + V для вставки) удобно использовать bash-терминал подсистемы Linux внутри cmder (эмулятор терминала, внутри которого можно запустить один из установленных в Windows терминалов). Для этого нужно добавить возможность старта WSL-консоли в настройках Cmder:

  1. Правый клик по иконке бургера в нижнем правом углу для перехода к настройкам.
  2. В разделе Startup выбрать радиокнопку Auto save/restore opened tabs, чтобы при рестарте не создавать вкладки заново.
  3. В разделе Startup, подразделе Tasks проверить наличие задачи WSL::bash. Если её нет, нажать кнопку Add/refresh default tasks… и согласиться на добавление задач.
  4. В списке задач появится пункт WSL::bash, при создании новой вкладки терминала нужно выбрать его.

Если в списке задач есть пункт WSL::bash, но WSL не запускается при его выборе (в момент создания новой вкладки Cmder), то в настройках можно попробовать нажать Add/refresh default tasks… и согласиться на обновление списка задач (см. п. 3). Если и после этого не получается запустить терминал подсистемы (Cmder сообщает о проблеме и пишет, что по нажатию Enter закроет вкладку), то можно добавить свою собственную задачу, которая будет запускать cmd.exe и сразу вызывать в ней команду bash . Команда запуска терминала будет выглядеть так:

Вместо заключения

Я скачал и установил в систему шрифт Ubuntu Mono для большей аутентичности внешнего вида терминала.

Оцените статью