WSLで.bashrcを安全に編集する

WSLで.bashrcを安全に編集する

.bashrcWindows Subsystem for Linux でファイルを安全に編集するにはどうすればよいですか?

この記事AppDataWindows ツールを使用してWSL フォルダーに保存されているファイルを編集しないよう警告します。

.bashrcしかし、どうすれば安全にファイルを編集できるのでしょうか?

答え1

組み込みnanoエディターを次のように使用します。

nano ~/.bashrc

最も重要なショートカットは、ファイルを保存するための+とエディターを閉じるための+nanoです。CtrlOCtrlX

使用方法の簡単なガイドnanoは、Gentoo Linux ウィキ

答え2

私は思うビジュアルスタジオコード問題なく動作します。リモート - WSL拡大。

これを使用するには、cmd を開いて と入力しますbash。とbash入力してを使用します。cdcode .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年の2つの回答(BeastOfCaerbannogのそしてWinEunuuchs2Unixの) はこのアプローチを利用しています。何も問題はありません。どちらも正解です。ただし、Windows X Server をインストールしてgeditWSL ファイルを編集するのはやりすぎだと思います。他のエディターも引用できます (完全を期すために Emacs の回答を追加したい人はいませんか? ;-))。

2020年のブリクストン・マヴの回答も、同じアイデアをアレンジしたものです。VSCode は Windows ツールを使用しますが、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

GUI エディターを希望する場合は、VcXsrvここに詳述されているようにインストールしてください。

次にgedit ~/.bashrc

関連情報