Как безопасно редактировать .bashrc
файл в подсистеме Windows для Linux?
Эта статьяпредупреждает о том, что никогда не следует редактировать файлы, хранящиеся в папке WSL, AppData
с помощью инструментов Windows.
.bashrc
Но как же тогда безопасно редактировать файлы ?
решение1
Используйте встроенный nano
редактор как:
nano ~/.bashrc
Наиболее важными сочетаниями клавиш nano
являются Ctrl+ Oдля сохранения файла и Ctrl+ Xдля закрытия редактора.
Простое руководство по использованию nano
можно найти вGentoo Linux Вики.
решение2
Я думаюКод Visual Studioотлично работает. Просто установитеУдалённо - WSLрасширение.
Чтобы использовать его, просто откройте cmd и введите bash
. bash
Введите cd
, затем используйте code .bashrc
.
Вуаля! VS Code открывается в WSL, и вы можете редактировать нужные вам файлы.
решение3
Извините, что добавляю еще один ответ, но сам вопрос (вместе со всеми остальными ответами здесь) нуждается вконтекстэтого не хватает любому, кто приходит и пытается это понять.
Предупреждение Microsoft, ссылка на которое приведена в исходном вопросе, относится к редактированию файлов WSL1.через Windowsиспользуя путь Windows %AppData%
. В WSL версии 1 (но не версии 2) WSL хранил всю файловую систему для экземпляра Linux в папке Windows. Эти файлы, хотя и видны пользователю в Windows, не должны редактироваться в Windows. Как говорится в предупреждении, повреждение экземпляра WSL вероятно, если не принять во внимание.
В WSL версии 2 это не проблема. Поскольку файловая система хранится на виртуальном диске, редактировать файловую систему напрямую в любом случае невозможно.
Однако в любой из версий этоявляетсябезопасно редактировать файлы (включая ~/.bashrc
)внутриэкземпляр WSL. Там это просто обычный файл в файловой системе WSL. Два ответа от 2019 года (BeastOfCaerbannog'sиWinEunuuchs2Unix's) используют этот подход. Ничего плохого в этом нет — оба ответа правильные. Хотя я бы сказал, что установка Windows X Server и gedit
просто редактирование файла WSL, вероятно, излишество. Можно было бы привести практически любой другой редактор (кто-нибудь хочет добавить ответ по Emacs для полноты? ;-)).
TheОтвет 2020 года от Brixton Mavu, в котором упоминается использование VSCode, также является вариацией той же идеи. Несмотря на то, что он использует инструмент Windows, VSCode запускает сервер внутри экземпляра WSL, с которым он взаимодействует, чтобы разрешить редактирование, просмотр и даже отладку экземпляра WSL.
А потом естьНедавний ответ @Jon(что подняло этот вопрос, и поэтому я его увидел). Это (в основном) правильный ответ на вопрос о том, как безопасно редактировать файлы WSL изнутри Windows, а не изнутри экземпляра WSL. Хотя на самом деле это уже упоминалось в записи блога Microsoft, ссылка на которую была в исходном вопросе.
Я говорю "в основном", потому что вам следует, в общем, избегать использования инструментов Windows для редактирования файлов Linux, поскольку многие редакторы Windows по умолчанию используют окончания строк DOS/Windows, что ~/.bashrc
также приведет к сбою. Некоторые инструменты достаточно умны, чтобы распознать, что существующий файл является файлом Linux, некоторые инструменты - нет, но большинство инструментов по умолчанию используют CRLF (DOS/Windows) при отсутствии любого другого формата.
Если экземпляр WSL не запускается из-за ошибки в ~/.bashrc
, то ваммогвоспользуйтесь предложением @Jon по \\wsl$\
редактированию, но есть и другие (на мой взгляд), более безопасные альтернативы.
Чтобы изменить ситуацию ~/.bashrc
, когда этот файл препятствует запуску, выполните:
wsl -e bash --norc -c "vi ~/.bashrc"
или
wsl ~ -e bash --norc
vi .bashrc
Это запустится bash
без использования существующего ~/.bashrc
.
Другие альтернативы включают запуск сеанса от имени пользователя root:
wsl -u root
А затем внесите необходимые изменения.
В целом, WSL имеет несколько удивительных механизмов восстановления посредством использования wsl
аргументов команды для запуска экземпляра.
решение4
Если вы предпочитаете графический редактор, то установите его, VcXsrv
как описано здесь:
Тогда используйтеgedit ~/.bashrc