bash |
辞書:電算用語の基礎知識 サーバー編 (PNSVR) |
読み:バッシュ |
外語:bash: Bourne Again Shell |
品詞:固有名詞 |
|
情報 |
概要 |
元祖シェル(Bourne Shell)にコマンドライン編集機能を追加したもので、GPLで配布されている。
GNUプロジェクトの標準シェルになっているが、サイズが大きくまた若干遅いとされる。但し昨今の(高速な)コンピューターでは気にするほどのものではない。
特徴 |
コマンド履歴 |
コマンド履歴の機能があり、端末を閉じた際に、~/.bash_history ファイルに自動保存される。
ただし毎回上書き保存するため、複数の端末を開いていた場合、最後に閉じた端末の履歴しか保持されない。
機能 |
bashは比較的豊富な機能を持っている。
組み込みコマンドも豊富に用意され、このためシェルスクリプトもshより多機能である。
組み込みコマンド |
何もしない機能。
: > file
while :
do
…
done
新プロセスを作らず、現行のシェルで、ファイルを読み込みスクリプトを実行する。
例えば、ホームディレクトリーにある .bashrc を実行するには次のようにする。
. ~/.bashrc
補足 |
#!/bin/shは間違い |
Linuxの場合、/bin/sh は実体がなく、殆どのディストリビューションでは /bin/bash へのシンボリックリンクである。これは、古いシェルスクリプトを動作させるための互換性のために存在する。
Linuxで使われているbashは古いshと比べて多機能であるため、bashの機能を用いて作られたbashスクリプトは、古いshでは動作しない。
またDebianやUbuntuのように、標準シェルがdash(bashとは異なるash系のシェル)の場合、/bin/sh は /bin/bash へのシンボリックリンクとなるため、正常に動作せず誤作動を起こしてしまう。
「#!/bin/bash」と書いてあれば、DebianやUbuntuでもbashを入れてあれば正常動作する。
つまり、shでも動作するものなら /bin/sh でもよいが、bashでしか動作しないならbashのフルパスを直接書かねばならないということである。/bin/sh が bash である環境の場合、/bin/sh でも一見動作するが、それは極言すれば単に偶然である。
バグ |
多機能だけに、バグも多い。ほぼ全てのLinuxで使われており、稼働台数が多いことから、大きなバグを出すと影響範囲が広くなる。
2014(平成26)年には、セキュリティまわりで重大な不具合が発見され、大きな騒動となった。
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |