LinuxのCUIとGUI、デスクトップ環境を理解しよう“応用力”をつけるためのLinux再入門(3)

今回は、Linuxの「インタフェース」に注目します。インタフェースとはLinuxを“どのように見せて、どのように操作するか”を決める部分です。Linuxでは、WindowsやOS Xでおなじみのグラフィカルなスタイルと、コマンドをキーボードで入力するスタイルの両方を利用できます。

» 2016年02月19日 05時00分 公開
[西村めぐみ@IT]
「“応用力”をつけるためのLinux再入門」のインデックス

連載目次

OS操作の“要”、CUIと“コマンドライン”って何?

 機械と機械、機械と人間、コンピュータとユーザーなど、何かの接点となる部分を「インタフェース(interface)」、特に、利用者による操作を受け取って結果を返す部分を「ユーザーインタフェース(User Interface:UI)」と呼びます。コンピュータの場合、大きく分けて「CUI」と「GUI」、2つのインタフェースがあります。

 私たちがWindowsやOS Xで慣れ親しんでいるような、ウィンドウを表示してマウスで操作するスタイルが「GUI(Graphical User Interface)」です。GUIに対して、キーボードでコマンド(command:命令)を入力し、その結果を文字で受け取るスタイルが「CUI(Character User Interface)」になります(※)。CUIは、「CLI(Command Line Interface)」と呼ばれることもあります。

【※】Character User Interfaceの他、「Character-based User Interface」や「Console User Interface」とも呼ばれることがあります。



CUIによる操作例

 まずは、「GUIなし」のLinuxの画面を紹介しましょう(画面1)。このCUIの画面では、ユーザー「study」がログインし、ディスク使用量を表示する「df」というコマンドを実行しています。

画面1 画面1 LinuxにCUIでログインして、「df」コマンド(df -h)を実行している例

 OSが入力を待ち受けている場所には、「プロンプト」が表示されます。例えば、「login:」はログインプロンプトで、ログイン名の入力を促しています。ちなみに、画面1では「password:」のところにパスワードを入力していますが、画面に入力内容は表示されていません。

シェル

 Linuxへのログインに成功すると「シェル」が起動します。シェルは“OSのインタフェースを受け持つソフトウェア”で、OSの中心部分(カーネル:本連載第1回を参照)を覆う“殻(shell)”をイメージさせるので、このように呼ばれています。

 ユーザーはシェルを通じてOSにコマンドを送り、シェルを通じて結果を受け取ります。

 Linuxで主に使われているシェルが、「bash(バッシュ)」と「tcsh(ティーシーシェル)」です。この2つのシェルは操作性が多少異なる他、特に“シェルスクリプト”を扱う際に、どちらを使うのかを考えなくてはなりません。しかし、普段コマンドを入力して実行するような場合には、両者の違いを意識する必要はほとんどないでしょう。現在使用しているシェルを知る方法や変更する方法については、本連載内であらためて説明します。

コマンドライン

 Linuxのコマンドを入力する場所を「コマンドライン」と呼びます。コマンドラインにはプロンプトが表示されています。もしかしたら「カーソル(cursor)」が点滅しているかもしれません。

 前出の画面1では、「[study@localhost ~]$」の部分がプロンプトになります。プロンプトに何を表示するかはユーザーが決めることができます。ここでは「[<ユーザー名>@<ホスト名> <カレントディレクトリ>]」に続いて「$」記号が表示されています。個々の意味や設定方法については、今後の本連載で取り上げていきます。

 例えば、コマンドラインに「df -h」と入力して[Enter]キーを押すと、コマンドがOSに渡されます(※)。「df」部分がコマンド名で、「-h」部分はオプションです。「dfコマンドを-hオプション付きで実行せよ」と命令しているわけです。

【※】[Enter]キーではなく[Return]キーになっているPCもありますが、コマンドラインでの役割は同じです。[Return]キーはタイプライター時代からのもので、[Return]キーを押すと次の行に移り行の先頭に戻る、という意味合いがあります。一方、[Enter]キーは、このキーを押すとコンピュータに入力される、という意味合いがあります。



コマンドの実行結果

 「df」コマンドは、ディスクのサイズや現在使用している量を表示するコマンドです。前出の画面1では、「Filesystem……」行以下の8行が「df」コマンドの実行結果で、その後あらためてプロンプト([study@localhost ~]$)が表示されています。シェルが次の入力を待っている、という状態になっています。

 このように、文字を使ってコンピュータに指示を出し、文字で結果を受け取るのが「CUI」です。文字情報だけのやりとりになるので、遠隔地から操作しやすい、操作を自動化しやすいといった特徴があります。特にサーバを管理する人にとっては、CUIのマスターは必須かもしれませんね。

端末ウィンドウ

 GUI環境でコマンドラインを使用したい場合は、「端末ウィンドウ」を使用します(画面2)。端末ウィンドウには、「xterm」や「kterm」「rxvt」などがあります。ディストリビューションによっては、単に「端末」という名前になっているかもしれません。

画面2 画面2 「端末」を起動し、「df」コマンド(df -h)を実行している例(CentOS 7)

GUIと“デスクトップ環境”の違いは何?

 「Linuxといえばコマンドライン」というイメージを持っている方は多いかもしれません。実は、Linuxには広大なGUIの世界が広がっているのです。ここからは、LinuxのGUIとデスクトップ環境を説明していきましょう。

X Window System

 UNIX系のOSでは、GUI環境を作るのに「X Window System」を利用します。昨今のLinuxディストリビューションでは、後述する「デスクトップ環境」としてまとめてインストールして使用するのが一般的です。従って、X Window Systemを意識することはあまりないかもしれませんが、大まかな仕組みだけは把握しておきましょう。

 X Window Systemは、マウスやキーボードからの入力や画面への出力を受け持つ「Xサーバ」と、実際の作業を行う「Xクライアント」に分かれます。Windowsを含む一般的なサーバにおける“Webサーバ”や“ファイルサーバ”では、ユーザーが使用する側が「クライアント」ですが、X Window Systemの場合はユーザーが触れる側が「サーバ(Xサーバ)」になる点に注意してください。

 Xサーバは、マウスやキーボードからの入力をXクライアントに伝え、Xクライアントからの指示に従って画面の描画を行います。

 XサーバとXクライアントは同一マシン上になくてもよく、ネットワークで接続された別のマシン上で動かしても構いません。「Xプロトコル」というXサーバとXクライアント間の通信規約に対応しているソフトであれば、お互いが動作しているOSも問いません。

 X Window Systemでは、処理能力の高い大型汎用機側でXクライアントのソフトウェアが動作し、ユーザーが直接触れる端末側では表示と入力だけ行う、という使い方ができるようになっているのです。

 Xサーバ側、つまりユーザー側にログイン画面を示してクライアントとのやりとりを開始する部分を担当するのが「Xディスプレイマネジャー」です。具体的には「xdm」や「gdm」「kdm」などがあり、“ログイン画面を設定する”といったときに、こうした名前が登場するかもしれません。

ウィンドウマネジャー

 画面を表示してマウスで操作するという部分で、大きな役割を果たすのが「ウィンドウマネジャー」です。これも、昨今のLinuxディストリビューションでは“デスクトップ環境”としてまとめて提供されています。

 ウィンドウマネジャーは、ウィンドウの位置や見た目を決めるもので、例えば「ウィンドウにはタイトルバーがあり、ソフト名や開いているファイル名が表示されている」「ウィンドウのサイズを変更することができる」「右上にウィンドウを閉じるためのボタンがある」など、ユーザーインタフェースの重要な部分を決定しています。閉じるボタンの位置が気に入らなければウィンドウマネジャーの設定、あるいはウィンドウマネジャーそのものを変更すればよい、というわけです。

デスクトップ環境

 ウィンドウをどのように表示するかだけではなく、アプリケーションソフトを起動する方法(Windows環境でいえば“スタートボタンを使うかどうか”など)や、画面全体をどのように使うかなどをまとめたものが「デスクトップ環境」です。

 少し話がそれますが、現在のWindows環境で「デスクトップ」と呼ばれている場所は、Windows 3.1(1993年に日本語版が発売)のころは単なる“壁”であり、ファイルやショートカットなどを置くことはできませんでした。画面に表示されるのはウィンドウと、ウィンドウを最小化したときのアイコンだけで、後は好きな画像を“壁紙”として表示できる程度でした。

 現在のように机の上に本を広げたり、何かものを置いたりするような感覚で作業できる“デスクトップ”が登場したのは、Windows 95(1995年発売)からになります。デスクトップにファイルを置く、そのアイコンを別のウィンドウにドラッグ&ドロップするといった操作ができるのもデスクトップ環境ならではです。

 さて、Windowsユーザーでしたら、“デスクトップテーマ”を利用して壁紙や画面の配色、操作音などをまとめて変更した経験があるでしょう。これに対し、Linuxで“デスクトップ環境を選ぶ”ことは、見た目のみならず、「Windowsでタスクバーやスタートボタンを使うかどうかを決める」といったイメージになります。もちろん、見た目も変わります。

 Linux環境で広く使われているデスクトップ環境は「GNOME(グノーム、ノーム)」と「KDE(ケーディーイー)」の2つで、多くのディストリビューションがこのどちらかを採用しています。この他、軽量化を重視して設計されている「LXDE(Lightweight X11 Desktop Environment)」や「Xfce(エックスエフシーイー、エックスエフシー)」、GNOMEから派生した「MATE(マテ)」や「Cinnamon(シナモン)」などがあります。

 ディストリビューションによって、採用されているデスクトップ環境は異なります。例えば、CentOS 7では、インストール時にGNOMEとKDEを選択することができます(画面3画面4画面5)。

画面3 画面3 CentOS 7:インストール時にベース環境としてGNOMEまたはKDEを選択できる(「サーバー(GUI使用)」を選択した場合GNOMEベースとなる)
画面4 画面4 CentOS 7:「GNOME Desktop」を選択したときのデスクトップ
画面5 画面5 CentOS 7:「KDE Plasma Workspaces」選択したときのデスクトップ

 また、Ubuntuのデスクトップ環境は「Ubuntu Unity」になります。Ubuntu Unityは、Ubuntu専用に開発されており、タブレットやスマートフォンでの使用も想定したデザインとなっています(画面6)。

画面6 画面6 Ubuntu Desktopでインストールしたデスクトップ画面(Ubuntu 15.10)

どのデスクトップを選べばよいの?

 Linuxにおけるデスクトップの違いは、単に色や壁紙の違い、あるいは設定の違いだけではありません。インストールするソフトウェアそのものも異なることに注意しましょう。ディストリビューションによって採用しているデスクトップ環境が異なるので、ウィンドウの見た目や操作性が気になるという方は、デスクトップを中心にディストリビューションを選ぶとよいでしょう。

 もちろん、デスクトップ環境は好みに応じて変更できますが、最初はデフォルトでインストールされるものをそのまま使う方が簡単で、トラブルも少なくて済みます。

 例えば、Ubuntuから派生したディストリビューションである「Linux Mint」には、MATE版/Cinnamon版/KDE版/Xfce版があります(画面7)。また、同じデスクトップ環境でも、設定によってイメージがかなり異なるかもしれません(画面8)。

画面7 画面7 Cinnamon環境の例(Linux Mint 17.3 Cinnamon版)
画面8 画面8 異なる設定でインストールされているGNOMEの例(Vine Linux 6.3)

 特にこだわりがない場合や、サーバ機能を中心に利用するのでデスクトップ環境は重視しないという場合は、使いたいディストリビューションで採用されているデスクトップ環境をそのまま使いましょう。また、参考にしている書籍やWebサイトがある場合は、そこで使われているディストリビューションに合わせるのがベストです。慣れていないうちは、解説やヘルプの画面が一致している方が分かりやすいでしょう。

 ある程度操作に慣れたら、別のデスクトップ環境をインストールしてみたり、異なるディストリビューションを試してみたりするのもよいでしょう(画面9)(※)。

画面9 画面9 前出の画面6のUbuntuに異なるデスクトップ環境(LXDE)をインストールして切り替えた例

【※】Linuxでは、ディストリビューションもデスクトップ環境も、さまざまな種類があります。ウィキペディアなどで一覧を見ると、ちょっと困ってしまうぐらいの量がリストアップされます。しかし、日本語化されていて、情報が入手しやすいディストリビューションとなると選択肢はかなり限られます。



 なお、本連載第2回で紹介した「VirtualBox」や「VMware Workstation Player」にはLinux版もあるので、Linux用のPCを使っているという方も、気軽に他のLinuxをインストールして試すことができます。「こんなに違うのか」と「そうは言ってもやっぱり同じだな」の両方を味わうことで、よりLinuxの理解が深まるかもしれません。興味がある方はぜひ試してみてください。

「“応用力”をつけるためのLinux再入門」バックナンバー

筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、出産・子育てをしながらライターとして活動。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。