Linuxの仮想コンソールを使いこなしたい(仮想コンソールの使い方まとめ)

仮想コンソールってご存じですか?

下の画像のように、真っ黒い画面にテキストだけが表示された状態でLinuxを操作します。

この画面は、Windows上でVirtualBoxのCentOS7をgraphical.targetつまりGUI(X Window)環境で実行した上で、ショートカットキーで呼び出したものです。

資格試験には出題される内容ではありませんが、ふとしたタイミングでLinuxをCUI環境で使いたい場合など、実機でもVirtualBoxでも瞬時にGUIからCUI環境に切り換えることができるので覚えておくと便利だと思います。

また、ディストリビューションで利用方法に若干違いがあり、戸惑った経緯もあってまとめておくことにしました。

仮想コンソールとは

仮想コンソールは、文字通り、仮想のコンソールなのですが、そもそもコンソールって何なのでしょう?

元々のコンソールは、Linuxが影響を受けたUNIXワークステーションを動かすための端末装置(ハードウェア)を指していたようです。DEC社のVT100などが代表格です。

当時UNIXワークステーションはとても高価でしたので、複数で共有する使い方が一般的でした。メインのワークステーションは1台で、制御用のクライアント端末を複数シリアルケーブルで接続して使っていました。

クライアント端末は、文字を表示するディスプレイ装置(CRTなどと呼ばれていました)と入力装置となるキーボードのセットでダム端末と呼ばれていました。ダムは英語のdumbで、日本語ではバカを意味しています。端末側は何の処理もせずに、メインのワークステーションが仕事をすることからそのように呼ばれたようです。

ディスプレイはブラウン管ベース。画面では80文字25行程度の英数字を扱える程度。この英数字の文字のみ扱えた端末の登場がCLI(Command Line Interface)の始まりといえます。

LinuxのGUIデスクトップにおける「端末」や「ターミナル」と呼ばれるアプリケーションはこのCLI環境をソフトウェアで再現(エミュレート)しているのです。

本題の仮想コンソールは、GUIデスクトップで使えるソフトウェア端末ではなく、かつてのダム端末に近い、真っ黒の画面にテキストのみを表示するクライアント端末を実行できる仕組みです。

仮想コンソールの用途については様々あると思われますが、GUIのターミナル操作でトラブルが起こった際など、仮想コンソールに切り替えて原因を探ることができて便利です。

サーバ用途でもパフォーマンスを優先したい場合にGUI環境を使わない場合も多いので仮想コンソールが重宝するというわけです。

参考までに、Wikipediaによるとコンソール(Console)は一般的にコンピュータの制御卓とのことですが、他にもいくつかの派生的な意味で使われているそうで、今回は以下の説明があてはまりそうです。

シリアルコンソールとして利用されるビデオ表示端末の機能を、OS上のソフトウェアとしてエミュレートしたものを端末エミュレータまたは単にコンソールと呼ぶ。1970年代から1980年代にかけての代表的なビデオ表示端末であるDEC VT100の機能をエミュレートしたものが多い。

Unix系OSでは複数のコンソール(端末エミュレータ)をキーボードで切り替えることで仮想的に同時に走らせることが出来、同時に複数の処理を行うことが出来る。これを仮想コンソールと呼ぶ。一般的なUnix系OSではデフォルトで6つの仮想コンソールを持つことが出来る。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

Linuxで仮想コンソールを使う

自分はVirtualBox+CentOS7と、VirtualBox+Ubuntu20.10、さらにLinux Mint導入済みの実機で検証しました。ハードウェア環境やディストリビューションによっては動作が異なる場合もあると思いますので、その点はご了承ください。

VirtualBox+CentOS7の場合

GUIデスクトップ(X Window)が有効の状態から、Ctrl+Alt+F2キーの同時押しで仮想コンソールに切り替わります。CUIログインが可能になるので、ユーザ名とパスワードを入力してログインします。ログイン後はLinuxをCUIで操作します。

複数の仮想コンソールを利用したい場合は、Ctrl+Alt+F3を同時に押します。同様に最後のキーをF4、F5に置き換えて実行します。仮想コンソールは5つまで利用可能です。元のGUIに戻りたいときは、Alt+F1キーを同時に押します。

なお、後半に実行例も掲載していますので参考にしてみてください。

VirtualBox+Ubuntu2010の場合

GUIデスクトップ(X Window)が有効の状態から、Ctrl+Alt+F3キー以降の同時押しで仮想コンソールに切り替わります。CUIログインが可能になるので、ユーザ名とパスワードを入力してログインします。ログイン後はLinuxをCUIで操作します。

複数の仮想コンソールを利用したい場合は、Ctrl+Alt+F4〜F6までを同時に押します。仮想コンソールは4つまで利用可能でした。元のGUIに戻りたいときは、Alt+F2キーを同時に押します。ちなみに、Alt+F1だとGUIのログイン画面へ移行してしまいました。

LinuxMint(実機)系の場合

GUIデスクトップ(X Window)が有効の状態から、Ctrl+Alt+F1キーの同時押しで仮想コンソールに切り替わります。CUIログインが可能になるので、ユーザ名とパスワードを入力してログインします。ログイン後はLinuxをCUIで操作します。

複数の仮想コンソールを利用したい場合は、Ctrl+Alt+F2(以降F5)を同時に押します。仮想コンソールは5つまで利用可能です。元のGUIに戻りたいときは、Alt+F6キーを同時に押します。

ちなみに、LPI-Japanが公開しているLinux豆知識で解説している仮想コンソールと同じ動作です。

エスパくん

ディストリビューションによって操作が異なるようですが、仮想コンソールをF3〜F6に限定して使えは、あとはGUIとの切替キーの違いだけなのでさほど混乱しないで済みそうですね。

ついでに覚えておきたい知識

仮想コンソールはttyとも呼ばれています。CRT以前にテレタイプライターが入力に使われたこともあり、その名残がttyというワードに残されています。ttyの3文字はteletypewriterからとられています。

複数の仮想コンソールを実行中の場合、wコマンドでログイン中のユーザ情報を確認できます。

bash
$ w
13:52:20 up 2:30, 7 users, load average: 0.00, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ymizusaw :0 :0 11:24 ?xdm? 5:50 0.47s /usr/libexec/gnome-session-binary
ymizusaw pts/0 :0 11:25 4.00s 0.14s 0.05s w
ymizusaw tty2 11:27 2:24m 0.09s 0.09s -bash
ymizusaw tty3 11:28 2:23m 0.08s 0.08s -bash
ymizusaw tty4 11:28 2:23m 0.06s 0.06s -bash
ymizusaw tty5 11:28 2:23m 0.05s 0.05s -bash
ymizusaw tty6 11:29 2:23m 0.05s 0.05s -bash

ttyはコマンドとしても存在しており、ttyを実行すると自分が操作しているコンソールが何番目なのかを確認することができます。

bash
$ tty
/dev/pts/0

以下の実行例で確認していただけますが、エミュレータ端末の場合は/dev/pts/*のスタイルで、仮想コンソールの場合は/dev/tty*のスタイルで表示されます。

実行例(Windows10+VirtualBox)

CentOS7の端末エミュレーター(GNOME端末)にてwコマンドとttyコマンドを実行。

Ctrl+Alt+F2キーの同時押しで仮想ターミナルを起動して一般ユーザでログイン。

仮想コンソール上で、wコマンドとttyコマンドを実行。実行結果に注目。

Ctrl+Alt+F3からCtrl+Alt+F6までを実行し、仮想コンソールを合計5つ実行。最後の仮想コンソールでwコマンドとttyコマンドを実行。

Alt+F1でGUI環境に戻り、エミュレータ端末でwコマンドを実行。

関連リンク