【初心者向け】CLI(コマンド操作)を敬遠してしまう人へ

記事

 ということでCLI(コマンドラインインターフェイス)に最近まで馴染みが無かったわたしなのですが、先日のUbuntuMATEが契機となってコマンド操作を積極的に使うようになったので、
今、”GUI操作に慣れていた時の気持ち”と”CLIを便利に感じたとき・なにを敬遠していたのか”を言語化しやすい狭間の時期だと思ったので、本記事を書きました。

 普段、WindowsなどのアイコンなどでのGUI操作に慣れていて、
「CLI、コマンド操作ってなんだよ・・・。なんでわかりにくいものを使うの?」
といった人にCLIを使う理由が少しでも伝わればいいなと思います。
(CLIを使いたいと考えている人に対しては全部をCLIで操作せよ!ではなく、適材適所、使いやすい場面があることを知ってもらいたいな・・・という感じです。)

 それではどうぞ。

CLIってなんか頭に入ってこないんだよね・・・という人へ

そもそもGUI・CUIって何?(一応ね・・・)

 この記事を読んでいただいている時点で、この辺の区別はわかるとは思いますが、一応の概要をば。

  • GUI(グラフィカルユーザーインターフェースの略称)
    ‐普段使っているWindowsやMacにおける、アイコンや特定領域をポインティングデバイス(マウスやタッチパッドなど)で”クリックやドラッグ操作”することによってレスポンス(操作の結果)を得るUIのこと。
  • CLI(コマンドラインインターフェースの略称)
    ‐コマンドプロンプトやWindowsPowerShell、ターミナル(Linux、Mac)のように特定のコマンドによってディレクトリやファイルなどの操作を行うインターフェースのこと。
    似たような言葉にCUI(キャラクターユーザーインターフェース)があるが、そちらは英語圏的にはTUI(テキストベースドユーザーインターフェース)の方が近いみたいですね。
    (つまりCLI≠CUI、CUI≒TUIみたいです。)

GUIに染まっている人がなぜCLIを敬遠するのか?

 私も長年、GUI(Windows)に浸かっていたのですが、プログラミングを勉強するとなると否が応にもCLIに触れなければならない場面が出てくると思うんですよね・・・。正直、そんな場面でコピペしたコマンドを使っててもピンと来てなかったのですが、ピンとこない理由って大体この辺だと思うんですよね。

  • CLIという概念が分からない
    ↳子供のころからGUI環境に慣れ親しみ過ぎた
  • CLIの種類がよくわからない
  • コマンドの種類が分からない・アイコンを右クリックしたときのような選択肢の可視化がない
  • ディレクトリの位置が把握しきれない・ディレクトリの構造なんて覚えてらんない

 順に追っていきますと、最初はシンプルにCLIってなんやねんが来ると思うんですよ。
アイコンをクリックしてを繰り返していると、「えっ、コマンドで操作って、文字で操作ってどうやるの・・・?」って感じでそもそも想像できないんですよね。もうパソコンといえば子供のころから学校の授業含めWindowsのGUI環境だったので、キーボードが文章入力程度の役割にしかなってなかったんですよね。(Windows以前のMS-DOSとかが全盛期だったころは違うんでしょうが・・・)

 次にCLIの種類が意味わかんないっていうところっすかね。同じWindowsでもコマンドプロンプト、PowerShellがあって「どっち使えばいいの・・・?」って初心者はなると思うんですよね。(実際にはコマンドプロンプトでできることはPowerShellでできるはず・・・だよね?)
さらには各ソフトウェア内にもコマンドがあって特有のCLI、コマンド操作が必要になったらさらに頭が混乱するわけですよ。

 そしてなにより、コマンドが分からない!
これに関しては検索して調べればいいんですけど・・・でもCLIを使わない人がいちいちコマンドを検索してまでCLIを使うかな?となっちゃうのでそれなりに目的意識、CLIを使う必然性が求められるようになっちゃうんですよね・・・。そしてそれが初心者にはハードルになると。
そしてそれに通じて、GUIにてアイコンを右クリックしたときのような操作の選択肢の可視化がないのも違う点ですよね。GUIが可能な操作を表示するのに対して、CLIは自分でしたい操作を明示しなければならないという点ですね・・・。

 最後のディレクトリ構造の把握については、慣れている人は全部を把握している(頭の中にある)人もいるのかもしれないですけど、GUIで操作していたら同階層のディレクトリは覚えていなくても表示されるので、あまり覚えきっている人は少ないのではないかなと・・・。(ある程度、どのあたりにあるか分かればいい。)
ゆえにいざコマンドで操作するとなった時に、半角英数でスペル間違ってないかなと思いながら(あるいは実際のディレクトリを確認しながら)、ディレクトリ名を入力しないといけないわけで、そこも少し馴染みにくいところなのかなと。

それならばGUIに慣れた人にとって、CLIを使う必然性は?

 先の話題を受けて、「こんだけめんどくさいんだったら使わなくてよくない?」と思うことでしょう。実際、必要に迫られなければ使わなくていいと思います。通常の資料づくり(ExcelやWordなど)、アプリケーション(ゲームや既成のソフトウェア)、ブラウザ(YouTube、ウェブサイト閲覧など)などの使用であれば基本的に使用する必要はないと思います。

 ではどこで必要になるかと言えば、”スクリプトによる特定操作手順のマクロ化”や”プログラミング周りの環境整備”、”サーバー関係”、”特定のOS環境”によるというところがパッと思いつくところですかね。
自分も最初に述べたようにそこまでコマンド操作に対する解像度が高いわけではないのですが、特定の操作を必要とする業務であればバッチファイルで特定の操作を行うスクリプトを作成して日々の操作を自動化できますし、プログラミングの環境(コンパイラやパッケージマネージャ等)の導入手順としてコマンド操作で行う方が便利だったりします。
特定のOS環境については特にLinuxになるのですが、LinuxはデスクトップOSとしてWindowsやMacと並ぶこともありますが、サーバー用途としてのシェア率が高いのは周知のことですよね?
サーバー用のGUIなどもあるのかもしれませんが、サーバー管理をする人って大体PCの扱いに熟達していますよね。であればコマンド操作で事足りるのにわざわざGUIを開発するコストをかける必要性はなかったということですね。(コマンド操作全盛期からそれだけでやってこれた&受け継いできた、セキュリティの問題から汎用的なGUIが入りえなかった?のかもしれませんね)

 というわけで比較的フレッシュな人がコマンド操作を使うことになる必然性としては

  • Linux系デスクトップOSもしくはサーバーでやりたいことがある
  • 新しいプログラミング言語を学びたい(環境が欲しい)
  • 特定作業の効率化・自動化

なのかな・・・?
自分がこういうところに魅力を感じたなと思っただけなので、人によって入口にしたいところは全然違うとは思いますが・・・。(なにはともあれ、興味が湧いたら飛び込んでみよう!!!)

じゃあ、これを入口にしてみたらどうかな?という提案

 それでは上記の必然性を考えて、コマンド操作を取り入れる実際の行動、”入口”的なものを考えてみましょうか。
なぜかというと「世の中、堅苦しくて理解が苦しくなる記事があふれてますけど、気楽に入れてみればいいんです・・・」というと「何かでつまって使わなくなってストレージの片隅に放置」という流れになるのであまり気楽にいえないんですよね・・・。(私も数多くの経験あり・・・)
なので一応の入り口は提示しておこうかな・・・ということです。

 まず一つ目の提案が
CLIを使うのはディレクトリの構造を把握できる小規模なフォルダから始めてみては?
ということ。
↳苦手意識を持つ人(筆者の体験)は初めからルートディレクトリ含めて全体の管理をしようとして、ディレクトリ構造が把握できず”どこに何をおいてあるのか”が分からなくなってしまうというのがあると思うんですよね。
広すぎて把握しきれてないディレクトリを頑張って操作しようとするので
“cdコマンドなどのディレクトリ移動・操作系のコマンドで操作するよりGUIでディレクトリの中身を確認しながら操作したほうが早いんじゃね”
という思考になるんじゃないかなと。

 そして二つ目が
ディレクトリの数が少ないであろう新規に使い始めるPC(OS)
または新規のプログラミングプロジェクトのディレクトリ管理で心機一転使い始める
ってところですかね。
↳上記と言っていることはほぼ同じですけど、こちらは”新しく始める”といったタイミングの問題ですかね。個人的な体験ですが、Linux(Ubuntu)の使い始めから積極的にCLIを使い始めたのですが、余分なファイルがない(デフォルトのファイルしかない)分、ディレクトリ配置が複雑化していないのでコマンド操作が使いやすかった感覚はたしかにあったのでそういった環境の変更時に触り始めるのも一手な気がする。

 最後にこれは心得的な話なのですが、
コマンドのチートシートを見ながらで全然いいのよ・・・!
というところですね。
↳人間は習慣化していないことは覚えてられないに決まっていますから、最初・・・というかずっとでもいいからコマンドのチートシートを見ながら操作でいいのよ・・・!という心構えで行きましょう。日々の積み重ねが大事なのです。

個人的に思う入口として入りやすいところはこんなところですかね・・・。

最後に

 うーーーん、あまり初心者を後押し・参考にできるような記事になったかは微妙なところかもと思っちゃいますね・・・。あくまで私の体験を書いて同じような気持ちを抱いている人の一助・一歩踏み出す気になれればなという気持ちで書いた記事なので、内容薄いかもしれないです、ごめんなさい。

 それでもコマンドを使い始めて、なんか作業が楽しく進められるようになったんですよね。というよりもある日を境に寝て起きたら、なんかコマンド操作の概念がスッと頭に入ってきたんですよ・・・。
なのでなにかに詰まって、「うおぉぉ、何もわかんねぇ」ってなった時は

寝るのが一番

です。
そんな時間は無ぇという方が多くいらっしゃると思いますが、個人的な体感としては一番解決率が高い気がします。(寝ずに頭をひねるよりは)
というわけでここまでのご精読ありがとうございました。

タイトルとURLをコピーしました