0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows環境で端末エミュレータやPythonデバッグ用にLinuxを使う(WSL)

Last updated at Posted at 2018-10-10

背景

  • Windows環境でちょっとSSHクライアントやLinuxコマンドを使いたいときがある

  • RaspberryPiにコンソールログインするときとか

  • LAN内のホストの生存確認にping打ったり、ifconfigしたり

  • ちょっとPythonなどでスクリプト書いて実行してみたいときもある

  • 今までPythonデバッグやネットワークコマンド使うにはWindows Powershellを使っていたが、SSHのクライアントはWindows版だとGUIメインだったり、Linuxのちょっとしたbashコマンドが使えなかったりしてストレスフルだった

  • VMWareにDebian入れて使ったりしてたけどいちいち仮想マシンを立ち上げるのはメンドクサイし出先でノートPC使ってたりすると処理速度やストレージ的に微妙だったりする

  • Windows側とのファイルのやりとりが面倒だったりする

Windows Subsystem for Linux

  • WSL(Windows Subsystem for Linux)を使うと手軽にbash環境が手に入る
  • コマンドラインベースならLinuxのほとんどのプログラムが普通に走るらしい
  • Debianもあるよ!

インストールと有効化

  • Windows側の機能を有効にする
  • Windows10の場合、スタートメニュー→Windowsシステムツール→コントロールパネル→プログラムと機能→Windowsの機能の有効化または無効化→Windows Subsystem for Linuxにチェック
  • ストアからインストール
  • 色々提供されてるので、好きなディストリを。当然ここはDebian。
    無題.png

Tips

アカウント関連

  • インストール時にアカウント名とパスワードの設定を求められる。
  • Windows側のユーザ名とは独立。
  • sudo時には初期アカウントのユーザ名/パスワードを使えばroot権限使える

パッケージ関連

  • Debianなら普通にsudo apt installが可能
  • コマンドライン系はほぼ使える。当然PythonやSSHも。

Windowsのバイナリ関連

  • 普通にexeを実行可能。notepadとかcalcとか。Windowsのウインドウが開くから面白い
  • .exeは省略できない。$ notepad.exe
  • PATHを見てみると、Windows側で設定しているPATH環境変数がそのまま引き継がれているようだ
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Program Files/dotnet:/mnt/c/Program Files/Microsoft SQL Server/130/Tools/Binn:/mnt/c/Windows/System32/OpenSSH:/mnt/c/Users/xxxxx/AppData/Local/Microsoft/WindowsApps

ファイル関連

  • Windows側のファイルは/mnt/c/で参照可能

  • リムーバブルドライブ(SDとか)はWindows側でドライブレターが割当たっていても自動ではマウントされない。ファイルシステムdrvfsでマウント可能。

  • D:がSDカードの場合は、sudo mkdir /mnt/sdsudo mount -t drvfs d: /mnt/sd/

  • /etc/fstabでの設定も当然可能。

  • Windows側で作成したファイルはオーナーがroot、パーミッションは777に見える

  • Windows側でReadOnlyにしたファイルは、パーミッション555に見える

  • 無題.png

  • Windows側から見た時のWSL環境のファイルはC:\Users\(WindowsUserName)\AppData\Local\Packages\TheDebianProject.DebianGNULinux_(randomString)\LocalState\rootfs

  • ここのファイルをWindows側から弄るとWSL環境がおかしなことになるらしいので、触ってはいけない

  • 運用としては、Windows側にWSLとの共有用フォルダを作って、WSLからシンボリックリンクを張るのがいいかもしれない

  • ファイルオーナー/パーミッションが固定なのは我慢する

  • ファイル名の大文字小文字が区別されないが、我慢する

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?