Windows 10でLinuxを使う (その9) - Win/Linuxで使える環境変数WSLENV(未来編)

【連載】

にわか管理者のためのLinux運用入門

【第107回】Windows 10でLinuxを使う (その9) - Win/Linuxで使える環境変数WSLENV(未来編)

[2018/01/03 08:00]後藤大地 ブックマーク ブックマーク

サーバ/ストレージ

環境変数

WindowsにもLinuxにも存在するので、環境変数についてはご存じだろう。環境変数の実装方法はWindowsとLinuxでは異なるのだが、ざっくり言って「実行元から実行先へと引き継がれていく変数」だと思ってもらえればよい。

代表的なものとして、WindowsでもLinuxでも確実に使われているのが環境変数PATHだ。これは実行可能ファイルを収めたフォルダやディレクトリのリストを保持するもので、この変数をサーチパスとしてファイルを探したりする目的で使われる。Linuxだとこれ以外にもさまざまな環境変数が使われている。環境変数はなくてはならない機能だ。

UNIX系のOSでほかのUNIX系のOSのバイナリを実行するような技術の場合(FreeBSDでLinuxのバイナリを実行するなど)、そもそものセマンティクスが似ているので結構自然とネイティブバイナリと同じように使うことができる。

しかし、これがWindows上でLinux(WSL)となると状況が異なる。セマンティクス(というか仕組みというか)が異なる部分があるので、ユーザー側からも変換の指定を行う必要が出てくる。そしてこれはWindows 10 Fall Creators Updateだとまだ実装されていないのでできないのだが、次のアップデートからは利用できるようになる見通しだ。今回はこの機能を紹介しておこうと思う。

WSLENVという特別な環境変数

詳しい話は「Share Environment Vars between WSL and Windows」にまとまっている。要するに、WindowsからLinuxを起動したり、LinuxからWindowsプロセスを実行したりする場合に、パスの自動変換が可能な環境変数「WSLENV」がWindows 10 Insider Preview Build 17063から導入された、というものだ。

以前、WindowsのファイルシステムのどこにLinuxディストリビューションが展開されているかを説明したことがあるが、あの面倒なパスの指定をしなくてもパスが指定できるような機能を持った特殊な環境変数だと思ってもらえればよいのではないかと思う。

この環境変数はWindowsではセミコロン区切り、Linuxではコロン区切りでパスのリストを保持する目的で使われる。それぞれのパスの最後にはサフィックスとして「/オプション」を指定することができ、オプションとしては「p」「l」「u」「w」を指定することができる。このオプションが変換方法の指定になっている。使い方はこんな感じだ。

export WSLENV=HOME/w:GOPATH/l:TMPDIR/p

オプションはそれぞれ次のような意味を持っている。

  • /p - パスを自動的に変換する
  • /l - 対象変数をパスリストとして展開する
  • /u - WindowsからWLSを起動する場合にパスを変換しない
  • /w - WLSからWindowsバイナリを実行する場合にパスを変換しない


オプションを指定することで目的に応じた処理ができるようになる。

/pを指定するとパスが自動的に変換される - 資料: Microsoft提供

/lを指定すると変数がパスリストであるとして展開したものが渡される - 資料: Microsoft提供

/uを指定するとWindowsからWSLを起動する場合にパスが変換されなくなる - 資料: Microsoft提供

/wを指定するとWSLからWindowsバイナリを実行する場合にパスが変換されなくなる - 資料: Microsoft提供

WSLではWSLからcmd.exeであるとかnotepad.exeであるとかといったWindowsバイナリを実行することができるのだが、こんな感じで環境変数WSLENVを使うとWSLからWindowsバイナリを実行する場合に意図した値を渡すといったことができるようになるし、またその逆もできるようになる。

WSLの利用が進めばWindowsとLinuxの間をシームレスに行ったり来たりしながら利用するケースや、そういったアプリケーションも出てくるだろう。WSLENVはそんなときにちょいちょい登場することになると思う。今後利用シーンが出てきたときにまた紹介しよう。

WSLは開発が活発に続く状況にある。今後も便利な機能が登場することになりそうだ。特にバックグラウンド機能の投入は早期の段階で希望されるところだが、ますますLinuxマシンとしてWindowsを利用できるようになりそうで今後の展開が楽しみである。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
3364
2
【連載】にわか管理者のためのLinux運用入門 [107] Windows 10でLinuxを使う (その9) - Win/Linuxで使える環境変数WSLENV(未来編)
WindowsからLinuxを起動したりLinuxからWindowsプロセスを実行したりする場合にパスの自動変換が可能な環境変数「WSLENV」が、Windows 10 Insider Preview Build 17063から導入された。今回は次のアップデートから利用できるようになると見られるこの機能を紹介しよう。今後利用されるシーンが増えそうな変数だ。
https://news.mynavi.jp/itsearch/files/mynavi20151210_linux_300-250.jpg
WindowsからLinuxを起動したりLinuxからWindowsプロセスを実行したりする場合にパスの自動変換が可能な環境変数「WSLENV」が、Windows 10 Insider Preview Build 17063から導入された。今回は次のアップデートから利用できるようになると見られるこの機能を紹介しよう。今後利用されるシーンが増えそうな変数だ。

会員登録(無料)

AI人材に必要なもの
エイプリルフールの舞台裏
セキュリティ・キャンプ2017 - 精彩を放つ若き人材の『今』に迫る
教えてカナコさん! これならわかるAI入門
RPA入門
PowerShell Core入門
パスワード管理アプリの選び方
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る