トップ > Linuxらしい使い方を覚える >
キーボード操作の窓口となる端末の開き方と閉じ方

  

できるだけキーボードで操作しよう

UNIX系OSの生産性と作業効率の高さを支えているのが、キーボードでの操作です。 前の章ではマウスを多用しましたが、ここからはできるだけキーボードで操作していきます。

もちろん、全てをキーボードで操作するわけではありません。 ウェブブラウザや画像編集ソフトウェアでは、マウスを使った操作が必要となることでしょう。

つまり、マウスよりもキーボードを使った方が効率よく作業ができる場面に限定してキーボードを使います。

キーボードで操作するために必要となるのが、 端末(たんまつ) たんまつ 端末(たんまつ) と呼ばれるものです。 端末は操作の窓口のようなもので "ターミナル" とも呼ばれます。

端末の開き方と閉じ方

まずは、端末の開き方と閉じ方を覚えましょう。

1. ログイン直後の状態
1. ログイン直後の状態

上図のようにLinux Mintにログインした直後の状態です。 この状態から説明を開始します。

では端末を開きましょう。 まず、キーボードのCTRLキーとALTキーを押し下げます。 CTRLキーとALTキーは押し下げたまま、ファンクションキーのF1キーをチョンと押してください。

2. 背景が黒色で文字だけの画面に切り替わる
2. 背景が黒色で文字だけの画面に切り替わる

上図のように背景が黒色で文字だけの画面に切り替わりますが、これが端末です。 このようにCTRL+ALT+F1キーを押すことで端末を開くことができます。

正確には "開いた" のではなく、隠れていた端末が "出現した" という表現が正しいです。 画面がX Window Systemから端末に切り替わった、といえばさらにわかりやすいでしょうか。

では、ログインしましょう。 端末は今、あなたのログインを待っている状態です。

3. ユーザIDとパスワードを入力する
3. ユーザIDとパスワードを入力する

上図のようにユーザIDとパスワードを入力します。 ユーザIDの入力後にEnterキーを押すことで、パスワードを入力できるようになります。

  
ユーザIDとは、インストール時に『あなたの情報を入力してください』という画面で入力したユーザー名です。

パスワードを入力したら、さらにEnterキーを押してください。 パスワードが正しければログインすることができます。

4. プロンプトが表示され入力待ちの状態になる
4. プロンプトが表示され入力待ちの状態になる

上図のようにログイン直後の画面には何やら不思議な文字が並んでいます。 また、何の動きもなく、まるで止まっているかのような状態になっています。

画面の文字 "taro@myhostname:~$" はプロンプトと呼ばれるものです。 "Prompt" を英和辞書で紐解くと "駆り立てる" / "促す" という意味を持つことがわかります。

プロンプトはまさにその通りの役目を持つもので、あなたの入力を促すものです。 つまり、今はあなたの入力を待っている状態です。 そのため、何の動きもない状態になっています。

なお、プロンプトの文字は以下の意味を持ちます。

文字 意味
taro@myhostname ユーザID : taro
ホスト名 : myhostname
: 単なる区切り
~ カレントディレクトリ
※~はホームディレクトリを表す
$ $→標準ユーザ
#→管理者ユーザ
  
ホスト名とは、インストール時に『あなたの情報を入力してください』という画面で入力したコンピューターの名前のことです。

これは大切なことですが、あなたの入力を待っているのは端末ではありません

端末は単なる窓口のようなものであり、窓口の先に控えているのはシェルと呼ばれる種類のソフトウェアです

シェルは今、あなたが命令を出すのを待っています。 なお、シェルへの命令をコマンドといいます。

試しに何かコマンドを打ち込んでみましょう。 日時を表示するための date コマンドを試してみましょう。 キーボードから date と入力して、Enterキーを押してください。


date

  
Enterキーを押すことでコマンドが実行されます。
5. 日時が表示される
5. 日時が表示される

上図のように date コマンドが実行され、日時が表示されます。 なお、◆は日本語(漢字)が表示されている部分が文字化けした結果です。 残念ながらCTRL+ALT+F1キーで開く端末では日本語を表示することはできません。

  
設定を変えることで日本語を表示させることもできるのですが、そこまでする必要はありません。 後ほど説明するX Window System上の端末を使えば日本語を表示できるからです。

なお、日時を表示したのはシェルではありません。 シェルから呼び出された date という名前のソフトウェアです。

  
date コマンドはシェルとは別のソフトウェアで、ファイル名は /usr/bin/date です。 シェルが /usr/bin/date を呼び出して実行しました。

ではここで、新たな端末に切り替えてみましょう。 CTRL+ALT+F2キーを押してください。

6. 新たな端末に切り替わる
6. 新たな端末に切り替わる

上図のように新たな端末に切り替わります。 右上に "tty2" と表示されていることからわかるように、これは2番目の端末です

では、この端末でもログインしてみましょう。

7. ユーザIDとパスワードを入力する
7. ユーザIDとパスワードを入力する

上図のようにユーザIDとパスワードを入力し、さらにEnterキーを押してください。

8. 2番目の端末にログインする
8. 2番目の端末にログインする

上図のように2番目の端末にもログインすることができました。

ではここで、CTRL+ALT+F3キーを押してみてください。 どうなるでしょうか。

9. 3番目の端末に切り替わる
9. 3番目の端末に切り替わる

上図のように3番目の端末に切り替わります。 まあ、予想通りでしたね。

ファンクションキーはF1からF12まであります。 では、端末は tty1 から tty12 の12個あるのでしょうか。 いえ、端末は tty6 までの6個です


それならCTRL+ALT+F7キーを押すとどうなるんでしょうか。 気になりますね。 では、CTRL+ALT+F7キーを押してみましょう。

10. X Window Systemに切り替わる
10. X Window Systemに切り替わる

上図のようにX Window Systemに切り替わります。 このように、CTRL+ALT+F7キーを押すことでX Window Systemに戻ることができます。

  
この段階で画面が真っ黒になっていることがあります。 一定時間キーボードから入力がなかったことにより画面がロックされていることが原因です。 何かキーを押すとロック解除のためのパスワードを入力することができます。

では次に、X Window System上の端末を開いてみましょう。

11. $_のアイコンをクリックする
11. $_のアイコンをクリックする

上図のように画面下部のパネルの左側にある $_ のアイコンをマウスの左ボタン(マウスの左ボタン)でクリックします。

12. ウィンドウが開く
12. ウィンドウが開く

上図のようにウィンドウが開きます。 これがX Window System上の端末です。 この端末であれば日本語もきちんと文字化けすることなく表示することができます

ではここで、開いた端末に注目してください。 tty1 から tty6 の端末とは異なり、端末を開いただけでプロンプトが表示されています。 つまり、すでにログインした状態になっています

ログインの手順を省けているのは、もちろんX Window Systemにすでにログインしているためです。

さらに端末を開いてみましょう。

13. $_のアイコンをクリックする
13. $_のアイコンをクリックする

上図のように $_ のアイコンをマウスの左ボタン(マウスの左ボタン)でクリックします。

14. 新たにウィンドウが開く
14. 新たにウィンドウが開く

上図のように新たにウィンドウが開きます。 最初の端末と重なっているのでわかりづらいですが、新しく端末が開いています。

15. ウィンドウを移動して重なりを解消する
15. ウィンドウを移動して重なりを解消する

上図のようにウィンドウを移動して重なりを解消しましょう。 端末が2つ開いていることが確認できました。

このように、X Window System上では複数の端末を開くことができます。 しかも、ログインの手間はかかりません


tty1 から tty6 の端末への切り替え方法、および、X Window System上の端末の開き方についての説明は以上です。 ここからは端末を閉じる方法について解説します。

では、ログインしたままの tty1 の端末に戻りましょう。 キーボードのCTRL+ALT+F1キーを押します。

16. tty1 の端末に切り替わる
16. tty1 の端末に切り替わる

上図のように tty1 の端末に切り替わります。 見ての通り、ログインしたままの状態が維持されています。

コンソールについて

ちょっと脱線してしまいますが、ここで "コンソール" と呼ばれるものについて説明しておきます。

今、作業している tty1 の端末および tty2 から tty6 の端末ですが、実はこれらはコンソールと呼ばれます。 これらは "端末" であることには違いないのですが "コンソール" でもあります。

コンソールは直訳すると "制御卓" のことです。 つまり、機械を操作するための装置を一箇所にまとめたものです。 発電所の操作盤を思い浮かべるのがわかりやすいかもしれません。

コンピュータの世界では、物理的に接続されたキーボードとマウスおよびモニタのことをコンソールと呼びます。 ただしそれは、広義での場合であり、一般的にそれらをコンソールとは呼びません。

では、コンピュータの世界で一般的に使われる "コンソール" とは何を指すのでしょうか。 曖昧な言葉なので正確な説明は難しいのですが、OSの核(カーネルと呼ばれる)に近い端末のことだと思ってください。

Linux Mintの端末には tty1 から tty6 および X Window System上でウィンドウとして開かれるものがありますが、tty1 から tty6 の端末はOSの核(カーネル)と密接に関係しています。 そのため、tty1 から tty6 の端末はコンソールと呼ばれます。

  
X Window System上の端末はコンソールとは呼ばれません。
  
tty1 から tty6 のコンソールはキーボードとマウスおよびモニタを共有しています。 そのため "仮想コンソール" とも呼ばれます。
  
コンソールは特別なシステム管理作業以外で使うことはありません。 日本語を正しく表示することができないからです。

では、本題に戻りましょう。 端末を閉じます。 ただし、"閉じる" と書きましたが、実は tty1 から tty6 の端末(つまり、コンソール)は閉じることはできません。 コンソールはログアウトすることしかできません。

そういうことですので、"閉じる" のではなく "ログアウト" しましょう。 ログアウトするにはシェルを終了させる必要があります。 シェルが終了することで、自動的にログアウトされます。

シェルを終了させるためのコマンドは exit コマンドです。 キーボードから exit と入力して、Enterキーを押してください。


exit

17. exit コマンドを打ち込む
17. exit コマンドを打ち込む

上図のように exit コマンドを実行します。 実行すると、ログアウトが行われます。

なお、exit コマンドはシェルに組み込まれているコマンドです。 exitという名前の別のソフトウェアが存在するわけではありません

先ほど実行した date コマンドはシェルとは別のソフトウェアで、ファイル名は /usr/bin/date でした。 シェルが /usr/bin/date を呼び出して実行しました。

一方、exit コマンドは別ソフトウェアではありません。 シェルの内部に組み込まれている機能です。 "exit" という命令を受け取ったシェルは、"シェルを終了したいんだな" と理解し自分自身を終了させます。

  
シェルに組み込まれているコマンドを "組み込みコマンド" または "ビルトインコマンド" と呼びます。
18. ログイン待ちの状態に戻る
18. ログイン待ちの状態に戻る

上図のようにログイン待ちの状態に戻ります。 シェルが終了すると、このようにログアウトします。

なお、ログインを促している "myhostname login:" という文字もプロンプトです。 シェルが表示しているのが "シェルプロンプト" でこちらは "ログインプロンプト" と呼ばれます。

続いては、tty2 のコンソールのログアウトです。 ただし、exit コマンドは使いません。 別の手順でログアウトしてみましょう。

では、キーボードのCTRL+ALT+F2キーを押して tty2 のコンソールに切り替えましょう。

19. キーボードのCTRL + Dを押す
19. キーボードのCTRL + Dを押す

上図のように tty2 のコンソールに切り替わりますので、キーボードからCTRL+Dキーを押します。

20. ログアウトする
20. ログアウトする

上図のようにログアウトします。 シェルが終了したためログアウトしました。 このように、キーボードからCTRL+Dキーを押すことでもシェルを終了することができます。

ただし、CTRL+Dキーはexit コマンドのショートカットキーではありませんCTRL+Dキーを押すことで、exit コマンドが実行されるわけではないのです。

では、どういう理屈でシェルが終了したのでしょうか。 それを説明するには、標準入力と標準出力について解説しなくてはなりません。

標準入力と標準出力とは

シェルは、キーボードからのコマンドの入力を待っています。 ただし、正確にはキーボードからの入力を待ってるわけではなく "標準入力" と呼ばれるファイルからの入力を待っています。

つまり、シェルから見ればファイルから情報を読み込んでいることになります。 では、"標準入力" と呼ばれるファイルの正体は何なのでしょうか。 それがキーボードというわけです。

もう一方の "標準出力" とは何なのでしょうか。 実は、標準出力もファイルです。 こちらは画面につながっています。

シェルは標準入力からコマンドを受け取り、結果を標準出力へ書き込んでいるのです。 つまり、ファイルからコマンドを読み込み、ファイルへ結果を書き込んでいるということです。

何でもファイルとして扱うのがUNIX系OSの設計の素晴らしさ

標準入力はキーボードにつながるファイルで、標準出力は画面につながるファイルだということがわかりました。 このようにコンピュータにつながる機器をファイルとして扱う、という設計がUNIX系OSの素晴らしさだと思います。

UNIX系OSでは何でもファイルとして扱う、と覚えておきましょう。


話が脱線しましたので本題に戻りましょうCTRL+Dキーを押すことでシェルが終了した理由です。

キーボードからCTRL+Dキーを打ち込むと CTRL-D が入力されます。 実は CTRL-D というのはファイルの終わりを意味しています。

例えばテキストエディタで、"Hello" と入力して保存した場合には、ファイルには、

1文字目 H
2文字目 e
3文字目 l
4文字目 l
5文字目 o
6文字目 CTRL-D

のように保存されます。

そうです、CTRL+Dキーを押すことでシェルが終了したのは標準入力に CTRL-D が入力されたからです。 シェルから見ればファイルの終わりに達したというわけです。


続いて、X Window System上の端末も閉じましょう。 ただし、閉じるのはひとまず1つの端末だけです。

では、CTRL+ALT+F7キーを押してください。

21. X Window Systemに切り替わる
21. X Window Systemに切り替わる

上図のようにX Window Systemに切り替わります。 2つの端末が開いたままになっています。

  
X Window System上の端末も "仮想端末(仮想ターミナル)" のように正確には "仮想" が付きます。 もちろん、キーボードを共有しているからです。
  
仮想端末は、ソフトウェアの種類としては端末エミュレータ(ターミナルエミュレータ)に分類されます。 Linux Mint Mate Editionで採用されている端末エミュレータは "MATE 端末" です。

では、どちらか片方の端末を閉じましょう(どちらの端末でもいいです)。 キーボードから exit と入力して、Enterキーを押してください。


exit

22. exit コマンドを打ち込む
22. exit コマンドを打ち込む

上図のように exit コマンドを実行します。

23. 端末が閉じる
23. 端末が閉じる

上図のように端末が閉じます。 これで残っている端末は1つだけになりました。


  

なお、残り1つの端末は、まだ閉じません。 その前にやっておくべきことがあります。 それは、XDGユーザディレクトリの英語表記への変更です。

XDGユーザディレクトリというのは、ホームディレクトリの下にあるドキュメントやミュージックやビデオなどを保存するためのディレクトリのことです。

これらのディレクトリは、現在日本語の名称で "ドキュメント" や "ミュージック" や "ビデオ" のように作成されています。 Linux Mintのインストール時に言語に "日本語" を選択したためです。

ディレクトリ名に日本語(漢字・ひらがな・カタカナ)が含まれいると、端末からキーボード操作する場合にとても不便です。 いちいち日本語入力をオンにしなければなりませんから。

そこで、"ドキュメント" や "ミュージック" や "ビデオ" という名称を "Documents" や "Music" や "Videos" に変更することにします。

ただし、ファイルマネージャを開いてディレクトリの名称を変更するわけではありません。 その方法では思い通りの結果にはなりません。

ドキュメント用ディレクトリは "ドキュメント"、ミュージック用ディレクトリは "ミュージック"、ビデオ用ディレクトリは "ビデオ" というような情報が記録されている設定があるのでそれを変更します。

では、実際にやってみましょう。 xdg-user-dirs-gtk-update コマンドを利用します。 キーボードから LANG=C xdg-user-dirs-gtk-update と入力して、Enterキーを押してください。


LANG=C xdg-user-dirs-gtk-update

  
コマンドの前に入力している "LANG=C" については、今はまだ知る必要はありません。 Linux Mintのインストール時に言語に "日本語" を選択しましたが、それを一時的に無効にするためのものと理解してください。 詳細は後ほど変数に関する記事で解説します。
24. xdg-user-dirs-gtk-update コマンドを打ち込む
24. xdg-user-dirs-gtk-update コマンドを打ち込む

上図のように xdg-user-dirs-gtk-update コマンドを実行します。

25. ディレクトリ名を更新するかどうかを聞かれる
25. ディレクトリ名を更新するかどうかを聞かれる

上図のように新たなウィンドウが開き、ディレクトリ名を更新するかどうかを聞かれます。 Don't ask me this againチェックボックスをチェックし、[Update Names]ボタンを押してください。

26. ディレクトリ名の変更内容が表示される
26. ディレクトリ名の変更内容が表示される

上図のようにディレクトリ名の変更内容が表示されます。 日本語表記から英語表記に変わったことがわかります。

  
このようにX Window System上の端末では日本語を正しく表示することができます。

もう端末は不要です。 最後の端末も閉じましょう。

27. キーボードのCTRL + Dを押す
27. キーボードのCTRL + Dを押す

上図のようにキーボードからCTRL+Dキーを押して終了しましょう。

では、ホームディレクトリの下のディレクトリが英語表記になっていることを確認しましょう。 ファイルマネージャから確認するのがお手軽です。

28. ディレクトリのアイコンをクリックする
28. ディレクトリのアイコンをクリックする

上図のように画面下部のパネルの左側にあるディレクトリのアイコンをマウスの左ボタン(マウスの左ボタン)でクリックします。

29. "Documents" と "ドキュメント" の両方がある
29. "Documents" と "ドキュメント" の両方がある

上図のようにファイルマネージャが開きます。 ほぼ英語表記に変わっていますが、問題があることがわかります。 "Documents" と "ドキュメント" の両方が存在しています。 また、左の『場所』の一覧の "デスクトップ" が日本語のままです。

"Documents" と "ドキュメント" の両方があるのは、"ドキュメント" の下にファイルがあるからです。 xdg-user-dirs-gtk-update コマンドは旧名称のディレクトリを削除し、新名称のディレクトリを作成するようです。 ディレクトリを改名するわけではないようです。

そのため、ファイルが置かれていた "ドキュメント" ディレクトリの削除は中断されたと思われます。

  
『場所』の一覧の "デスクトップ" は実害はありません。 このまま放っておきましょう。

では、"ドキュメント" の下のファイルを "Documents" に移動し、"ドキュメント" は削除しましょう

30. 全て英語表記になる
30. 全て英語表記になる

上図のように全て英語表記になったことを確認します。

シェルって何だろう

この記事では "シェル" と呼ばれるものが登場しました。 シェル(Shell)というのは、コンピュータのOSと利用者の間の橋渡しをするための機能のことです。 利用者からの命令を受けてその要望に応え、結果を返すのがシェルの役割です。

この記事で行った端末からのキーボード操作では、シェルは標準入力(キーボード)からコマンドを受け取り、コマンドを実行した結果を標準出力(画面)へ書き込んでいました。 それがまさに "橋渡し" であり、シェルの役目です。

Linux系OSの標準のシェルはbash(バッシュ)

実は、シェルには色々な種類(=製品)があります。 sh, ksh, zsh, csh, tcsh, ash, dash, fish など様々なものがあり、それぞれのシェルが理解する構文は同じではありません

なお、ほとんどのLinux系OSでは bash(バッシュ) バッシュ bash(バッシュ) と呼ばれるシェルが標準採用されています。 本ウェブサイトで導入した Linux Mint でも標準のシェルは bash です。

  
bash は正確には Bash と表記されます(最初の1文字が大文字)。 Bash は "Bourne-Again SHell" の略です。

本ウェブサイトで解説しているシェルに関する内容は bash に基づいています。 他のシェルでは通用しないこともあります

端末を使わなくてもシェルには世話になっていた

本ウェブサイトでは、"シェル" という言葉はこの記事で初めて登場しました。 しかし、前の記事までの作業でも実はシェルには何度も触れていたのです

例えば、X Window Systemでの利用で頻繁に開いていたLinux Mintメニューですが、あれもシェルです。 あなたにアプリケーションを選ぶためのメニューを提供し、希望したアプリケーションを起動してくれていました。

また、この記事でも利用したファイルマネージャもシェルです。 "ファイルをコピーしたい"、"ディレクトリを削除したい"というような利用者の要望に答えてくれます。 ファイルをダブルクリックすることで、アプリケーションを起動することもやってくれます。

ただしシェルという言葉は通常は端末でのシェルを指す

Linux Mintメニューやファイルマネージャも確かにシェルです。 ただしそれには『広い意味では』という前置きが付きます

一般的に、シェルという言葉は端末で利用者のコマンドを受け取り結果を返すソフトウェアのことを指します。 bash, sh, ksh, zsh, csh, tcsh, ash, dash, fish などが該当します。

  

端末の出力内容の消去について

端末の出力内容は clear コマンドでいつでも消去することができます。 画面が見づらくなったら clear コマンドで消去しましょう。

1. 画面にいくつかのコマンドの出力結果が表示されている
1. 画面にいくつかのコマンドの出力結果が表示されている

上図のように画面にいくつかのコマンドの出力結果が表示されています。 少々目障りですね、画面をクリアしましょう。

キーボードから clear と入力して、Enterキーを押してください。


clear

2. 端末の出力内容が消去される
2. 端末の出力内容が消去される

上図のように端末の出力内容が消去されます。 画面がクリアされました。

  

まとめ

UNIX系OSの生産性と作業効率の高さを支えているのがキーボードでの操作です。 できるだけキーボードで操作しましょう。 キーボードで操作するために必要となるのが窓口の役目となる "端末" です。

CTRL+ALT+F1キーを押すことで端末 tty1 に切り替えることができます。 ログインを待っている状態になりますので、ユーザIDとパスワードを入力してログインする必要があります。

なお、端末は tty6 まであり、コンソールとも呼ばれます。 また、X Window System上でも端末を開くことができます。 こちらはコンソールとは呼ばれません。

操作/コマンド 説明
CTRL+ALT+F1キー コンソール tty1 に切り替える
CTRL+ALT+F2キー コンソール tty2 に切り替える
CTRL+ALT+F3キー コンソール tty3 に切り替える
CTRL+ALT+F4キー コンソール tty4 に切り替える
CTRL+ALT+F5キー コンソール tty5 に切り替える
CTRL+ALT+F6キー コンソール tty6 に切り替える
CTRL+ALT+F7キー X Window Systemに切り替える

コンソールからログインすると(またはX Window System上で端末を開くと)シェルが起動し、あなたのコマンド入力を待ちます。 このようにコンピュータのOSと利用者の間の橋渡しをするための機能は "シェル" と呼ばれます。

シェルは標準入力(キーボード)からコマンドを受け取り、コマンドを実行した結果を標準出力(画面)へ書き込みます。 exit コマンドを実行するか、キーボードからCTRL+Dキーを入力することでシェルを終了させることができます。 コンソールの場合はシェルが終了すると、自動的にログアウトします。

ただし、CTRL+Dキーは exit コマンドのショートカットキーではありません。 CTRL+Dキーで入力される CTRL-D がファイルの終わりを意味するためシェルが終了します。

操作/コマンド 説明
exit シェルを終了する
CTRL+Dキー シェルを終了する

X Window System上のLinux Mintメニューやファイルマネージャも広い意味ではシェルです。

date コマンドで日時を表示することができます。 clear コマンドで端末の表示内容を消去することができます。

操作/コマンド 説明
date 日時を表示する
clear 端末の表示内容を消去する
メニュー