おはこんばんちは!
株式会社HitsujiDesignの辻です。
最近のMicrosoftは本当に良い仕事をしています。
- VSCodeが便利すぎる
- PowerShellの登場
- WSLの登場
特にWSLは良い流れです。
WSLとは?
Windows Subsystem for Linuxの略です。
英語の通り、windows上でLinuxをサブシステムとして動かせるようになります。
私はしばらくMacを使っていますが
その理由として、ターミナルで気軽にsshやscpができることがあげられました。
cygwinとかを使えば、なんとかできなくもないですが・・・(面倒くさい)
他にもwindowsでsshとscpを行うとすると
teratermやらwinscpをインストールすることも対応としてありますね。
これらを使うとコマンドだけで完結しないので、好みではないです。
WSL導入手順
▼windowsの設定
▼Linuxディストリビューションインストール
上記の記事を参照していただければ、導入できます。
楽チンです。
使ってみる
私はUbuntu 18.04 LTSをインストールしました。
インストールが完了するとスタートメニューにUbuntu 18.04 LTSが追加されます。
Windowsキーをおして、「Ubuntu」と入力すればでてきます。
このターミナルでsshやscpがで実行できます。
ちなみにCドライブのファイルも参照できます。
Cドライブは、/mnt/c/にマウントされています。
補助ツール作ってみた
私はwindows上で作ったファイルをSCPでLinuxサーバにデプロイするという使い方をします。
そこで面倒くさいのが、送信元ファイルをターミナル上から指定する作業です!
TABキーを押せばある程度サクサクできますが、まあめんどくさいです。
そこで、今回はVBScriptを使って、windows上のフォルダをWSLから参照する場合のパスに変換するプログラムを作りました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Set args = Wscript.Arguments IF args.Count = 0 Then Wscript.Echo("no args") Else Dim arrayDir arrayDir=Split(args(0),":\") Dim mountPosition mountPosition="/mnt/"&LCase(arrayDir(0))&"/" Dim folderPosition folderPosition=Replace(arrayDir(1),"\","/") Dim wslPath wslPath=mountPosition & folderPosition Wscript.StdOut.Write(wslPath) End If |
1 |
cscript //nologo C:\dev\bat\winPath2wslPath\win2wslpath.vbs %1 | clip |
win2wslpath.batからwin2wslpath.vbsを呼び出す仕組みです。
C:\dev\bat\winPath2wslPath\win2wslpath.vbsはVBSの配置先に合わせて修正してください!
こんな感じでつかってください。
「送る」にバッチファイルを登録すると便利です。
登録の仕方は以下の記事が参考になります。
windows最近いいぞ!
そういうわけで最近のwindows(Microsoft社)はいいですね。
エンジニアとしては、OS関係なく操れるようにしておいたほうがいいですがwindowsアレルギーはだいぶなくなりました。
wsl2ではdocker対応しているので、そのうちチャレンジしてみようと思います。
株式会社HitsujiDesign
https://hitsuji.design/