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
history コマンド
history
実行例

標準入力と標準出力、標準エラー出力

Linuxでは、シェルから起動されたコマンドが、1つの入口(標準入力)と2つの出口(標準出力、標準エラー出力)を持っています。

種類ファイルデスクリプタ番号(識別子)説明
標準入力0キーボードから入力を受け付ける。
標準出力1ディスプレイへ出力する。
標準エラー出力2エラーメッセージを出力する為の出口で、ディスプレイへ出力する。
標準入力と標準出力、標準エラー出力

リダイレクト

リダイレクトとは、 上記の標準入力と標準出力、標準エラー出力先を一時的に別のファイルへ切り替える機能の事を言います。

リダイレクト記号説明
<標準入力の入力元を変更する。
>標準出力の出力先を変更する。データは上書きされる。
>>標準出力の出力先を変更する。データは追記される。
2>標準エラー出力の出力先を変更する。データは上書きされる。
2>>標準エラー出力の出力先を変更する。データは追記される。
書式コマンド 「リダイレクト記号」 出力先ファイル名
実行例/etcディレクトリ以下のファイル一覧をfile.txtファイルに出力する
$ ls /etc > file.txt
リダイレクト
redirect
実行例

パイプ

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

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

エイリアス

エイリアス(別名)とは、コマンドやオプションの入力に対して、短くて分かりやすい様に別名を付ける事を言います。

コマンド説明
aliasエイリアス(別名)を設定・表示する。
書式alias [別名[=’コマンド’]]
実行例rmコマンドを実行した場合、常に-i オプションが付くようにエイリアス rm を設定する
$ alias rm=’rm -i’
alias コマンド
alias
実行例
alias2
実行例
コマンド説明
unaliasエイリアス(別名)を削除する。
書式unalias エイリアス名
実行例エイリアス rm を削除する
$ unalias rm
unalias コマンド
unalias
実行例
unalias2
実行例

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

Linux

前の記事

Linux アクセス権を学ぼう
Linux

次の記事

Linux 変数を学ぼう