なぜCUIを使うのか

そもそもコマンドラインとは何か?


↑これ。

つまりはキーボードで操作するソフトウェア。CUI(キャラクター・ユーザー・インターフェイス)/CLI(コマンドライン・インターフェイス)ともいう。より厳密に言えばその中の入力行のこと。
Windowsではコマンドプロンプト、Mac/Linuxではターミナルと名前は違うが働きとしては同じようなもの。
先日の記事でインストールしたubuntuはLinuxOSのコマンドライン部分。ではこのコマンドライン、実際何をしているのか?

コマンドライン操作はシェルとの対話である。

コマンドラインはユーザーからの入力を受け付け、OSのシェルにその命令を伝える。

シェルとは?

OSの中核部分(カーネル)と人間との橋渡しをする、カーネルを包み込む殻(shell)のようなもの。
人間はOSのカーネルを直接操作できないので、シェルと対話してカーネルにその命令を伝えてもらわなければならない。
このとき使うのがコマンドライン。
シェルと対話するプログラムのため、コマンドラインのことを指してシェルという場合もある。

ではなぜコマンドラインを使うのか?利点をあげてみる。

利点① 大量の処理を行う場合の作業効率

ファイルの作成、コピー、移動、リネームなどを一度に大量に行う場合、GUI(グラフィカル・ユーザー・インターフェイス。エクスプローラやファインダーなど普通にマウスで操作できる画面)だと大変な作業になるが、それがCUIだと1行コマンドを書くだけで事足りることもある。

例えばindex.html、style.css、readme.txtの空ファイル3つを作成するとする。
GUIでやろうと思うと、まずフォルダに移動→右クリックして新規作成→テキストドキュメント→名前を付けて拡張子を変更という作業を3回行わなければならない。
これをLinuxのコマンドラインで行うとこうなる。(ファイルを作成したいフォルダに移動してから)

touch index.html style.css readme.txt

扱うファイルが大量になればなるほど、コマンドラインの優位性は高くなる。

利点② シェルスクリプトで作業を自動化できる

シェルスクリプトとは簡単に言えばコマンドラインへの命令を1つのファイルにまとめたもの。
これによって同じ作業を繰り返すような場合、GUIと比べるとその作業効率は雲泥の差になる。
例として先程のコマンドをscript.shという名前のファイルに保存してみる。

#!/bin/bash
touch index.html style.css readme.txt;exit 0

1行目はシェバン行と呼ばれ、このファイルを動作させるプログラムは何かということを指定している。この場合はbash(Linuxのコマンドライン)。
これを任意のディレクトリに移動して実行。

sh script.sh

すると、そこに3つの空ファイルが出来上がる。

例として簡単な空ファイル作成を挙げたが、もっと複雑なファイル操作があったとしても、その一連の流れをこうしてシェルスクリプトとしてファイルに保存し、任意のディレクトリで実行できるようにしておけるのは大きな利点。

コマンドラインは他にもパッケージ管理ソフトとの相性が良かったり、様々な利点がある。というかプログラミングをするのであれば避けては通れないので、早めに慣れておくほうがいい。
とっつきにくい感のあるコマンドラインだが、使い方を知るとかなり便利に使えるのでぜひ。

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