SlideShare a Scribd company logo
1 of 13
この章ではシェルの概要及びシェルの基本機能について学習します。
ユーザーが入力したコマンドは、まずシェル(shell)というプログラムに渡されます。シェルは入力されたコマンドを解釈し、カーネルに
実行を依頼します。つまりシェルはユーザーとUNIX/Linuxシステムの通訳のような役割を果たしています。
ここまで、コマンドを入力することで、目的の操作を実行する方法を学んできました。ここでは、このシェルの仕組みを少し詳しく学
習します。
シェルにはいくつかの種類があります。代表的なものとして標準シェル(sh)、Cシェル(csh)やbashがあります。各シェルともユーザー
が入力したコマンドを解釈する機能を持ちますが、一部の操作には違いがあります。
また、シェルの機能を活用することで、UNIX/Linuxシステムをさらに効率よく利用することができます。
なお、ユーザーが利用するシェルは、スーパーユーザーによってユーザー登録時に決められます。
今回は、シェルの基本的な機能として、メタキャラクタ、リダイレクト、パイプライン、順次処理、同時並行処理、プロセス管理につ
いて学習します。
メタキャラクタとは、ファイル名を表す特別な意味を持った記号です。メタキャラクタを含むファイル名は、該当するファイル名に置
き換えられるため、複数のファイル名や長い名前のファイル名を入力する際に役立ちます。
*は任意の文字列を表し、?は任意の1文字を表し、[ ]は[ ]内の文字のいずれか1文字を表します。また、[ ]は、文字と文字を-(ハイフ
ン)でつなぐことで、範囲内の1文字を表すこともできます。
UNIX/Linuxの多くのコマンドは、通常、キーボード(標準入力)から何らかの入力を受け取り、それを処理し、結果をディスプレイ(標準
出力)に出力します。シェルの機能を用いることで入出力を切り替えることができます。これをリダイレクトと呼びます。
リダイレクトを利用することで、ファイルから入力を受け取ったり、出力結果をファイルに保存することができるため、コマンドの結
果を様々な用途に利用することができます。
リダイレクトは、コマンドと入力または出力先ファイルの間に、入出力の切り替えを表す「>」(大なり)や「<」(小なり)などを指定して
表します。
上記の実行結果では、出力先の変更を表す「>」を利用して、lsコマンドの出力結果をdirlistファイルに保存しています。
パイプラインを用いると、コマンドの出力結果を直接次のコマンドの入力として渡すことができます。複数のコマンドを組み合わせて
実行結果を得たい場合に利用します。パイプラインは「|」(バーティカルバー)で表し、コマンドとコマンドの間に指定します。
パイプラインと組み合わせて頻繁に使用されるコマンドとしてmoreコマンドがあります。
パイプラインとmoreコマンドを組み合わせることで、任意のコマンドの実行結果を1画面ずつディスプレイに出力することができま
す。
コマンドは改行を区切りとして単一で入力することができますが、「;」(セミコロン)でコマンドを区切ることで、1行に複数のコマンド
を入力することができます。
1行に書かれたコマンドは先頭から順番に処理をします。これを「順次処理」と呼びます。
UNIX/Linuxシステムでは実行中のコマンドをプロセスという単位で呼びます。通常のコマンド実行ではプロセスは、前のプロセスが終了
してから次のプロセスが実行されますが、コマンドの最後に「&」(アンド)を記述することで、前のプロセスの終了を待たずに次のプロセ
スを実行することができます。これをバックグラウンドプロセスと呼びます。
「&」を付けてコマンドを実行すると数字が何桁か表示されます。この数字は各プロセスを管理するための番号でプロセスIDと呼びま
す。
上記の例では、引数に指定した秒数だけ処理を停止するsleepコマンドをバックグラウンドプロセスとして実行しています。
UNIX/Linuxシステムで、現在実行中のプロセスの一覧を調べるときにはpsコマンドを実行します。psコマンドは、実行中のプロセスの
名前とプロセスIDなどのプロセスの情報を表示します。
コマンドをバックグラウンドで実行する際に表示されるプロセスIDとpsコマンドの「PID」の欄に表示されるプロセスIDは同じになり
ます。
UNIX/Linuxシステムでプロセスを終了するときはkillコマンドを使用します。killコマンドの引数に終了したいプロセスのプロセスID
を指定します。
また、「&」を付けずに実行したプロセス(フォアグラウンドプロセス)は、Ctrl+cキーを押して終了します。
ここまで説明した以外にも、コマンドの入力を助けるヒストリ機能、エイリアス機能、ファイル名の補完機能、チルダパス名なども
あります。

More Related Content

More from Enpel

2 プロジェクトマネジメント 第6章 まとめ
2 プロジェクトマネジメント 第6章 まとめ2 プロジェクトマネジメント 第6章 まとめ
2 プロジェクトマネジメント 第6章 まとめEnpel
 
2 プロジェクトマネジメント 第5章 マネジメント実践(2)
2 プロジェクトマネジメント 第5章 マネジメント実践(2)2 プロジェクトマネジメント 第5章 マネジメント実践(2)
2 プロジェクトマネジメント 第5章 マネジメント実践(2)Enpel
 
2 プロジェクトマネジメント 第5章 マネジメント実践(1)
2 プロジェクトマネジメント 第5章 マネジメント実践(1)2 プロジェクトマネジメント 第5章 マネジメント実践(1)
2 プロジェクトマネジメント 第5章 マネジメント実践(1)Enpel
 
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)Enpel
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)Enpel
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)Enpel
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)Enpel
 
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群Enpel
 
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
2 プロジェクトマネジメント 第2章 マネジメントとPMBOKEnpel
 
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提Enpel
 
3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
3 基礎UML言語 第3章 クラス図とオブジェクト図(2) 3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
3 基礎UML言語 第3章 クラス図とオブジェクト図(2) Enpel
 
1 システム開発の基礎 第2章 システム開発作業(3)
1 システム開発の基礎 第2章 システム開発作業(3)1 システム開発の基礎 第2章 システム開発作業(3)
1 システム開発の基礎 第2章 システム開発作業(3)Enpel
 
1 システム開発の基礎 第2章 システム開発作業(2)
1 システム開発の基礎 第2章 システム開発作業(2)1 システム開発の基礎 第2章 システム開発作業(2)
1 システム開発の基礎 第2章 システム開発作業(2)Enpel
 
1 システム開発の基礎 第2章 システム開発作業(1)
1 システム開発の基礎 第2章 システム開発作業(1)1 システム開発の基礎 第2章 システム開発作業(1)
1 システム開発の基礎 第2章 システム開発作業(1)Enpel
 
1 システム開発の基礎 第1章 システム開発の基礎知識(2)
1 システム開発の基礎 第1章 システム開発の基礎知識(2)1 システム開発の基礎 第1章 システム開発の基礎知識(2)
1 システム開発の基礎 第1章 システム開発の基礎知識(2)Enpel
 
1 システム開発の基礎 第1章 システム開発の基礎知識(1)
1 システム開発の基礎 第1章 システム開発の基礎知識(1)1 システム開発の基礎 第1章 システム開発の基礎知識(1)
1 システム開発の基礎 第1章 システム開発の基礎知識(1)Enpel
 
3 基礎UML言語 第5章 演習問題
3 基礎UML言語 第5章 演習問題3 基礎UML言語 第5章 演習問題
3 基礎UML言語 第5章 演習問題Enpel
 
3 基礎UML言語 第4章 シーケンス図
3 基礎UML言語 第4章 シーケンス図3 基礎UML言語 第4章 シーケンス図
3 基礎UML言語 第4章 シーケンス図Enpel
 
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)Enpel
 
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)Enpel
 

More from Enpel (20)

2 プロジェクトマネジメント 第6章 まとめ
2 プロジェクトマネジメント 第6章 まとめ2 プロジェクトマネジメント 第6章 まとめ
2 プロジェクトマネジメント 第6章 まとめ
 
2 プロジェクトマネジメント 第5章 マネジメント実践(2)
2 プロジェクトマネジメント 第5章 マネジメント実践(2)2 プロジェクトマネジメント 第5章 マネジメント実践(2)
2 プロジェクトマネジメント 第5章 マネジメント実践(2)
 
2 プロジェクトマネジメント 第5章 マネジメント実践(1)
2 プロジェクトマネジメント 第5章 マネジメント実践(1)2 プロジェクトマネジメント 第5章 マネジメント実践(1)
2 プロジェクトマネジメント 第5章 マネジメント実践(1)
 
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
2 プロジェクトマネジメント ○第4章 PMBOKの9つの知識(4)
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(3)
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(2)
 
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
2 プロジェクトマネジメント 第4章 PMBOKの9つの知識(1)
 
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
2 プロジェクトマネジメント 第3章 PMBOKのプロセス群
 
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
2 プロジェクトマネジメント 第2章 マネジメントとPMBOK
 
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
2 プロジェクトマネジメント 第1章 プロジェクトマネジメントの前提
 
3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
3 基礎UML言語 第3章 クラス図とオブジェクト図(2) 3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
3 基礎UML言語 第3章 クラス図とオブジェクト図(2)
 
1 システム開発の基礎 第2章 システム開発作業(3)
1 システム開発の基礎 第2章 システム開発作業(3)1 システム開発の基礎 第2章 システム開発作業(3)
1 システム開発の基礎 第2章 システム開発作業(3)
 
1 システム開発の基礎 第2章 システム開発作業(2)
1 システム開発の基礎 第2章 システム開発作業(2)1 システム開発の基礎 第2章 システム開発作業(2)
1 システム開発の基礎 第2章 システム開発作業(2)
 
1 システム開発の基礎 第2章 システム開発作業(1)
1 システム開発の基礎 第2章 システム開発作業(1)1 システム開発の基礎 第2章 システム開発作業(1)
1 システム開発の基礎 第2章 システム開発作業(1)
 
1 システム開発の基礎 第1章 システム開発の基礎知識(2)
1 システム開発の基礎 第1章 システム開発の基礎知識(2)1 システム開発の基礎 第1章 システム開発の基礎知識(2)
1 システム開発の基礎 第1章 システム開発の基礎知識(2)
 
1 システム開発の基礎 第1章 システム開発の基礎知識(1)
1 システム開発の基礎 第1章 システム開発の基礎知識(1)1 システム開発の基礎 第1章 システム開発の基礎知識(1)
1 システム開発の基礎 第1章 システム開発の基礎知識(1)
 
3 基礎UML言語 第5章 演習問題
3 基礎UML言語 第5章 演習問題3 基礎UML言語 第5章 演習問題
3 基礎UML言語 第5章 演習問題
 
3 基礎UML言語 第4章 シーケンス図
3 基礎UML言語 第4章 シーケンス図3 基礎UML言語 第4章 シーケンス図
3 基礎UML言語 第4章 シーケンス図
 
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
3 基礎UML言語 第3章 クラス図とオブジェクト図(1)
 
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
3 基礎UML言語 第2章 オブジェクト指向の基本用語(3)
 

1 Linux入門 第4章 シェル