
ターミナルで遊ぼう!(Windowsユーザー向け)
ターミナルで遊んでいると、コマンドラインに慣れるし、新しいツールや技術も自然に覚えられます。楽しみながら新しいコマンドを試しているうちに、覚えたことは頭に残りますし、自信もついてきます。遊びで身につけた知識やスキルが、そのまま仕事で役に立つこともよくあります。
Windows Terminal
頻繁に使うツールは楽しんで使いたいものですね。例えばギターを始めるとき、安すぎるギターを買うと、弾きにくいし触るのも楽しくないし、結局なかなか上達しないままになりがちです。ターミナルも同じです。出来のいいアプリを使っていないと、使い勝手の悪さだけでターミナルが嫌いになってしまいます。
Microsoft は「Windows Terminal」という公式の使いやすいターミナルアプリを出しています。Command、Powershell、Git bash といった別々の環境を、同じアプリの中で切り替えられます。テキストの選択やコピー、貼り付けも自然です。選択はマウス、コピーは「Ctrl+C」、貼り付けは「Ctrl+V」。想像したとおりに動きます。
Windows Terminal のインストール方法
手順は次のとおりです。
- スタートメニューから「Microsoft Store」を開きます。
- 右上にある検索ボックスに「Windows Terminal」と入力します。
- 検索結果から「Windows Terminal」を選択します。
- 「取得」または「インストール」ボタンをクリックします。
これで Windows Terminal が使えるようになります。
パッケージマネージャ
パッケージマネージャとは、ソフトウェアパッケージのインストール、更新、削除などの管理を一元的に行うためのツールです。主に Linux 系の OS で人気ですが、Windows でも使えます。
入れたいソフトウェアを指定するだけで、あとは全部やってくれます。例えば、 choco install vscode だけで Visual Studio Code が入ります。手で入れると面倒なコマンドラインツールほど、ありがたさがわかります。
Windows 向けでよく使われているのは「Winget」「Chocolatey」「Scoop」の 3 つです。
Winget は Microsoft が作った公式のパッケージマネージャ。Chocolatey はかなり早くからあって、対応しているソフトウェアが多く、GUI を持つアプリも入れられます。Scoop はユーザー権限でソフトウェアを入れるのが特徴で、細かく自分で決めたい人に向いています。
Winget のインストール
Winget は比較的新しいので、対応しているソフトウェアの数は他のパッケージマネージャより少ないです。今日の記事では使いませんが、公式のものなので知っておいて損はないと思います。Windows 10 を実行している PC なら、次の手順でインストールできます。
- Microsoft Store を開きます。
- 検索ボックスに「App Installer」と入力します。
- 「App Installer」をインストールします。
これで、Windows Terminal やコマンドプロンプトから「winget」コマンドを利用できます。
Chocolatey のインストール
Chocolatey はコマンドラインから入れます。
- 「PowerShell」を開き、それを「管理者として実行」します。
- 以下のコマンドを入力します:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
これで Chocolatey が入りました。
Scoop のインストール
Scoop も同じくコマンドラインから入れます。
- 「PowerShell」を開き、それを「管理者として実行」します。
- 以下のコマンドを入力します:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
iwr -useb get.scoop.sh | iex
これで完了です。Scoop はユーザー権限で動くので、実は管理者権限はいりません。
楽しいコマンド
コマンドラインを使っているときも、やっぱり楽しみたいものです。そこで「ntop」「cowsay」「figlet」「meow」という遊び心のあるコマンドを見ていきます。
ntop
ntop は、htop という人気の Linux ツールを Windows に移植したものです。システムのリソース使用状況をリアルタイムに監視するツールで、CPU 使用率、メモリ使用量、実行中のプロセスなどを目で見てわかる形に表示します。
Chocolatey で入れられます。
choco install ntop.portable -y
ntop を起動するには、ターミナルから「ntop」というコマンドを実行します。
ntop
すると、リアルタイムのシステムリソース使用状況が表示されます。

実用的な使い道もあって、どのプロセスが CPU とメモリをどれだけ使っているか確認できます。ただ、今日これを紹介する一番の理由は、使っているとハッカー気分になっちゃうからです。😅
cowsay
cowsay は、入力したテキストを話すアスキーアートの牛を生成するコマンドです。以下の手順でインストールできます。
- 「PowerShell」を開き、それを「管理者として実行」します。
- Scoop を使ってインストールするには、以下のコマンドを入力します:
scoop install cowsay
cowsay を使うには、「cowsay」の後ろに話させたいメッセージを書きます。例えば:
cowsay "モーモー"
入力したメッセージを牛がしゃべっているアスキーアートが出てきます。

figlet
figlet は、大きな文字でテキストを表示するコマンドです。インストールは以下の手順で行います。
- PowerShell を開き、以下のコマンドを入力します:
choco install figlet-go -y
figlet も同じで、「figlet」の後ろに表示させたいテキストを書きます。例えば:
figlet Hello, world!
これで「Hello, world!」が大きな文字で表示されます。

meow
meow は lolcat という名前の人気のある Linux コマンドを Windows に移植したものです。以下のようにバケットを追加すれば、scoop 経由でインストールすることができます。
scoop bucket add extras
scoop install meow
meow はコマンドラインの出力に虹色をつけるツールです。白黒でつまらなかった出力が、一気に賑やかになります。
meow "Hello, world!"
「Hello, world!」が虹色で表示されます。

パイプで組み合わせる
パイプは、コマンドラインの機能の中でも便利で、しかも面白いものです。パイプ(記号では「|」)を使うと、一つのコマンドの出力を次のコマンドの入力にできます。そのため、複数のコマンドをつなげて、複雑な操作を一行で書けます。
Powershell の「ls」と「meow」で試してみます。
「ls」は現在のディレクトリの内容を一覧表示するコマンドで、「meow」はさっき覚えた虹色のコマンドです。
この二つをパイプでつなげてみましょう。
ls | meow
こんな感じになります。

今日覚えたコマンド同士をつなげることもできます。こうなると、もっと自由に遊べます。
例えば「figlet」で「Hello, World!」をアスキーアートに変え、「meow」で色を付けてみます。
figlet "Hello, World!" | meow

大きなアスキーアートになった「Hello, World!」に、meow が色をつけてくれます。
「cowsay」もパイプに足せます。大きくなった「Hello, World!」を、牛にしゃべらせてみましょう。
figlet "Hello, World!" | cowsay

もちろん「meow」と「cowsay」の両方を使ってもかまいません。
figlet "Hello, World!" | meow | cowsay
虹色になった大きな「Hello, World!」を、牛が吹き出しでしゃべります。

実践的なパイプの例
今まで楽しい例を見てきましたが、実用的な例を見てみましょう。
「ls」はこの記事ですでに使った、ディレクトリの内容を一覧表示するコマンドです。
これに「grep」を組み合わせます。grep は文字列検索のツールで、指定したパターンに一致する行だけを取り出します。Windows では Git Bash に最初から入っています (Chocolatey を使って Powershell に入れることもできます)。
コマンドは次のようになります。
ls | grep 'json'
「ls」の出力が「grep」の入力になり、その中から「json」を含む行だけが残ります。つまり、現在のディレクトリで名前に「json」が入っているファイルを探せます。
ネット上の楽しみを味わおう
ネットにつなぐと、遊べる幅がもう少し広がります。面白いコマンドを 2 つ。
まず、今日の天気を調べたいときは「curl」コマンドを使用します。「curl」コマンドは、ネットワークを通じてデータを送受信するためのツールです。以下のコマンドは、沖縄県那覇市の天気を表示する例です:
Powershell で実行する場合、
(curl "http://wttr.in/Naha%20City,Okinawa,Japan?tqp0").Content
Git Bash で実行する場合、
curl "http://wttr.in/Naha%20City,Okinawa,Japan?tqp0"
このコマンドを実行すると、那覇市の現在の天気、気温、風速などが表示されます。

映画が見たくなったら「telnet」コマンドです。「telnet」は、遠隔地のコンピュータに接続するためのツールです。以下のコマンドは、ASCII アートで描かれた「スターウォーズ」を視聴する例です:
telnet towel.blinkenlights.nl
実行すると ASCII アートのアニメーションが始まり、「スターウォーズ」の物語が流れていきます。

まとめ
今日はコマンドラインで遊びました。「meow」で出力をカラフルにするところから始めて、パイプで複数のコマンドをつなげ、複雑なことを一行で書いてみました。「curl」で天気を調べたり、「telnet」で ASCII アート版の「スターウォーズ」を見たりもしました。
コマンドラインは最初は少し難しく感じますが、それは単に初めてだからです。基本的なコマンドをいくつか覚えて慣れてくると、作業を効率よく進める強力な道具になり、ときには実験の遊び場にもなります。
この記事は元々 Qiita に掲載されています。