LINEで現役エンジニアに直接質問してみよう!登録無料

LinuxのCLIでコマンドを実行し操作する方法

LinuxのCLI(コマンドラインインターフェース)とは?

「プログラマ」と言われると、このような「黒い画面」をイメージする人もいるのではないでしょうか? あれが、Linuxを操作する時に使われる「CLI(コマンドラインインターフェース)」と呼ばれるものです。

ハッカーがよく使っているイメージから、怪しい感じがしますが、全くそんな事は無くむしろこれを使い操作出来る事がものすごく求められます。Linuxを使う人なら誰もが知っていなきゃいけない基本技術なのです。

CLIを使うと、ネットワーク設定の変更、デバイス設定の変更、Webサーバー、DBサーバーの設定や、Linuxカーネルの変更、ICへのプログラム書き込み、SDカードやUSBメモリの1バイト単位のアクセス、機械学習プログラムの実行等、PCを使ったありとあらゆる操作を行うことが出来るようになります。

キツネ

マウスを使ってボタンやスクロールバーを操作するプログラム、GUI(グラフィックユーザーインターフェース)も実は裏側でCLIが動いていたりするだ。

コンソールとは何が違うの?

コンソールとは、WindowsについているCLIです。OSが違うので異なったコマンドを使わないと操作することが出来ません。

操作感もLinuxとはだいぶ異なり、扱いづらく昔からあるプログラムを実行したり、玄人が使ったりしています。Linuxよりは出番が少ないので、あまり覚える必要はありません。

LinuxではどうしてCLIを使うことが多いのか?

Linuxでの操作にはCLIを使うのが普通です。なぜGUIではなく、CLIを使うことが多いのでしょうか? それには、このヨウンな理由があるからです。

  1. CLIでしか操作出来ない項目があるため
  2. GUIを動作させると、PCのリソースが無駄になるため(GUI動かす能力をCLIをより高速に動かす事に使いたい)
  3. GUIでCLIと同等の操作が出来るプログラムが出るまで時間がかかるため
  4. CLIは、操作する内容をプログラムとして書きやすいため
  5. GUIでは遠隔操作するのに大きなネットワーク帯域が必要なため

CLIでしか操作出来ない項目があるため

Linuxのコマンドの中には、GUIに対応しておらずCLIでしか操作出来ない箇所も存在します。 又、新機能が開発される時、GUIよりもCLIから操作できるコマンドを開発したほうが早く作れます。

GUIを動作させると、PCのリソースが無駄になるため

GUIを動かすと、その分メモリやCPUを使います。Linuxはサーバー用途に使われることが多いので、GUIは管理者以外にメリットがありません。そのため、GUIを動かす能力を割くぐらいなら、コマンドをもっと高速に動かせるようにした方がメリットが大きいのです。

GUIでCLIと同等の操作が出来るプログラムが出るまで時間がかかるため

GUIを作る時、CLIよりも多くのことに気を配らなくてはいけません。ボタンや文字入力欄の配置や長さ、ボタン、タブが押された時にどのような挙動にするか、次に表示する画面の情報について等、沢山考えるべきことがあります。

しかし、CLIでは、「どんな文字列が入力されるのか」について考慮すればよく、GUIと比べて開発速度に大きな差があります。

CLIは、操作する内容をプログラムとして書きやすいため

CLIには「bash」「csh」「zsh」等、shellと呼ばれるソフトウェアを使います。このソフトウェアには、「どのような操作を行うのかプログラムして実行する」ことが出来ます。

もし、何十何百というパソコンをGUIを使って1から設定すると考えると、とても時間がかかりますし手間です。 しかし、プログラムを実行させるだけで良いのであれば、GUIを使って操作する必要な無くなります。

GUIでは遠隔操作するのに大きなネットワーク帯域が必要なため

GUIで操作をするには、「PCにモニタを繋いで操作」か「ネットワーク越しに操作」の2種類があります。後者の場合、大きく高速なネットワーク帯域が必要です。

大体、youtubeを見ることが出来る位の帯域が必要だと思えばいいでしょう。

この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。