黒い画面がキライな人へ


ターミナルとかシェルとかコンソールとかよくわからんけど、文字がずらずらしててピコピコしてる通称:黒い画面。「なんか怖い」とか「なんで使うのかわからない」というのをよく聞くので、そういえばなんで使ってるんだっけ?と思った次第です。ちなみに僕は黒い画面が苦手です。

そういえば何故

  • そもそもGUIが使えないことがある
  • マウスポチポチで出来ないことができる(こともある)
  • 楽!(なこともある)
  • 早い!(こともある)

GUIが使えない状況とは

コンピューターがディスプレイやマウスとつながっているからアイコンやボタンをポチポチ出来るのですが、つながっていない、もしくはそのマウスを操作できない、という状況があります。インフラの人が触っている所謂サーバーというやつは大体そうです。海外にあったり、そもそも人が立ち入れないところに設置されていたりしますので、遠隔地からコントロールするしかないです。
そういうコンピューターでGUIを使えるようにする仕組みもあるのですが、余計な工数を使って余計なマシンリソースを割くことになるので、あまり好まれません。
ポチポチして出来ることは黒い画面にコマンドを打ち込むことで可能なので、皆さんそうやって済ませています。

ポチポチで出来ないこととは

いろんなソフトウェアはゲームの裏技のようにたくさんの機能が隠されています。Macもシステム環境設定などでは変更できない項目をターミナルでコマンドを実行する形で変更できるものがあるのは有名です。

エンジニアのお仕事ではインストーラーが配布されていないアプリケーション(的なもの)を使うことがとても多いです。インストーラーが配布されることもありますが、ダウンロード->解凍->インストールなどせずにコマンド1行でインストールできたりしますし、そのリリースを待っているのもナンセンスです。

楽?

例えばSourceTreeを使ってGitでコミットする例ですが、

ポチして、メッセージをいれて、ポチですね。他のクライアントでもだいたい同じような感じかと。
コマンドだと、こう。

git commit -am 'commit message'

この方が楽、って感じる人もいるんです。

早い?

Finderで必要なファイルの場所まで、

ポチポチポチと。
ターミナルでこう。

cd /usr/local/bin

この方が早い、って感じる人もいるんです。

使う必要がないところでは使わなくてもいい。派

さて、さも万能であるかのように紹介してきましたが、僕はとても苦手です。
なぜかというと、覚えることがとても多く、業務をすべてカバーするのはとても大変だからです。前述のGitではもちろんコマンドを使うほうが早いのですが、僕のように常時コミットしてるわけではない人間にはとてもじゃないですが覚えきれません。SourceTreeForkなどのAppにはよく使う機能はだいたい揃ってます。Git初学者にはこれらのクライアントで触り始めてもらうほうがイメージしてもらいやすいですしウケがいいです。

こちらはDocker初学者におすすめのコンテナ管理App:Kitematic

また一般的に、GUIを備えたクライアントアプリケーションは情報量が多く、一覧性に優れていることが多いと思います。その道のプロフェッショナルは勘所が働くのですべてが見えている必要はないかもしれませんが、見落としやミスが発生するくらいならこういうものに頼るのも手だと思っています。

まとめ

一応書いておくと、使いこなす必要はなくとも確実にスキルややれることの幅が広がりますので、チュートリアルや各種ドキュメントなどを読んで、適宜実行できる程度には使えるようになっておくことをおすすめします。
インストーラーのボタンとインストール用コマンドが並んでいる時にターミナルでコマンドを叩いてみる勇気を!

ということでHeroku cliでもインストールしておきましょうか?

おまけ

ターミナルとかコンソールとか用語的な話は下記を読むと理解できるかも。
【初心者向け】シェル・ターミナル・コンソールの違いとは?