フリーランス
エンジニア
【初心者のインフラエンジニア必読】GUIとCUIの違いと使い分け方を解説
インフラエンジニアとして業務をしているとGUI(Graphical User Interface)とCUI(Character-based User Interface)どちらで作業するかというところが人や開発現場によって違う場合があります。当方もそのような経験があります。今回はそんなGUIとCUIの違いと使い分け方を説明します。
UI(User Interface)とは
ユーザインタフェースと読み、機器やソフトウェア、システムなどと利用者間で情報をやり取りする仕組みのことです。システムから利用者への情報の提示・表示の仕方と、利用者がシステムを操作したり情報を入力したりする手段や方式、機器、使い勝手などのことを指します。簡単に言えば画面・見た目・使い勝手のことを指します。
GUIとCUIとは
GUIとは「Graphical User Interface」の略でwindowsやMacのマウスでの操作や銀行のATMなどの画面のように直感的な操作ができます。
CUIとは「Character-based User Interface」の略でLinuxのターミナル画面やWindowsのコマンドプロンプト、ネットワーク機器のコマンド操作などのようなイメージです。
コンピュータは元々すべてCUIのコマンドベースで利用されていました。より利用者にとって利便性のある画面が必要となりGUIが開発されました。
次に同じ作業をする場合にGUIとCUIで行うと具体的にどう変わるのかwindowsとYAMAHAのルータで見ていきましょう。
・windowsでのファイルコピーの例
GUI(マウス操作)の場合
CUI(コマンドプロンプト)の場合
コマンドを「copy test.txt test_back.txt」と入力して完了
※コマンドプロンプトの場合、同じファイル名は指定できないので意図的にコピー後のファイル名は「test_back.txt」としています。
・YAMAHAのルータで初期設定を設定する例
GUI(マウス操作)の場合
ルータにLANケーブルを接続してPCからweb画面にアクセスして設定したい箇所をクリック or 値を入力
CUI(ターミナル画面)の場合
下記の画像のようなコンソールケーブルにて接続 or ネットワーク機器の管理ポートより接続後、設定したいコンフィグ例のように設定したいコンフィグをテキストベースで用意しておき、「Tera Term」にてコピー・貼り付けで設定
※ネットワーク機器をCUIで設定する場合は「Tera Term」というターミナルソフトを事前にダウンロード・インストールしておく必要があるので注意してください。
windowsとYAMAHAのルータで説明しましたが、このように同じ作業をしていてもGUIで行う場合とCUIで行う場合では手順が異なります。
GUIとCUIのメリット・デメリット
GUI
◆メリット
視覚的に操作が可能なため簡単に設定ができる
コマンドを覚える必要がない
設定内容や統計情報の確認がしやすい
◆デメリット
画面のクリック・タッチが必要なため操作ミスが起きやすい
一度に複数個所の設定変更をすることができない
CUI
◆メリット
コマンドベースで作業ができるためコマンドをテキストベースであらかじめ用意しておけば、それをコピー・貼り付けするだけで設定が可能
コマンドを打つだけで設定が即時反映されているか確認が可能
一度に複数個所の設定変更が可能
◆デメリット
コマンドを覚える必要がある
にGUIとCUIの使い分け
ネットワーク機器の場合
当方の経験上は設定確認も含めほぼ全てCUIで設定していました。ですがクラウド管理型のネットワーク機器の場合はGUIしか利用できない機器もあります。クラウド管理型はファームウェアのバグなどで設定変更したのに設定が反映されなかったこともありました。クラウド管理型は設定変更もGUIで行うので設定の確認自体は容易ですが、設定が反映されたかの確認についてもGUIでしか確認する手段がなく、実際に変更されているかは機器を設定変更後に動作させないと設定変更が完了したとは言い切れない点に注意が必要です。CUIが利用できる機器については設定の即時反映は必ずCUIで確認することをお勧めします。またネットワーク機器の中でもファイアウォールやUTMは用途によって使い分ける
事が多いです。当方の経験で例を挙げるとファイアウォールのテストの際、ログの確認はCUIだと見えづらいのでGUIで視覚的に確認していましたがVRRPの冗長化の確認は切り替わりをすぐに確認したいのタイムラグの少ないCUIで確認していました。
サーバの場合
windowsサーバの場合はGUIが発達しているため一部のファイルの中身の確認やプロパティの確認ではGUIで確認していました。ファイルの移動などはクリックミスが発生するためCUIで行っていました。Linuxの場合は複数のファイルを同時に作成したり、自動でプログラムを走らせたりするのでCUIで作業することがほぼ100%でした。
まとめ
ここまでGUIとCUIついて説明してきましたが、どちらにもメリットとデメリットはあります。
どちらを利用するかについては現場ごとに分かれることもありますので作業手順書を作成する際などは必ず確認するようにしましょう。
CUIで作業すれば作業手順書のコマンドをそのままコピーして貼り付けするだけで作業は完了しますし、前述したような「Tera Term」というターミナルソフトを使えば作業したログをテキストベースで保存できるので安全に作業できるので圧倒的にCUIを使うことが多いと思います。
またCUIであればネットワーク機器にはコンソールケーブルで接続でき、作業PC自体の設定も不要になりますのでこういった点でもCUIの方に利点があると言えます。
安部 真浩
ネットワーク系エンジニアとして案件をこなしつつ、ライターとして執筆活動にもチェレンジ中。株式会社グラントホープ所属のフリーランスエンジニア。趣味は貯金でFIREを目指しています!