「bashとは」を初心者向けに解説|Linux・Macで使うコマンド操作の基本
「bashとは何?」「ターミナルやシェルとは何が違う?」「bashはプログラミング言語なの?」と疑問に感じている人も多いでしょう。
bashは、LinuxやmacOSなどで広く利用されているシェル(Shell)の一つです。ターミナルからコマンドを入力して、ファイル操作やプログラムの実行、環境設定などを行う際に利用します。
この記事では、bashの意味や特徴、基本コマンド、シェルとの違い、bashスクリプトまで、プログラミング初心者にもわかりやすく解説します。
bashとは?
bashとは、LinuxやmacOSなどで利用されるシェルの一種です。
bashは「Bourne Again SHell」の略で、UNIX系OSで使われてきた「Bourne Shell(sh)」をもとに開発されました。
bashを使うと、ターミナルから文字を入力して、OSに対してさまざまな命令を実行できます。
たとえば、現在いるディレクトリのファイルを確認するには、次のコマンドを入力します。
ls
ファイルやディレクトリを移動する場合は、次のように入力します。
cd Documents
このように、bashはユーザーとOSの間を取り持つインターフェースとして機能します。
bashは何に使う?
bashは、主に以下のような用途で利用されます。
- ファイルやディレクトリの操作
- プログラムの実行
- ソフトウェアのインストール
- 環境変数の設定
- サーバーの操作
- コマンドの自動化
- bashスクリプトの実行
- 開発環境の構築
特にLinuxサーバーを操作するときには、bashの知識が役立ちます。
WebエンジニアやPythonエンジニア、インフラエンジニアなどがターミナルを操作するときにも、bashのコマンドを利用する機会があります。
bashとシェルの違い
「bash」と「シェル」は同じ意味で使われることがありますが、厳密には違います。
シェルは種類を表す概念で、bashはシェルの具体的な種類の一つです。
たとえば、以下のようなシェルがあります。
| シェル | 特徴 |
|---|---|
| bash | Linuxなどで広く使われてきた代表的なシェル |
| sh | UNIX系OSで古くから使われているシェル |
| zsh | bashより多機能で、macOSでも利用される |
| fish | 初心者にも使いやすい設計のシェル |
| PowerShell | Windowsなどで利用されるシェル |
つまり、
シェルという大きなカテゴリーの中にbashがある
と考えるとわかりやすいでしょう。
bashとターミナルの違い
bashを理解するときに混同しやすいのが「ターミナル」です。
ターミナルは、簡単にいうとコマンドを入力するための画面・アプリケーションです。
一方、bashは入力されたコマンドを解釈して実行するシェルです。
イメージとしては、
ターミナル → bash → OS
という関係になります。
たとえばMacの「ターミナル」アプリを開いて、
ls
と入力すると、bashなどのシェルがコマンドを解釈し、OSに処理を依頼します。
ターミナルとbashの違い
| 項目 | ターミナル | bash |
|---|---|---|
| 役割 | コマンドを入力する画面 | コマンドを解釈・実行する |
| 種類 | アプリケーション | シェル |
| 例 | macOS Terminal | Bash |
| 操作 | コマンドを入力する | コマンドを処理する |
この違いを理解しておくと、Linuxやプログラミングの学習がスムーズになります。
bashで使える基本コマンド
ここからは、bashでよく利用する基本的なコマンドを紹介します。
ls:ファイル一覧を表示
ls
現在のディレクトリにあるファイルやフォルダを一覧表示します。
詳細情報も表示したい場合は、次のようにします。
ls -l
cd:ディレクトリを移動
cd Documents
「Documents」というディレクトリに移動します。
一つ上のディレクトリに戻る場合は、次のようにします。
cd ..
ホームディレクトリに戻る場合は、次のように入力できます。
cd ~
pwd:現在の場所を確認
pwd
現在いるディレクトリのパスを表示します。
「今どのフォルダにいるのかわからなくなった」という場合に便利です。
mkdir:ディレクトリを作成
mkdir test
「test」というディレクトリを作成します。
touch:ファイルを作成
touch test.txt
「test.txt」という空のファイルを作成できます。
cp:ファイルをコピー
cp test.txt backup.txt
test.txtをbackup.txtという名前でコピーします。
mv:ファイルを移動・名前変更
mv test.txt Documents/
ファイルをDocumentsディレクトリへ移動します。
また、次のようにするとファイル名を変更できます。
mv old.txt new.txt
rm:ファイルを削除
rm test.txt
ファイルを削除します。
rmはファイルを直接削除するため、操作するときは注意が必要です。
cat:ファイルの内容を表示
cat test.txt
テキストファイルの内容をターミナル上に表示できます。
bashではコマンドを組み合わせられる
bashの便利な特徴の一つが、複数のコマンドを組み合わせて処理できることです。
たとえば、次のように記述します。
mkdir test && cd test
このコマンドでは、次の処理を連続して実行します。
testディレクトリを作成- 作成した
testディレクトリへ移動
&&は、前のコマンドが正常に終了した場合に、次のコマンドを実行するために使われます。
パイプ「|」もbashの重要な機能
bashでは、コマンドの出力を別のコマンドに渡すこともできます。
これをパイプと呼びます。
ls | grep ".py"
この例では、lsの結果をgrepに渡しています。
その結果、ファイル一覧の中から.pyを含むものを検索できます。
パイプを使うことで、複数のコマンドを組み合わせて複雑な処理を実行できます。
bashはプログラミング言語なの?
「bashはプログラミング言語なの?」という疑問もよくあります。
結論として、bashにはプログラミング言語としての機能があります。
単純なコマンド実行だけでなく、以下のような機能を利用できます。
- 変数
- 条件分岐
- 繰り返し
- 関数
- 引数
- ファイル操作
そのため、bashを使ってプログラムを記述することも可能です。
bashスクリプトとは?
bashで複数のコマンドをまとめて記述したファイルを、一般的にbashスクリプトと呼びます。
たとえば、以下のようなファイルを作成します。
#!/bin/bash
echo "Hello, World!"
ファイル名をhello.shとした場合、実行権限を付けます。
chmod +x hello.sh
その後、次のコマンドで実行します。
./hello.sh
すると、以下のように表示されます。
Hello, World!
このように、bashスクリプトを利用すると、毎回手作業で入力していたコマンドを自動化できます。
bashの変数
bashでは変数を利用できます。
name="Taro"
echo $name
実行すると、次のように表示されます。
Taro
Pythonなどのプログラミング言語と比べると書き方が少し異なるため、注意しましょう。
bashでは変数を代入するときに、次のように記述します。
name="Taro"
=の前後にスペースを入れないのがポイントです。
bashの条件分岐
bashではifを使って条件分岐もできます。
if [ "$name" = "Taro" ]; then
echo "Hello Taro"
fi
条件に応じて処理を変更できるため、簡単な自動化プログラムを作ることができます。
bashの繰り返し処理
forを使えば、同じ処理を繰り返すこともできます。
for file in *.txt
do
echo "$file"
done
この例では、カレントディレクトリにある.txtファイルを順番に処理します。
大量のファイルを処理するときなどに便利です。
bashとPythonの違い
bashとPythonは、どちらもプログラムを記述できますが、得意なことが異なります。
| 項目 | bash | Python |
|---|---|---|
| 主な用途 | OS・コマンド操作 | アプリ・データ処理など |
| ファイル操作 | 得意 | 得意 |
| コマンド実行 | 非常に得意 | 可能 |
| 複雑なプログラム | やや不向き | 得意 |
| Web開発 | 不向き | 得意 |
| AI・機械学習 | 不向き | 得意 |
| 自動化 | 得意 | 得意 |
たとえば、
「複数のコマンドを順番に実行したい」
という場合にはbashが便利です。
一方、
「データを加工したい」「AIプログラムを作りたい」
という場合にはPythonが向いています。
bashはWindowsでも使える?
bashはLinuxやmacOSで特に広く利用されていますが、Windowsでも利用できます。
代表的なのがWSL(Windows Subsystem for Linux)です。
WSLを利用すると、Windows上でLinux環境を利用できます。
そのため、WindowsユーザーでもLinuxコマンドやbashを学習できます。
また、Gitをインストールすると利用できるGit Bashもあります。
Linuxを学ぶならbashは必要?
Linuxを扱うのであれば、bashの基本操作を覚えておくと非常に役立ちます。
特に以下のコマンドは、最初に覚えておくとよいでしょう。
pwd
ls
cd
mkdir
touch
cp
mv
rm
cat
grep
さらに、以下のようなコマンドを覚えると、サーバー管理や開発環境の構築などにも応用できます。
chmod
ps
kill
curl
ssh
git
すべてのコマンドを暗記する必要はありません。
「何ができるコマンドなのか」を理解して、必要なときに調べられるようにすることが重要です。
bashを学ぶメリット
1. Linuxを操作しやすくなる
LinuxサーバーではGUIではなく、ターミナルから操作することが多くあります。
bashの知識があれば、ファイル操作やプログラムの実行などをスムーズに行えます。
2. 作業を自動化できる
bashスクリプトを作成すれば、繰り返し作業を自動化できます。
たとえば、以下のような作業です。
- ファイルのバックアップ
- ログの整理
- プログラムの実行
- データの一括処理
- サーバー上の定型作業
3. プログラミング学習にも役立つ
PythonやRubyなどを学ぶ場合でも、ターミナルを使う機会があります。
そのため、bashの基本操作を知っていると、プログラミング学習のつまずきを減らせます。
bashでよくあるエラー
bashを使っていると、次のようなエラーに遭遇することがあります。
command not found
bash: xxx: command not found
これは、入力したコマンドをbashが見つけられない場合などに表示されます。
コマンドのスペルを確認したり、必要なソフトウェアがインストールされているか確認したりしましょう。
Permission denied
Permission denied
権限が不足している場合などに表示されます。
ファイルの権限を確認するには、次のコマンドなどを利用します。
ls -l
bashを学ぶなら最初に何を覚えるべき?
bash初心者の場合、最初から複雑なスクリプトを書く必要はありません。
まずは以下の順番で学習するとよいでしょう。
STEP1:ディレクトリ操作
pwd
ls
cd
mkdir
STEP2:ファイル操作
touch
cp
mv
rm
cat
STEP3:検索・加工
grep
find
sort
STEP4:コマンドの組み合わせ
|
&&
>
>>
STEP5:bashスクリプト
#!/bin/bashから始めて、変数、条件分岐、繰り返し処理などを学びます。
bashとは?まとめ
bashとは、LinuxやmacOSなどで利用される代表的なシェルです。
ターミナルから入力されたコマンドを解釈し、OS上でさまざまな処理を実行します。
bashを理解すると、以下のようなことができるようになります。
- ファイル操作
- プログラムの実行
- Linux操作
- サーバー操作
- 作業の自動化
- bashスクリプト
また、bashは単なるコマンド入力環境ではなく、変数・条件分岐・繰り返し処理などを使ったスクリプトを作成できるという点も重要です。
プログラミング初心者の場合は、まずpwd、ls、cd、mkdir、cp、mv、rmなどの基本コマンドから覚えるとよいでしょう。
bashは、Linuxやサーバーを扱うエンジニアにとって基本的なスキルの一つです。







