シェルとは
コマンドを解釈して実行するプログラムのこと。Linuxシステムの作業は端末で行うがLinuxシステムへのログイン時に端末ごとに入力するコマンドを解釈し、実行するプログラム(シェル)が動作し始める。シェルはいくつかの種類があり、ユーザは好みに応じて実行するシェルを選択できる。
Linuxで利用できるシェルには以下のような種類がある。一般的にはBashが利用される。
| シェル | プログラム名称 | 説明 |
|---|---|---|
| Bシェル | sh | UNIX V67(1978年リリース)から標準添付されているUNIXの基本的なシェル |
| Cシェル | csh | C言語スタイルの構文を持ったUNIX系OSの代表的なシェル |
| TCシェル | tcsh | Cシェルの派生版の中で特にユーザーインターフェイス部分を中心に拡張されたシェル |
| Kシェル | ksh | Bシェルと上位互換を保ちながら、Cシェルなどから優れた機能を取り込んだシェル |
| Bash | bash | UNIX系のシェルの一つであり、Linuxで用いられている標準のシェル |
システムへのログイン直後に起動するシェルは、ログインシェルと呼ばれていて、これはユーザごとに定義できる。ユーザごとのログインシェルは、/etc/passwdファイルに記述されている。以下では、adminというユーザのログインシェルが「bash」であることがわかる。
# ログインシェルの確認
$ more /etc/passwd
admin:x:500:500:CentOS-6.4-i386:/home/admin:/bin/bash
# 現在ログインしている自身が使用しているシェルは ps $$ コマンドで確認すること
$ ps $$
PID TTY STAT TIME COMMAND
17264 pts/1 S 0:00 -bash
作業終了を通知しシェルを終了するためにはlogoutコマンドを入力。exitコマンドでもシェルは終了。
コマンドの入力方法
| 入力キー | 説明 |
|---|---|
| Tabキー | コマンドやディレクトリ名などをの文字列を補完する |
| Ctrl + A | 行の先頭へカーソルを移動する |
| Ctrl + C | 実行処理を中断する |
| Ctrl + D | カーソル上にある文字列を1文字削除する |
| Ctrl + E | 行の最後へカーソルを移動する |
| Ctrl + H | カーソルの左側の文字列を1文字削除する |
| Ctrl + L | 画面をクリアして、現在の行だけ再表示する |
| Ctrl + Q | 画面への出力を再開する |
| Ctrl + S | 画面への出力を停止する |
| Ctrl + Z | 実行処理を一時停止する |
シェルがbashである場合、以下の特殊記号(メタキャラクタ)を使用してディレクトリの移動が可能。
| メタキャラクタ | 説明 |
|---|---|
| . | カレントディレクトリを表す |
| .. | 一つ前のディレクトリを表す |
| ~ | ホームディレクトリを表す |
メタキャラクタとは
複数のファイルを簡単に指定する際に使用する特殊な記号のこと。メタキャラクタにより個別にファイルを指定することなく複数のファイルを指定できる。メタキャラクタには次の記号がある。
| メタキャラクタ | 説明 |
|---|---|
| * | 任意の0文字以上の文字列 例|111.txt、abc.txtのファイルは「*.txt」と表せれる |
| ? | 任意の1文字の文字列 例|1.txt、a.txtのファイルは「?.txt」と表せれる |
| [ ] | []の任意の1文字の文字列 例|aa.txt、ab.txt、abc.txtのファイルは「[abc].txt」と表せれる |
| { } | カンマで区切られた文字列 例|data1、data2は「data{1,2}」と表せれる |