Как редактировать файлы linux на windows

Обновлено: 04.07.2024

Подсистема Windows для Linux (WSL) прекрасно работает для обеспечения доступности большинства инструментов Linux для командной строки и работы в Windows без изменений. Тем не менее, это становится немного сложнее для развития, когда кто-то хочет

  • Создайте проект, используя набор инструментов Linux , который не имеет хорошо поддерживаемого эквивалента Windows (Ruby, Node и т. Д.)
  • Редактируйте файлы с помощью редактора графического интерфейса пользователя Windows, такого как код Visual Studio.

Проблема в том, что приложения Windows не могут изменять файлы внутри виртуальной файловой системы lxss . Известно, что прямое изменение этих файлов вызывает все виды проблем.

Поэтому, кажется, есть только два неоптимальных варианта использования WSL для разработки:

Сохраните проект под lxss ( /home/foo ). Обычный набор инструментов работает правильно. Тем не менее, редактирование ограничено либо Vim / Emacs на основе терминала, либо тем, что может быть запущено на опасном X-сервере , что менее плавно, чем в собственных редакторах, работающих в Windows.

Сохраните проект в файловой системе Windows ( /mnt/c/Users/foo ). Теперь любой Windows-редактор можно использовать для разработки. Однако набор инструментов на основе Linux хрупок, поскольку он не предназначен для использования на «сетевом диске» и может вызвать проблемы с просмотром файлов или базами данных .

Есть ли способ получить лучшее из обоих миров - то есть, чтобы иметь возможность редактировать с помощью собственного приложения Windows, но при этом иметь инструментальную цепочку Linux, как это обычно бывает на локальном диске?

Благодаря новой функции вы сможете безопасно получать доступ к файлам файловой системы Windows и Linux из Windows, если вы проходите через сервер 9P. Это будет обработано изначально из WSL. Например, из командной строки WSL вы сможете набрать, code /mnt/c/Users/username/src/windows-file.txt чтобы открыть файл Windows в VS Code, или набрать, code /home/username/src/linux-file.txt чтобы открыть файл Linux в VS Code.

Если вы не являетесь частью программы Windows Insider, у вас еще не будет к ней доступа, поэтому вам все равно придется использовать более старый метод, такой как wslpath.

В прошлом было несколько сторонних инструментов для выполнения одного и того же преобразования, но wslpath делает это изначально - фактически, ls -l /bin/wslpath показывает, что это просто ссылка на / init.

image

Весной этого года компания Microsoft начала интеграцию Linux-инструментария в свою новую ОС Windows 10. Первым шагом было включение Ubuntu и Bash инструментария в сборку 14316. Суть обновления заключалась в добавлении прослойки WSL, которая транслировала системные вызовы Linux в системные вызовы Windows, что позволяет развернуть в основном окружении Windows полноценный инструментарий Ubuntu Linux без эмуляции и виртуализации.

Вчера Microsoft опубликовала в официальном блоге запись, призывающую разработчиков не изменять, создавать или удалять файлы Linux при помощи инструментов или приложений Windows, так как это приводит к повреждению дистрибутива с необходимостью его последующей переустановки.

В начале поста в блоге на MSDN стоит крупное предупреждение:

Ни при каких обстоятельствах НЕ создавайте и/или изменяйте файлы Linux с помощью Windows, будь то приложения, инструменты, скрипты, консоли и т.д.

Создание/изменение файлов Linux из под Windows, скорее всего, приведет к повреждению данных и / или повреждению среды Linux, что в дальнейшем потребует переустановки дистрибутива!

Речь идет о любых файлах или папках, которые лежат в %LOCALAPPDATA%\lxss в подсистеме Linux в Windows 10.

Происходит подобное, судя по информации в блоге, из-за логики работы WSL.

Если WSL не удается найти файл метаданных Linux для данного файла, то делается вывод, что файл либо поврежден или удален, либо вы не в состоянии открыть или правильно прочитать файл, что приводит к сбоям. В некоторых случаях удаленные файлы распознаются как «поврежденные».

«Метаданные файлов (расширения, дата создания и прочая информация) формируются в Linux и Windows по-разному. По этой причине ПО и инструменты для Windows не способны корректно сохранить и записать метаданные Linux-файлов (в принципе, они и не должны этого уметь). Кроме этого некоторое ПО для Windows часто не редактирует исходный файл, а создает его копию. При этом исходный файл удаляется и заменяется другим, а метаданные теряются», — говорится в блоге.

Решается данная проблема хранением необходимых файлов, работа с которыми производится средствами Windows, в рамках файловой системы ОС от Microsoft, а файлы Linux не изменять, создавать или удалять при помощи инструментов для Windows.

Как выполнять 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.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

Шаг 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.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

Шаг 6. Как только установка завершится, найдите дистрибутив в меню «Пуск» и запустите его.

Шаг 7. Пройдите этап первоначальной настройки, введя имя нового пользователя и придумав пароль.

Шаг 8. Теперь различные GNU/Linux-команды можно выполнять, запустив дистрибутив, либо введя в командной строке wsl <команда>. Например, для просмотра всех файлов в текущей директории достаточно в командной строке выполнить wsl ls -a.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

Обращу внимание на то, что путь к дискам в WSL отличается от такового в Windows. Вместо привычного C:/ используйте /mnt/c/. Также не забывайте про экранирование пробелов с помощью символа \ — это также пригодится при вводе путей к файлам.

Помимо выполнения базовых команд, с помощью WSL можно даже запускать приложения с графическим интерфейсом. Правда, рассчитывать на большое количество поддерживаемых подобных программ не стоит.

Шаг 1. Загрузите X-сервер и установите его.

Шаг 2. Запустите его с помощью ярлыка на рабочем столе. В открывшемся окне выберите вариант Multiple windows, затем Start no client. Завершите настройку кнопкой Finish.

Шаг 3. Откройте дистрибутив через меню Пуск и выполните команду export DISPLAY=:0

Шаг 4. Запустив приложение с графическим интерфейсом в WSL, вы увидите новое окно прямо в Windows.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

CoreUtils — лёгкий инструмент для запуска базовых команд

Плюс данной утилиты — возможность запуска не только на Windows 10, но и на более старых версиях ОС. Кроме того, она легка и не занимает много места. Не обошлось без недостатков — программа скудна на функционал и не обновлялась очень давно. Она не только не умеет запускать скрипты и приложения с GUI, но и поддерживает лишь самые базовые GNU/Linux-команды. Установка CoreUtils весьма проста.

Шаг 1. Скачайте утилиту с официального сайта.

Шаг 2. Следуйте инструкциям установщика.

Переменной Path нет? Тогда для начала создайте её кнопкой «Создать», затем в поле имени введите Path, а в поле значения — строку выше.

Шаг 4. Запустите командную строку и выполняйте команды прямо там.

Cygwin — запуск команд и Bash-скриптов

Ещё одна утилита, схожая с CoreUtils, но обладающая более широким функционалом — в том числе и возможностью запуска скриптов. Из минусов — немалый вес и более сложная установка. Разумеется, не идёт ни в какое сравнение с максимально удобным WSL, но для базовых команд вполне подойдёт.

Шаг 1. Загрузите Cygwin и запустите установку.

Шаг 2. Выберите Install from Internet, укажите директории для установки и загрузки пакетов, а также любой подходящий сайт из списка для скачивания файлов.

Шаг 3. В процессе установки можете выбрать необходимые пакеты, либо сразу нажать «Далее», оставив базовый набор.

Переменной Path нет? Тогда для начала создайте её кнопкой «Создать», затем в поле имени введите Path, а в поле значения — строку выше.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы
Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

Шаг 5. Команды можно выполнять как через командную строку, так и через специальный терминал.

Шаг 6. Для удаления Cygwin достаточно удалить папку, в которую программа была установлена, а также (по желанию) значение из переменной Path по методу, обратному тому, что был описан в 4 шаге (не удаляйте саму переменную).

Как отредактировать Linux-файл из Windows?

Здравствуйте.
У меня на компьютере две файловые системы: NTFS, на которой стоит Windows и ещё одна, на которую я только что поставил Linux. Каким образом я могу из Windows найти в Linux-файловой системе файл и изменить его? Файл расширения conf (из виду как обычный текстовый). Нужно просто изменить пару строк и сохранить изменения.

IT-шник года 2009, 2010, 2012, 2013 Реєстрація 14 січень 2007 Звідки Ви Чкалова 16, оф 11 Дописів 19 489

Винда файловые системы линукса не видит.Если файл линуховый но на разделе,который видится виндой, то обычным блокнотом

F1 Service f1service.dp.ua .Ремонт ноутов, ПК и прочих железок, ИТ-сопровождение организаций.
Тел:7340453,093-99-835-99, 097-222-14-17, 095-476-77-79 Чкалова 16, оф 11

Допис від Gobzavr

Винда файловые системы линукса не видит.Если файл линуховый но на разделе,который видится виндой, то обычным блокнотом

Вижу, что не видит, но может быть есть специальные программы, которые видят?

Реєстрація 11 лютий 2008 Звідки Ви Дніпропетровськ Дописів 97

Винда видит файловые системы линуха, нужно только пошаманить немного

Реєстрація 11 лютий 2008 Звідки Ви Дніпропетровськ Дописів 97

есть плагины к Total Commander, есть програмко explore2fs

Реєстрація 11 лютий 2008 Звідки Ви Дніпропетровськ Дописів 97

Реєстрація 11 лютий 2008 Звідки Ви Дніпропетровськ Дописів 97

Реєстрація 26 березень 2006 Звідки Ви dp.ua Дописів 488

Прочитать то с помощью например DiskInternals Linux Reader то можно, а вот записать. я подозреваю, что проще загрузиться с линуксового компакта и отредактировать тот самый конфиг.

Остановился на программе Ext2IFS. Создал себе виртуальный диск и теперь работаю с ним как с обычным. Спасибо всем за помощь.

Допис від kain

Прочитать то с помощью например DiskInternals Linux Reader то можно, а вот записать. я подозреваю, что проще загрузиться с линуксового компакта и отредактировать тот самый конфиг.

Точно! Я ведь совсем забыл, что с компакта загружать можно. А программа действительно классная, и загрузить и сохранить можно. Буду портировать файлы из Windows. Спасибо.

А вообще, это извращение. Другое дело из Linux работать с файловыми системами microsoft, раньше были неудобства с доступом на запись к разделам с NTFS, но после появления ntfs-3g это стало возможным

IT-шник года 2009, 2010, 2012, 2013 Реєстрація 14 січень 2007 Звідки Ви Чкалова 16, оф 11 Дописів 19 489

Винда видит файловые системы линуха, нужно только пошаманить немного

Речь шла о стандартных средствах. С помощь тотал коммандера с плагинами например можно увидеть ext2,3 и кажется райзер, но с райзером я не сталкивался, посему хз.

Что впрочем, уже описали выше

F1 Service f1service.dp.ua .Ремонт ноутов, ПК и прочих железок, ИТ-сопровождение организаций.
Тел:7340453,093-99-835-99, 097-222-14-17, 095-476-77-79 Чкалова 16, оф 11

Реєстрація 02 грудень 2007 Звідки Ви Днепр Дописів 35

я использую Explore2FS 1.07.
ext3 из под винды видит

Читайте также: