CLI と GUI
CLI(Command Line Interface)と GUI(Graphical User Interface)について紹介します。この章ではとくに手を動かすことはないので、肩の力を抜いて読み進めてください。
CLI と GUI
これらはともに画面の構成や機能(インターフェース)に関する概念です。
- CLI ... 画面に同じ大きさの文字だけが並んでいて、文字を打ち込むことだけができる
- GUI ... 画面が縦横に区切られたり、場所ごとに字の大きさが調節されたりして見やすいレイアウトがなされている。文字を打ち込むだけでなく、ボタンをクリックしたりできる
と考えておおよそ間違いはないと思います。
MS-DOS と Windows
Microsoft が MS-DOS という OS を発表したのは 1981 年のことです。MS-DOS そのものには「ウィンドウ」とか「(画面に表示される)ボタン」のような概念が存在せず、基本的な MS-DOS の操作は(ハッカーのステレオタイプみたいに)文字だけの画面に対してキーボードでコマンドを入力することだけでした。1985 年に Microsoft は MS-DOS 上で動作する GUI 環境「Windows 1.0」をリリースし、これによって今の PC に近い使用感で操作できるようになりました。「Windows」という名前はこの「ウィンドウ」という概念の採用に由来するとも言われています(諸説あり)。
https://ja.wikipedia.org/wiki/MS-DOS
MS-DOS が提供していた「文字の入力と表示だけができる」インターフェースは CLI、Windows が可能にした「見やすい画面を分かりやすく操作できる」インターフェースは GUI のよい例と言えます。
今ではほぼ全ての PC の OS に GUI が採用されていますが、CLI は ターミナル と呼ばれるアプリケーションとして残されています。とはいえ多くの人にとって CLI は馴染みがなく、プログラミング基礎講習会 で初めて触った人もいると思います。
なぜ CLI を使うのか
一般ユーザー向けのソフトウェアには視覚的に分かりやすい GUI が用意されることがほとんどですが、開発に用いられるソフトウェアには CLI での操作のみを受け付けるものも多く存在します。一聴すると不便な話ですが、いくつか理由はありそうです。
- GUI を見やすく作り、継続的に管理していくことは思ったよりも大変
- 元からソフトウェアが複雑なことをしていたら、いろいろ考えて GUI を用意しても結局分かりやすくならない場合もある
- ユーザーとしても、ソフトウェア同士の連動や自動化をするなら CLI の方が扱いやすい
CLI としての Git
Git は CLI で動作するソフトウェアの一つです。traP、とくに SysAd 班での活動では、CLI で動作するソフトウェアの幾つかに慣れ親しんだり、今まで便利に扱ってきたアプリケーションの中に CLI ソフトウェアを見出したりすることがあるかも知れません。もしあなたがその類のソフトウェアを扱ったことがないならば、Git はその記念すべき第 1 号として触ってみるに相応しいソフトウェアであると言えます。
Git はたとえば以下のようなコマンドによって操作します。最初の git
が Git に対するコマンドの指定です。Git に限らず多くの CLI ソフトウェアのコマンドは使用するソフトウェアを指定する接頭辞をつけます。それぞれのコマンドの意味は前編の後半に説明します。
$ git clone {リポジトリURI}
$ git checkout {ブランチ名}
$ git pull origin {ブランチ名}
$ git push
$ git merge {ブランチ名}
以下を実行すると、Git の操作で使用可能な全てのコマンドを見ることができます。
$ git help
GUI としても提供される Git
上で挙げたコマンドのうち、普段の開発で頻繁にターミナルに入力する必要があるのは clone
だけだったりします。なぜなら、少なくとも VSCode(そしておそらくその他いくつかのメジャーなコードエディタ)では Git のコマンドもサポートされ GUI の操作に組み込まれているからです。「Git は CLI ソフトウェアだ」という話をしたばかりですが、あまりに便利で利用者が多いので各社が勝手に対応する GUI を作って自社サービスに載せています。
次の章から、いよいよ Git を触ります。