仮想マシンでUbuntuは一応使ったことがあるが、WSL(Windows Subsystem for Linux)は入門レベルの人間が、WSLのUbuntu(bash)上で可能な限り操作を完結させようともがいた結果をまとめたメモです。初心者なので色々大目に見ていただけるとありがたいです。インストールに関しては割愛させていただきます。
準備
① Linuxとの共有フォルダを作る
Windows側からLinuxのファイルを参照したい場合もあると思うので、面倒が無いようあらかじめUbuntu上で作成したファイルを置くフォルダを決めておきます。私はドキュメントフォルダにUbuntuという名前のフォルダを作りました。
簡単にアクセスできるよう、この共有フォルダへのショートカットをUbuntuのホームディレクトリ上に作成します。
まず、共有フォルダをエクスプローラーで開き、Shiftキーを押しながら右クリックし、「PowerShell ウィンドウをここに開く」をクリックします。
立ち上がったPowerShell上で「bash」コマンドからLinuxを起動します。次に、「pwd」コマンドで共有フォルダのパス(アドレス)を取得します。
$ pwd /mnt/c/Users/[ユーザ名]/Documents/Ubuntu
簡易編集モードが有効になっていればドラッグでコピー、右クリックでペーストができるはずですので、これをコピーしておきます。有効になっていない場合はPowerShellのウィンドウを右クリックし、プロパティのオプションから有効にします。
次に「ln -s」コマンドでUbuntuのホームディレクトリ上にこのフォルダへのシンボリックリンクを作成します。これで、Ubuntuのホームディレクトリから簡単に共有フォルダへ移動できるようになります。
$ ln -s [共有フォルダのパス] ~/[任意の名前]
② ダブルクリックでUbuntuを起動する
毎回、ホームディレクトリから共有フォルダに移動する or PowerShellを起動してからbashを立ち上げる、のが面倒なので、バッチファイルを作ってダブルクリックで共有フォルダ上でbashが起動するようにします。一行だけですが以下のように記述したテキストファイルの拡張子を「.bat」に変更し、共有フォルダに保存します。
このファイルをダブルクリックするとコマンドプロンプト上でbashが起動します。上手く起動しない場合はbashの代わりにbash.exeと記述してみてください。
bash
実践編
複数端末の起動
端末多重化ソフトウェアのtmuxを使えば一つのウィンドウ上で複数の端末を起動できますが、使い方が分からなかったので、大人しく複数ウィンドウでbashを起動しています。バッチファイルからなら複数起動も簡単です。
基本コマンド
cd
$ cd [ディレクトリ名]
指定したパスのディレクトリに移動します。引数を省略するとホームディレクトリに移動します。引数に - (ハイフン)を指定すると直前にいたディレクトリに移動します。
mkdir
$ mkdir [ディレクトリ名]
指定したパスのディレクトリを作成します。-pオプションで途中の階層のディレクトリも含めて作成することができます。
cp
$ cp [コピー元] [コピー先]
指定したファイルをコピーします。ディレクトリに関しても-rオプションを使ってコピーできます。
rm
$ rm [ファイル]
指定したファイルを削除します。-rオプションを使えばディレクトリも削除できます。復元ができないので慎重に使用する必要があります。またその気になれば、システムの全消去も可能です。バルス
ファイラー
端末上で使用できるCUIのファイラーとして、「ranger」を使っています。CUIながら、タブ機能やブックマーク機能などの便利な機能が揃っています。
pipコマンドでインストールできます。
sudo pip3 install ranger-fm
テキストエディタ
端末上で利用できるCUIのエディタには「vim」、「emacs」、「nano」などがあります。操作がわかりやすく初心者向けなのはnanoですが、私はvimを利用しています。emacsもそうですが、慣れるとテキスト処理がとても捗るエディタですので、Ubuntu上でテキスト編集も行いたい場合はどちらか試してみるのも良いと思います(勧誘)。
ブラウザ
端末上で使えるブラウザとしてはテキストブラウザの「lynx」が有名です。ですが、タブキー連打が辛すぎる、画像を表示できない等の理由で私は使うのを諦めました。大人しくWindows上のブラウザを利用しています。
テキストブラウザは他にも「w3m」や、emacs付属の「EWW」などがありますので、鋼の意志をお持ちの方はご検討ください。何気にパッケージでの機能強化が簡単にできるEWWが有力候補な気がします。
まとめ
ファイル操作とテキスト処理はrangerとvimで問題なさそうですが、ブラウザで詰んだためWSLだけで操作を完結させることはできませんでした。X Window Systemを導入する手段もあるようなので、いつか試してみたいです。
最後までお読みいただき誠にありがとうございました。