Linux シェルを学ぼう
シェル(shell)とは
シェル(貝殻)とは、ユーザーとシステムのやり取りを担うプログラムです。
私たちは、ターミナルからコマンドを入力しますが、シェルは、このコマンドをカーネルに伝えて、カーネルからの実行結果を変換し表示してくれます。
カーネル(中核)とは、アプリケーションとハードウェアとのやり取りを行う処理(メモリー管理、ファイルの管理、デバイスドライバとしての役割、プロセスの管理)を担当するプログラムです。

Linuxの標準シェルには、bash(Bourne Again Shell)バッシュがあります。
その他に、sh、csh、tcsh、zchなどのシェルがあります。
ここでは、シェルの機能について学んで行きます。
使用しているシェルの確認方法
使用しているシェルの確認は、以下のコマンドで確認する事が出来ます。
・ $ cat /etc/passwd
/etc/passwd ファイルの詳細については、こちらの記事を参照して下さい。

シェルの基本機能
入力を簡単にする機能
シェルには、入力を簡単にする機能があります。コマンド入力時に利用できます。
| キー | 説明 |
|---|---|
| Tab キー | コマンドやファイル名を途中まで入力し、Tabキーを押します。 候補が1つだけの場合は、残りの文字を補完してくれます。 2回 Tabキーを押すと、下に候補が表示されます。 |
| ↑キー・↓キー | ↑キーを押すと、以前に入力したコマンドを表示します。 ↓キーを押すと、戻る事が出来ます。 |
| Ctrl + a キー | 行の先頭へカーソルを移動します。 |
| Ctrl + e キー | 行の末尾へカーソルを移動します。 |
| Ctrl + l キー | 画面をクリアします。 |
| Ctrl + c キー | 処理を中断します。 |
history コマンド
historyコマンドでコマンド履歴を表示する事ができます。
また、 historyコマンドで 表示された履歴番号を元に「!履歴番号」と入力する事で、指定した番号のコマンドを再実行する事ができます。
| コマンド | 説明 |
|---|---|
| history | コマンド履歴を表示する。 |
| 書式 | history [オプション] [数値] |
| オプション | -c コマンド履歴を削除する |
| 実行例 | 直近10のコマンド履歴を表示する $ history 10 |

標準入力と標準出力、標準エラー出力
Linuxでは、シェルから起動されたコマンドが、1つの入口(標準入力)と2つの出口(標準出力、標準エラー出力)を持っています。
| 種類 | ファイルデスクリプタ番号(識別子) | 説明 |
|---|---|---|
| 標準入力 | 0 | キーボードから入力を受け付ける。 |
| 標準出力 | 1 | ディスプレイへ出力する。 |
| 標準エラー出力 | 2 | エラーメッセージを出力する為の出口で、ディスプレイへ出力する。 |

リダイレクト
リダイレクトとは、 上記の標準入力と標準出力、標準エラー出力先を一時的に別のファイルへ切り替える機能の事を言います。
| リダイレクト記号 | 説明 |
|---|---|
| < | 標準入力の入力元を変更する。 |
| > | 標準出力の出力先を変更する。データは上書きされる。 |
| >> | 標準出力の出力先を変更する。データは追記される。 |
| 2> | 標準エラー出力の出力先を変更する。データは上書きされる。 |
| 2>> | 標準エラー出力の出力先を変更する。データは追記される。 |
| 書式 | コマンド 「リダイレクト記号」 出力先ファイル名 |
| 実行例 | /etcディレクトリ以下のファイル一覧をfile.txtファイルに出力する $ ls /etc > file.txt |

パイプ
パイプとは、複数のコマンドをつないで、処理を連動させる機能の事を言います。

| コマンド | 説明 |
|---|---|
| パイプ「|」 | コマンドの出力先を別のコマンドへ渡す。 |
| 書式 | コマンド1 | コマンド2 |
| 実行例 | /etcディレクトリ以下のファイル一覧を less コマンドで表示する $ ls -l /etc | less |


エイリアス
エイリアス(別名)とは、コマンドやオプションの入力に対して、短くて分かりやすい様に別名を付ける事を言います。
| コマンド | 説明 |
|---|---|
| alias | エイリアス(別名)を設定・表示する。 |
| 書式 | alias [別名[=’コマンド’]] |
| 実行例 | rmコマンドを実行した場合、常に-i オプションが付くようにエイリアス rm を設定する $ alias rm=’rm -i’ |


| コマンド | 説明 |
|---|---|
| unalias | エイリアス(別名)を削除する。 |
| 書式 | unalias エイリアス名 |
| 実行例 | エイリアス rm を削除する $ unalias rm |


プログラミングスキルを身に着けてITエンジニアとして活躍してみませんか?
ITエンジニアは、DX、AI、IoT時代を迎え、ますます需要が高っています。


