#Bash の概要

Bash は、Unix システムおよび Linux システム用のシェル (コマンド ライン環境) であり、ほとんどの Linux ディストリビューションのデフォルト シェルです。

シェルの意味

Bash を学習するには、まずシェルとは何かを理解する必要があります。シェルという言葉の本来の意味は「殻」であり、カーネルに相当します。これは、ユーザーがカーネルと対話するための対話インターフェースであるカーネルの外側の層の比喩です。

具体的には、「シェル」という言葉にはいくつかの意味があります。

まず、シェルとは、ユーザーと対話するための環境を提供するプログラムです。この環境には、ユーザーがキーボードからコマンドを入力できるコマンド プロンプトのみがあるため、コマンド ライン インターフェイス (CLI) とも呼ばれます。シェルはユーザーが入力したコマンドを受け取り、そのコマンドをオペレーティング システムに送信して実行し、結果をユーザーに返します。本書では、特に指定がない限り、シェルとはコマンド ライン環境を指します。

次に、Shell は、ユーザーが入力したコマンドを解釈するコマンド インタープリターです。変数、条件判断、ループ操作、その他の構文をサポートしているため、ユーザーはシェル コマンドを使用して、スクリプトとも呼ばれるさまざまな小さなプログラムを作成できます。これらのスクリプトは、コンパイルではなくシェル解釈を通じて実行されます。

最後に、シェルは、ユーザーがオペレーティング システムの機能を便利に使用するためのさまざまなガジェットを提供するツールボックスです。

シェルの種類

シェルには多くの種類があり、ユーザーにコマンド ライン環境を提供できるプログラムはすべてシェルと見なされます。

歴史的に、主なシェルは次のとおりです。

  • ボーンシェル (sh)
  • ボーン・アゲイン シェル (bash)
  • C シェル (csh)
  • TENEX C シェル (tcsh)
  • コーンシェル (ksh)
  • Z シェル (zsh)
  • フレンドリーなインタラクティブシェル (魚)

現在、Bash が最も一般的に使用されているシェルです。特に指定がない限り、以下の Shell と Bash は同義語として使用され、置き換えることができます。

次のコマンドは、現在のデバイスのデフォルトのシェルを表示できます。

$エコー$SHELL
/bin/bash

現在使用しているシェルが必ずしもデフォルトのシェルであるとは限りません。一般に、「ps」コマンドの結果の最後から 2 行目が現在のシェルです。

$ps
  PID TTY 時間 CMD
 4467 ポイント/0 00:00:00 バッシュ
 5379 ポイント/0 00:00:00 ps

上記の例では、ps コマンド結果の最後から 2 行目は、実行中のコマンド (cmd) が bash であることを示しており、現在使用されているシェルが Bash であることを示しています。

次のコマンドは、現在の Linux システムにインストールされているすべてのシェルを表示できます。

$ cat /etc/shells

上記 3 つのコマンドのうち、$ はコマンドライン環境のプロンプトであり、ユーザーはプロンプトの後に内容を入力するだけで済みます。

Linux では、各ユーザーが異なるシェルを使用できます。ユーザーのデフォルトのシェルは通常 Bash であるか、Bash と互換性があります。

システムのデフォルトのシェルを変更するには、「chsh」コマンドを使用します。たとえば、デフォルトのシェルを Bash から Fish に変更するには、まず Fish 実行可能ファイルがどこにあるかを確認する必要があります。

$どの魚

上記のコマンドは、Fish 実行可能ファイルの場所を見つけます。通常は /usr/bin/fish です。

次に、「chsh」コマンドを使用してデフォルトのシェルを切り替えます。

$ chsh -s /usr/bin/fish

上記のコマンドは、現在のデフォルトのシェルを Fish に変更します。

コマンドライン環境

ターミナルエミュレータ

グラフィカル環境を持たないLinuxシステム(サーバ専用システムなど)の場合、起動直後はコマンドライン環境となります。

ただし、最近のほとんどの Linux ディストリビューション、特に一般ユーザー向けのディストリビューションはグラフィカル環境です。ユーザーがシステムにログインすると、自動的にグラフィカル環境に入ります。コマンド ライン環境に入る前に、ターミナル エミュレータを起動する必要があります。

いわゆる「ターミナル エミュレータ」は、コマンド ライン ウィンドウをシミュレートするプログラムで、ユーザーがウィンドウ内でコマンド ライン環境を使用できるようにし、色、フォント サイズ、行間隔などの調整などのさまざまな追加機能を提供します。

異なる Linux ディストリビューション (正確には異なるデスクトップ環境) には異なるターミナル プログラムがあります。たとえば、KDE ​​デスクトップ環境のターミナル プログラムは konsole で、Gnome デスクトップ環境のターミナル プログラムは gnome-terminal です。ユーザーは 3 番目のターミナル プログラムをインストールすることもできます。サードパーティの端末プログラム。すべてのターミナル プログラムは、名前は異なりますが、基本的な機能は同じで、ユーザーがコマンド ライン環境に入ってシェルを使用できるようにするものです。

コマンドラインプロンプト

コマンドライン環境に入ると、シェルプロンプトが表示されます。プロンプトは多くの場合、ドル記号「$」で終わる一連の接頭辞です。ユーザーはこの記号の後にさまざまなコマンドを入力できます。

[ユーザー@ホスト名] $

上記の例では、完全なプロンプトは [user@hostname] $ で、プレフィックスはユーザー名 (user) に @、さらにホスト名 (hostname) を加えたものです。たとえば、ユーザー名は「bill」、ホスト名は「home-machine」、プレフィックスは「bill@home-machine」です。

root ユーザー (root) のプロンプトはドル記号 ($) ではなく、ポンド記号 (#) で終わることに注意してください。これは、ユーザーに root 権限があり、次のことができることを思い出させるために使用されます。各種操作を間違えないように注意してください。このシンボルは自分で定義できます。詳細については、「コマンド プロンプト」の章を参照してください。

簡潔にするために、以下のコマンド ライン プロンプトは $ のみで表されます。

入口と出口の方法

コマンドライン環境に入った後は、通常、Bash がすでに開かれています。シェルが Bash でない場合は、「bash」コマンドを入力して Bash を起動できます。

$バッシュ

Bash 環境を終了するには、「exit」コマンドを使用するか、「Ctrl + d」を同時に押します。

$exit

Bash の基本的な使い方は、コマンド ラインにさまざまなコマンドを入力することであり、非常に直感的です。練習として、「pwd」コマンドを入力してみてください。 Enterキーを押すとカレントディレクトリが表示されます。

$pwd
/家/私

誤って「pwe」と入力すると、入力が正しくなく、対応する実行可能プログラムがないことを示すプロンプトが返されます。

$ pwe
bash: pwe: コマンドが見つかりません

Shell と Bash の歴史

シェルは Unix システムの誕生とともに誕生しました。

1969 年に、Ken Thompson と Dennis Ritchie が Unix の最初のバージョンを開発しました。

1971 年に Ken Thompson が Thompson シェルと呼ばれるオリジナルのシェルを作成しました。そのプログラム名は、ユーザーが Unix を使いやすくするために「sh」でした。

1973 年から 1975 年にかけて、John R. Mashey はオリジナルの Thompson シェルを拡張してプログラミング機能を追加し、シェルをプログラミング言語にしました。このバージョンのシェルは、Mashey シェルと呼ばれます。

1976 年、Stephen Bourne は Mashey シェルの機能を結合し、Bourne シェルと呼ばれる新しいシェルを書き直しました。

1978 年、カリフォルニア大学バークレー校の Bill Joy は、シェルに C 言語構文を提供する C シェルを開発しました。プログラム名は「csh」です。これは、sh に代わる最初の真の UNIX シェルであり、Berkeley UNIX の 2BSD バージョンに組み込まれました。

1979 年に、Bourne Shell が組み込まれた UNIX の 7 番目のバージョンがリリースされ、Bourne Shell が Unix のデフォルトのシェルになりました。 Thompson シェル、Mashey シェル、および Bourne シェルはすべて Bell Labs の製品であり、プログラム名はすべて「sh」であることに注意してください。ユーザーにとって、それらは同じものであり、基礎となるコードが異なるだけです。

1983 年に David Korn が Korn シェルを開発しました。そのプログラム名は「ksh」です。

1985 年、Richard Stallman は Free Software Foundation (FSF) を設立しました。Shell の著作権は Bell Company に属していたため、Unix の著作権紛争を避けるために、GNU ライセンスを使用して著作権で保護された無料の Shell プログラムを作成することにしました。

1988 年、フリー ソフトウェア財団の最初の有給プログラマーであるブライアン フォックスは、基本的に Bourne シェルのクローンであるシェルを作成しました。これは Bourne-Again SHell、または略して Bash と呼ばれました。このプログラムは「bash」と呼ばれていました。ご利用は無料です。その後、これは徐々に Linux システムの標準シェルになりました。

1989 年に、Bash バージョン 1.0 がリリースされました。

1996 年に、Bash バージョン 2.0 がリリースされました。

2004 年に、Bash バージョン 3.0 がリリースされました。

2009 年に、Bash バージョン 4.0 がリリースされました。

2019 年に、Bash はバージョン 5.0 をリリースしました。

ユーザーは、「bash」コマンドの「--version」パラメータまたは環境変数「$BASH_VERSION」を通じてローカルの Bash バージョンを確認できます。

$ bash --バージョン
GNU bash、バージョン 5.0.3(1)-リリース (x86_64-pc-linux-gnu)

# または
$ echo $BASH_VERSION
5.0.3(1)-リリース

作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0