- Быстрота Linux на Windows 10
- Введение
- Спойлер
- Упоминаемые в статье файлы
- Установка Windows Subsystem for Linux (WSL)
- Основы использования терминала Ubuntu в Windows 10
- Как запускать Sublime Text из консоли Ubuntu
- Настройка консоли Ubuntu
- Цвета
- Переход к нужной директории при старте
- Алиасы
- Странная проблема с алиасами
- Показ git-ветки в командной строке
- Мелкие улучшения
- Замеченные баги
- Как заходить на сервер, запущенный в WSL, со сторонних устройств в одной локальной сети
- Комфортное использование с Cmder
- Вместо заключения
- ‼️ 4 способа запустить команды Linux в Windows
- Использование команд Linux внутри Windows
- 1. Используйте оболочку Linux Bash в Windows 10
- 2. Используйте Git Bash для запуска команд Bash в Windows
- 3. Использование команд Linux в Windows с Cygwin
- 4. Используйте Linux на виртуальной машине
Быстрота 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. Сейчас эти проблемы решены.
Спойлер
Главный выигрыш для меня — скорость. В моём стартовом репозитории есть трудоёмкая задача полной сборки проекта (компиляция, транспиляция, спрайты, шрифты, картинки…), с 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:
- В проводнике сделайте правый клик на Этот компьютер, выберите Свойства, потом Дополнительные параметры системы.
- На вкладке Дополнительно нажмите кнопку Переменные среды.
- Сделайте двойной клик по Path для перехода к её редактированию.
- Нажмите кнопку Создать и добавьте путь к subl.exe.
В моем случае это c:\Program Files\Sublime Text 3\ . - Перезапустите терминал.
Вконтакте ВКонтакте вконтакте вконтактов
Настройка консоли 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 ). Получится что-то вроде:
Мелкие улучшения
Есть довольно много действий в 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 фаервол по умолчанию блокирует такие соединения.
Чтобы попасть на такой сервер, нужно добавить правило для брандмауэра:
- Найти с помощью поиска «Брандмауэр защитника Windows», открыть, нажать слева «Дополнительные параметры».
- В открывшемся окне Монитора брандмауэра выбрать (слева) «Правила для входящих…», нажать «Создать правило» (справа).
- Выбрать «Для порта», нажать «Далее».
- Выбрать «Определенные локальные порты», ввести номер порта (мой локальный сервер работает на порту 8080, его я и ввёл), нажать «Далее».
- Выбрать «Разрешить подключение», нажать «Далее», выбрать профили (я выбрал все), «Далее».
- Ввести какое-либо имя, нажать «Готово».
После этого получится зайти с любого устройства (в одной локальной сети) на запущенный в WSL на рабочем компьютере сервер.
Комфортное использование с Cmder
Для более тонкой настройки внешнего вида и комфортной работы с буфером обмена (привычное сочетание Ctrl + V для вставки) удобно использовать bash-терминал подсистемы Linux внутри cmder (эмулятор терминала, внутри которого можно запустить один из установленных в Windows терминалов). Для этого нужно добавить возможность старта WSL-консоли в настройках Cmder:
- Правый клик по иконке бургера в нижнем правом углу для перехода к настройкам.
- В разделе Startup выбрать радиокнопку Auto save/restore opened tabs, чтобы при рестарте не создавать вкладки заново.
- В разделе Startup, подразделе Tasks проверить наличие задачи WSL::bash. Если её нет, нажать кнопку Add/refresh default tasks… и согласиться на добавление задач.
- В списке задач появится пункт WSL::bash, при создании новой вкладки терминала нужно выбрать его.
Если в списке задач есть пункт WSL::bash, но WSL не запускается при его выборе (в момент создания новой вкладки Cmder), то в настройках можно попробовать нажать Add/refresh default tasks… и согласиться на обновление списка задач (см. п. 3). Если и после этого не получается запустить терминал подсистемы (Cmder сообщает о проблеме и пишет, что по нажатию Enter закроет вкладку), то можно добавить свою собственную задачу, которая будет запускать cmd.exe и сразу вызывать в ней команду bash . Команда запуска терминала будет выглядеть так:
Вместо заключения
Я скачал и установил в систему шрифт Ubuntu Mono для большей аутентичности внешнего вида терминала.
‼️ 4 способа запустить команды Linux в Windows
Краткое описание: Хотите использовать команды Linux, но не хотите выходить из Windows? Вот несколько способов запуска команд Linux bash в Windows.
Если вы изучаете скрипты оболочки, вероятно, как часть вашей учебной программы, вам нужно использовать команды Linux для практики команд и скриптов.
В вашей школьной лаборатории может быть установлен Linux, но лично у вас нет ноутбука с Linux, а обычный компьютер с Windows, как и у всех.
Ваша домашняя работа должна выполняться с командами Linux, и вы задаетесь вопросом, как запускать команды и скрипты Bash в Windows.
Вы можете установить Linux вместе с Windows в режиме двойной загрузки.
Этот метод позволяет вам выбрать Linux или Windows при запуске компьютера.
Но взять на себя все усилия, чтобы связываться с разделами с единственной целью запуска команды Linux, может быть не для всех актуальна.
Вы также можете использовать терминалы Linux онлайн, но ваша работа не будет сохранена.
Хорошая новость заключается в том, что есть несколько способов запуска команд Linux внутри Windows, как и в любом обычном приложении. Разве это не круто?
Использование команд Linux внутри Windows
Как “промоутер” Linux, я бы хотел, чтобы все больше и больше людей использовали «настоящий» Linux, но я понимаю, что иногда это не является приоритетом.
Если вы просто хотите попрактиковаться в Linux, вы можете использовать один из этих методов для запуска команд Bash в Windows.
1. Используйте оболочку Linux Bash в Windows 10
Знаете ли вы, что вы можете запустить дистрибутив Linux внутри Windows 10?
Подсистема Windows для Linux (WSL) позволяет запускать Linux внутри Windows.
В следующей версии WSL будет использоваться настоящее ядро Linux внутри Windows.
Этот WSL, также называемый Bash для Windows, дает вам дистрибутив Linux в режиме командной строки, работающий как обычное приложение Windows.
Не пугайтесь режима командной строки, потому что ваша цель – запускать команды Linux. Это все, что вам нужно.
Вы можете найти некоторые популярные дистрибутивы Linux, такие как Ubuntu, Kali Linux, openSUSE и т. д. В Магазине Windows.
Вам просто нужно скачать и установить его, как любое другое приложение Windows.
После установки вы можете запускать все необходимые вам команды Linux.
2. Используйте Git Bash для запуска команд Bash в Windows
Вы, наверное, знаете, что такое Git.
Это система контроля версий, разработанная создателем Linux Линусом Торвальдсом
Git для Windows – это набор инструментов, который позволяет использовать Git как в командной строке, так и в графических интерфейсах.
Одним из инструментов, включенных в Git для Windows, является Git Bash.
Приложение Git Bash предоставляет и слой эмуляции для командной строки Git.
Помимо команд Git, Git Bash также поддерживает множество утилит Bash, таких как ssh, scp, cat, find и т. д.
Другими словами, вы можете запускать множество общих команд Linux / Bash, используя приложение Git Bash.
Вы можете установить Git Bash в Windows, скачав и бесплатно установив инструмент Git для Windows с веб-сайта:
3. Использование команд Linux в Windows с Cygwin
Если вы хотите запускать команды Linux в Windows, рекомендуется Cygwin.
Cygwin был создан в 1995 году для обеспечения POSIX-совместимой среды, которая изначально работает в Windows.
Cygwin – это бесплатное программное обеспечение с открытым исходным кодом, поддерживаемое сотрудниками Red Hat и многими другими добровольцами.
В течение двух десятилетий пользователи Windows используют Cygwin для запуска и выполнения команд Linux / Bash.
Вы можете скачать Cygwin с официального сайта, который будет показан ниже.
4. Используйте Linux на виртуальной машине
Другой способ – использовать программное обеспечение для виртуализации и установить в него Linux.
Таким образом, вы устанавливаете дистрибутив Linux (с графическим интерфейсом) внутри Windows и запускаете его как обычное приложение Windows.
Этот метод требует, чтобы в вашей системе было достаточно оперативной памяти, по крайней мере, 4 ГБ, но лучше, если у вас более 8 ГБ.
Здесь хорошо то, что вы по-настоящему почувствуете использование настольного Linux. Если вам нравится интерфейс, вы можете позже полностью перейти на Linux.
Существует два популярных инструмента для создания виртуальных машин в Windows: Oracle VirtualBox и VMware Workstation Player.
Вы можете использовать любой из двух. Лично я предпочитаю VMware.