WSL活用の第一歩、Linuxのコマンド実行とアプリの追加をマスターしよう:WSLスターターガイド
Windows 10/11上でLinux環境が簡単に構築できる拡張機能「Linux用Windowsサブシステム(WSL)」は、シームレスにWindows OSとLinuxが利用できる便利な機能だ。今回は、Ubuntu上のコマンドを実行する方法や、コマンドなどを追加する方法について解説する。

WSL上でLinuxのコマンドを実行したりアプリを追加したりしよう
「Linux用Windowsサブシステム(WSL)」は、シームレスにWindows OSとLinuxが利用できる便利な機能だ。今回は、Ubuntu上のコマンドを実行する方法や、コマンドなどを追加する方法について解説する。
WSLスターターガイド「始めてみようWSL、WSLを使ってWindowsにLinuxをインストールする」では、Windows OSの拡張機能「Linux用Windowsサブシステム(WSL)」と、WSL上で実行するUbuntuのインストール方法を紹介した。WSLが提供された当初からインストール方法が変わり、かなり簡単になったことに驚いた人もいたと思う。
今回は、Ubuntu上のコマンドを実行する方法や、コマンドやアプリケーションを追加する方法などについて解説していく。
WSL上のUbuntuでコマンドを実行する
WSL上にインストールしたUbuntuを実行するには、Windowsターミナルを起動して[v(新しいタブを開く)]アイコンをクリックして、表示されたメニューで[Ubuntu]を選択するか、[スタート]メニューの[すべてのアプリ]画面で[Ubuntu]をクリックすればよい。WSLでUbuntuをインストールした直後の場合、Windowsターミナルに[Ubuntu]が表示されない場合があるが、この場合は一度Windowsターミナルを終了して再度起動すればよい。
WindowsターミナルのUbuntuでコマンドを入力すれば、さまざまな操作が可能だ。Windows OSのコマンドプロンプトに相当するものと考えると分かりやすい。実際、Windows OS(その前身となるMS-DOS)には、UNIXを参考にして作成されたものも多く、同じ名前のコマンドも多い。ただし、オプションや出力結果が異なることもある点には注意が必要だ。
Ubuntuのターミナルで、試しにバージョンが確認できるコマンド「lsb_release -a」を入力して、[Enter]キーを押してみよう。下画面のようにディストリビューション名やバージョンなどが表示されるはずだ。

バージョンを表示するコマンドを実行してみる
バージョンが確認できるコマンド「lsb_release -a」を入力して、[Enter]キーを押してみる。WSLにインストールされているLinuxディストリビューションのバージョンなどが表示されるはずだ。
ディレクトリを移動するには、Windows OSのプロンプトと同様、「cd」コマンドを使う。注意が必要なのは、ディレクトリの区切りを示す記号が、コマンドプロンプトが「\」なのに対し、Linuxでは「/」になっている点だ。例えば、トップディレクトリ(ルートディレクトリ)に移動する場合、コマンドプロンプトでは「cd \」とするが、Linuxでは「cd /」となる。うっかり間違えてしまうことが多いので気を付けてほしい。
[Ubuntu]タブを開いた際のカレントディレクトリは ユーザーのホームディレクトリ「/home/<ユーザー名>]だ。ここで「cd /」と入力して、トップディレクトリまで移動、「ls」と入力して、[Enter]キーを押してみよう。コマンドプロンプトで「dir」と入力したのと同様、カレントディレクトリ内のファイルやフォルダが表示されるはずだ。
ちなみにUbuntuでも、Windows OSのコマンドラインと同じ「dir」コマンドはサポートされているが、出力が少し異なる点に注意してほしい。「ls」コマンドではディレクトリや設定ファイルなどの色が異なって表示されるが、「dir」コマンドでは全て同色で出力される。Windowsユーザーとしては「dir」コマンドの方がなじみがあると思うが、Ubuntuでは「ls」コマンドを使った方が出力が分かりやすいだろう。

ディレクトリの内容を表示する(lsの場合)
「cd /」でトップディレクトリまで移動して、「ls」コマンドを実行してみよう。「ls」コマンドでは、画面のようにディレクトリやファイルの違いなどが色違いで表示される。
この他、「mkdir <ディレクトリ名>」コマンドでディレクトリの作成、「pwd」でカレントディレクトリのフルパスが表示される。
WSL上のUbuntuを終了したい場合、「exit」コマンドを実行する。自動的にログアウトが実行され、プロセスが終了する。Windowsターミナルの[Ubuntu]タブも閉じるはずだ。バージョンによっては、Windowsターミナルで「Ubuntu」などを開いている場合、[Ctrl]+[D]キーを押さないと、タブが閉じないこともあるようだ(この場合、[Enter]キーを押すと再起動して、再び「Ubuntu」などが起動する)。
WSL上のLinuxディストリビューションを使いこなすには、Linuxディストリビューションが実装しているコマンドを覚えなければならず、この点、少しハードルが高くなってしまう。ただ、よく使うコマンドは自然と覚えるものなので、随時、調べながら根気よく使い続けるとよい。
Ubuntu上にコマンドやアプリケーションをインストールする
「Ubuntu」などLinuxディストリビューションには、さまざまなコマンドやアプリケーションが標準でインストールされている。しかし、その他にも、より便利な機能を持つコマンドなどが数多く用意されている。そうしたコマンドなどをインストールするには、UbuntuやDebianの場合、コマンドラインのパッケージ管理ツール「apt」コマンドを利用する(他のLinuxディストリビューションでは異なるコマンドラインのパッケージ管理ツールが用意されている)。
「apt」コマンドは、UbuntuやDebianのリポジトリ(パッケージ情報を管理しているサーバ)に接続して、パッケージ(コマンドやアプリケーションなど)の情報を更新したり、インストールしたりするものだ。
例えば、ファイル名を一括変換する際に正規表現でファイル名が指定可能な「rename」コマンドをインストールしたい場合、以下のようにコマンドを実行する。
sudo apt update
sudo apt install rename

「rename」コマンドをインストールする
「sudo apt update」でパッケージの一覧を更新してから、「sudo apt install rename」で「rename」コマンドをインストールする。「sudo apt update」を実行すると、パスワードの入力が求められるので、ここでUbuntuに設定したパスワードを入力する。
「sudo」コマンドは管理者権限を取得して、それに続くコマンドを実行するというものだ。「apt」コマンドは、パッケージをインストールするなどシステムに変更を加えるため、多くの場合「sudo」コマンドとセットで利用される。
「sudo apt install rename」で「rename」コマンドのインストールは可能だが、その前に「sudo apt update」を実行して、リポジトリからパッケージのリストを更新しておく。これにより、古いパッケージをインストールしてしまうことなどを防げる。
「apt」コマンドの主なコマンドは下表の通りだ。
コマンド | 説明 |
---|---|
sudo apt list <パッケージ名> | <パッケージ名>を基にパッケージの一覧を表示 |
sudo apt search <パッケージ名> | パッケージの説明を検索 |
sudo apt show <パッケージ名> | パッケージの詳細を表示 |
sudo apt install <パッケージ名> | パッケージをインストール |
sudo apt reinstall <パッケージ名> | パッケージを再インストール |
sudo apt remove <パッケージ名> | パッケージを削除 |
sudo apt autoremove | 自動インストールされ使われていない全てのパッケージを削除 |
sudo apt update | 利用可能パッケージの一覧を更新 |
sudo apt upgrade | パッケージをインストール/更新してシステムをアップグレード |
sudo apt full-upgrade | パッケージを削除/インストール/更新してシステムをアップグレード |
sudo apt edit-sources | ソース情報ファイルを編集 |
「apt」コマンドで主に使われるコマンド |
Ubuntu上でWindows 10/11のアプリケーションを実行する
WSLは、Hyper-VやVMware Workstation Proなどの仮想マシン上にLinuxディストリビューションをインストールしたのと異なり、Windows 10/11とかなりシームレスに使えるのがメリットとなっている。
Windows 10/11のC:ドライブは、自動的に「/mnt/c」にマウントされるため、Windows 10/11上のファイルやフォルダへのアクセスも容易だ。
また、ここからWindowsの実行ファイルが保存されているフォルダまでたどって、実行ファイル名を指定して[Enter]キーを押せば、Windows 10/11上のアプリケーションが起動できる。例えば、「cd」コマンドでGoogle Chromeの実行ファイル(Chrome.exe)が保存されているフォルダを開き、「./Chrome.exe」と入力して、[Enter]キーを押せば、WSL上のUbuntuからGoogle Chromeを起動することも可能だ。実行ファイルを指定する場合、「./Chrome.exe」と実行ファイル名の前に「./」を付けるのを忘れないようにする。
cd /mnt/c/'Program Files'/Google/Chrome/Application
./Chrome.exe

WSL上のUbuntuからWindows 11のアプリケーションを起動する
Windows 11のC:ドライブは、自動的に「/mnt/c」にマウントされるので、実行したいアプリケーションがあるディレクトリ(フォルダ)まで移動し、実行ファイル名を入力、[Enter]キーを押すと、UbuntuからWindowsアプリケーションが実行できる。
WSL上のUbuntuの設定ファイルを編集しなければならない場合、Ubuntu上のテキストエディタ(vimやgedit)を使うよりも、Windows 10/11上の使い慣れたテキストエディタを使いたいこともあるだろう。そのような場合、Ubuntuから実行ファイルのパスを指定してアプリケーションを起動すればよい。ただし、日本語を扱う場合は注意が必要だ。Ubuntuの文字コードはデフォルトがUTF-8なので、Windows 10/11上のテキストエディタを起動した場合はUTF-8で読み込み、UTF-8で保存する必要がある。UTF-8にしないと、Ubuntu上で文字化けを起こしてしまう。
Windows 10/11でUbuntuのコマンドを実行する
前述の「rename」コマンドなど、Windows 10/11上で実行できたら便利だと思わないだろうか。WSL上のUbuntuでWindows 10/11のアプリケーションが実行できたのと逆に、Windows 10/11上でUbuntuのコマンドも実行可能だ。
Windowsターミナルのコマンドプロンプトを開き、Ubuntuのコマンドを実行したいフォルダにカレントディレクトリを移動し、コマンド名の前に「wsl」を付けて実行すればよい。例えば、前述のファイル名を変更する「rename」コマンドを実行する場合は、以下のようにすればよい。
wsl rename 's/<置換したい文字列>/<置換後の文字列>/' <対象ファイル>
「s/〜/〜/」は“文字列”を置換するためのコマンド指定。他に、“文字”を置換する「y/〜/〜/」というコマンドもある(例:「y/a-z/A-Z/」なら小文字を大文字に変換する)。これはPerl言語の表記に基づいている。
WSLが実行された状態であれば、このようにコマンド名に「wsl」を付けるだけで、コマンドプロンプト上からUbuntuのコマンドが実行可能だ。

Linuxコマンドを使ってファイル名の一括置換を実行する(1)
Windows 11のエクスプローラーでファイル名の一括置換を実行したいフォルダを開き、アドレスバーに「cmd」と入力して、[Enter]キーを押して、コマンドプロンプトを起動する。

Linuxコマンドを使ってファイル名の一括置換を実行する(2)
[写真]フォルダをカレントディレクトリとしてコマンドプロンプトが起動するので、ここで「wsl」を付けて、「rename」コマンドを実行する。「wsl」を付けることで、コマンドプロンプト上からLinuxコマンドが直接実行できる。

Linuxコマンドを使ってファイル名の一括置換を実行する(3)
Windows 11上のファイルの名前が「rename」コマンドで一括置換できた。このようにLinuxのコマンドを使うことで、Windows 10/11上のファイル操作が容易になることもある。
WSLでは、Windows OSとLinuxディストリビューションをシームレスに利用できるので、どちらか便利な方のコマンドやアプリケーションを選んで使うことが可能だ。
今回は、WSL上のUbuntuでコマンドを実行する方法について解説した。次回は、WSL上のUbuntuで日本語入力環境を構築する方法を紹介する予定だ。
Copyright© Digital Advantage Corp. All Rights Reserved.