LinuxのCUIとGUI、デスクトップ環境を理解しよう
Linuxの「インタフェース」に注目します。インタフェースとはLinuxを“どのように見せて、どのように操作するか”を決める部分です。Linuxでは、WindowsやOS Xでおなじみのグラフィカルなスタイルと、コマンドをキーボードで入力するスタイルの両方を利用できます。
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)」と呼ばれることもあります。
CUIによる操作例
まずは、「GUIなし」のLinuxの画面を紹介しましょう(画面1)。このCUIの画面では、ユーザー「study」がログインし、ディスク使用量を表示する「df」というコマンドを実行しています。
OSが入力を待ち受けている場所には、「プロンプト」が表示されます。例えば、「login:」はログインプロンプトで、ログイン名の入力を促しています。ちなみに、画面1では「password:」のところにパスワードを入力していますが、画面に入力内容は表示されていません。
シェル
Linuxへのログインに成功すると「シェル」が起動します。シェルは“OSのインタフェースを受け持つソフトウェア”で、OSの中心部分を覆う“殻(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 「端末」を起動し、「df」コマンド(df -h)を実行している例(CentOS 7)