Bash(バッシュ)とは / About Bash
Shell Script / シェルスクリプト
【Bash】
Bash(バッシュ)とは / About Bash
「Bash(バッシュ)」は、
「PC」「サーバー」などの中枢機能と、直接、コマンドを通じて対話ができる「シェル」の一つ。
一番基本的なシェル「sh」の拡張型シェルとして知られています。
「PC」などに標準インストールされていることも多い「シェル」です。
「Bash(バッシュ)」とは
「Bash(バッシュ)」は、
PCなどの端末の中枢機能と、コマンドを通じて直接対話ができるプログラミング言語「シェルスクリプト」の一つ。
正式名称は、「Bourne Again Shell(ボーン・アゲイン・シェル)」。
「Born again(ボーン・アゲイン)」という「生まれ変わり」という意味をかけているそうです。
「シェル」と呼ばれる言語の一つで、
「シェル」で記述されたプログラムを「シェルスクリプト」という。
「Bash(バッシュ)」は、シェルの一つ「sh」を拡張させたもの。
「sh」は、シェルの中でも、最も基本的なシェル。
「sh」の機能を含んでいる「Bash(バッシュ)」は、
良く使われているシェルで、OSに標準で組み込まれていることも多い。
Back
「シェルスクリプト」とは
「シェルスクリプト」とは、
「端末」「コマンドプロンプト」「パワーシェル」「ターミナル」などと呼ばれる操作画面に、
コマンドを入力することによって利用するプログラミング言語「シェル」によって作成された、
命令などを記述し、実行可能な状態にしたプログラミングの集合体である「プログラミングコード(スクリプト)」のことをいう。
「シェル」と「シェルスクリプト」の違いは、
「シェル」は、プログラム言語の分野の一つで、
「シェルスクリプト」は、プログラミング言語「シェル」で作成したプログラムコードの文章。
ファイルを作成し、
「シェルスクリプト」で記述した実行コマンドをファイル保存し、
「端末」「コマンドプロンプト」「パワーシェル」「ターミナル」などのコマンド操作画面で、
ファイルを読み込ませて実行することにより、記述した「シェルスクリプト」が実行される。
実行する「シェルスクリプト(プログラミングコード)」を保存しておけるので、非常に便利。
「シェルスクリプト」では、
「for」「if」などの構文も利用可能。
シェルの2つの側面
- ユーザーインターフェイス(コマンドインタープリタ)・・・コマンド入力
- インタープリタプログラム()・・・シェルスクリプト記述用
Back
「シェルスクリプト」の特徴
- c言語でも記述可能→複雑
- 移植性の高いプログラム言語
Back
「シェル」の種類
sh(Bourne Shell) | 本来のUNIX標準シェル |
Bシェル系 |
shシェルからの派生
標準プロンプト =「$」
|
bash(Bourne-Again shell) |
Bシェル系の復活
shの上位互換性を保持
cshのヒストリ機能・エイリアス機能・ジョブコントロール機能
タブによる補完機能
コマンドライン編集機能
|
Cシェル系 |
shシェルをC言語風にアレンジしたシェルcshから派生
標準プロンプト ・・・・・ %
cshは、C言語風にアレンジしたため、文法がshと異なり、cshで記述すると多くの問題が発生する。
|
tcsh |
Cシェル系
cshの機能拡張版
タブによる補完機能
コマンドライン編集機能
|
ash |
bashのように従来のshへの拡張を行わず、従来のshに近い実装を行ったシェル。
UbuntuなどのDebian系Linuxでは、dashという名前でインストールされている。
|
ksh |
Solarisの標準で付属。Shに拡張機能を追加したシェル。
|
zsh |
Bシェル系のkshとCシェル系のtcsh、両方の特徴を取り入れ、大幅な拡張をしたシェル。Bシェル系に分類されるが、%が標準プロンプト。
|
Back
「シェルスクリプト」と「C言語」
シェルスクリプト | C言語 |
インタラクティブ言語(対話形式) | UNIX系のOS本体やアプリケーションの多くが、C言語で作られている |
コンパイル不要 | ソースファイルと実行ファイルが同一。コンパイル言語 |
実行ファイル=テキストファイル | あらかじめコンパイルが必要 |
異なるOS上でもそのまま動作する | 実行ファイルはバイナリファイル |
実行速度は遅い | OSごとに再コンパイルが必要 |
プログラムの修正が容易 | 実行速度が速い |
エラー処理などを簡略化できる | プログラム修正は困難 |
文字列の処理が容易 | エラー処理など、細かい処理がすべて必要 |
既存コマンドを組み合わせて、一定の動作を行うことに適している |
文字列の処理が面倒。
新たなアプリケーションやOS本体を記述するのに適している。
|
Back