【ばっしゅ】

Bash とは?

💡 Linuxで最も使われるシェル、コマンド操作とスクリプト自動化の定番
📌 このページのポイント
Bash(ターミナル) bash — ターミナル $ ls -la drwxr-xr-x 5 user staff 160 Mar 25 src/ -rw-r--r-- 1 user staff 1024 Mar 25 index.html $ echo "Hello, World!" Hello, World! $ grep -r "TODO" ./src ./src/app.js: // TODO: add error handling コマンドを入力 → シェルが解釈・実行 → 結果を表示
Bashターミナルでのコマンド操作イメージ
ひよこ ひよこ

Bashってシェルってどこがよいの?

ペンギン先生 ペンギン先生

とにかく「どこでも使える」のが最大のメリット。LinuxサーバはほぼBashがデフォルトで、DockerコンテナもBash前提のことが多い。業界標準として学習リソースも多いし、書いたスクリプトが他の環境でも動きやすい。

ひよこ ひよこ

「#!/bin/bash」ってよく見るけど何?

ペンギン先生 ペンギン先生

シバン(shebang)行と呼ばれる、スクリプトを実行するインタープリタを指定する行。「このスクリプトはBashで実行してください」という宣言で、ファイルの1行目に書く。「#!/usr/bin/env python3」ならPythonで実行する指定。

ひよこ ひよこ

ZshやFishより学ぶべき?

ペンギン先生 ペンギン先生

サーバ管理をするなら絶対にBashから学ぶべき。ほとんどのLinuxサーバのデフォルトがBashだから。個人の作業用ならZshやFishの方が便利なこともあるけど、Bashの知識があればZshも問題なく使える。

ひよこ ひよこ

Bashスクリプトで気をつけることってある?

ペンギン先生 ペンギン先生

一番多い落とし穴は「変数のクォーティング」だね。「$filename」をダブルクォートで囲まないと、スペースを含むファイル名で壊れる。スクリプトの先頭に「set -euo pipefail」を書くのも鉄則で、-eでエラー時に即座に停止、-uで未定義変数をエラーに、-o pipefailでパイプ内のエラーも捕捉するんだ。実はBashスクリプトには「ShellCheck」という静的解析ツールがあって、よくあるミスを自動で指摘してくれるよ。プロのインフラエンジニアでも必ず使う定番ツールだね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
Bashって出てきたら「LinuxやmacOSで広く使われるシェルプログラム、コマンド操作とスクリプト自動化の標準環境」と思えばOK!
📖 おまけ:英語の意味
「Bourne Again SHell」 = 「また生まれたボーンシェル」=Bourneシェルの再生・後継
💬 Brian Fox(GNU Project)が1989年に作成。Bourne Shell(sh)のダジャレで「Bourne again(再び生まれた)」という意味
← 用語集にもどる