はじめに



パソコンでプログラミングなどをする際、人の言葉が直接パソコンへ伝わっているわけではありません。


人の言葉をパソコンにわかりやすいようにパソコンの言葉に直して伝達することで初めて意思疎通が可能です。


人とコンピューターをつなぐ架け橋、いわゆる通訳や受付係を務めてくれるのがBashやShellになります。


今回は、Linux系やUnix系、macOSなど広く普及しているBashについての紹介です。


Bashの基本的な使い方やコマンド操作、シェルスクリプトの作成方法などについて解説していきます。


Bashとは



BashとはBourne Again Shellを略したコマンド言語です。


シェルの一種であり、UnixやLinux系のOSに普及しています。ブライアン・フォックスによって、ベーシックなシェルをパワーアップさせて生み出されました。


現在は、LinuxディストリビューションやmacOSで普及していますが、Windowsでも利用可能です。


Windowsで利用する際は、Windows Subsystem for Linuxを介してBashを利用することができます。


Bashは、フリーソフトウェアなので無料で使うことが可能です。


Bashの特徴

Bashの概要を説明したので次にBashの特徴について紹介していきます。


Bashは、先ほど説明した通り、Linux、Unix、macOSやWindowsと対応OSの幅広いことがまず特徴です。


他には、コンパイルが不要やコマンドが簡易的と使いやすいのが特徴になります。


対応OSが広い

Bashは、Shellの一種なので、対応OSは割となんでもこいです。Shellが動かせたらBashも動かすことは可能といえます。


それぞれのOSで使うにあたり、細かな注意点はあるものの、基本的な操作も変わりなく、使いやすいコマンドです。


コンパイル不要

Bashは、シェルスクリプトを作成する際と同じでテキストエディタを使います。シェルスクリプトは、コンパイルなどを使わずに作成することが可能です。


PythonやC言語などのようなコンパイルを使うことがないので比較的覚えやすいコマンド言語でもあります。


コマンドが簡易的



Bashは、コンパイル不要のコマンド言語のため、コマンドが簡易的で使いやすくなっています。


Bash以外でシェルスクリプトを作ったことがあるならほとんど操作が同じなのですぐに覚えることが可能です。


コメントの有効活用

Bashはコメントを入力することができます。


コメントを使えると、現在どこの作業をどのようにしているか、見直すべきポイントはなど、メモや伝言板のように使うことが可能です。


プロジェクトなどで他のエンジニアやプログラマーと作業を共同する場合は、コメントを有効活用することがポイントになります。


Bashの基本コマンド操作



Bashの基本コマンドはシェルスクリプトと同じです。マイナーな違いはありますが、基本は同じになります。


Bash以外でシェルスクリプトを組んだことがある場合は、すぐに馴染むことが可能です。


ここでは、Bashの基本コマンド操作として、「最初の入力指定」と「出力コマンド」などを紹介します。


最初の入力指定

Bashでコマンド操作をするためには、最初の入力指定で「#!/bin/bash」を入力する必要があります。


「#!/bin/bash」と入力することでBashのシェルコマンドを作っていくよとコンピューターへの宣言です。


「#!/bin/bash」のbashが抜けていたらbashの機能が使えないので注意しましょう。


出力コマンド

Bashでコマンド作成する際、出力に使うのは、Shellと同じ「echo」です。


例えば、Bashを使って「Hi, How are you?」と出力したい場合、コマンド入力は次のようになります。

  1. echo “Hi, How are you?”

この入力をすれば、次が実行結果です。

  1. Hi, How are you?

コメント記入



Bashでは、Shell同様、コマンドの間や冒頭など要所でコメントを書くことが可能です。


コメントを記入する際は、頭に「#」を入力するだけになります。「#」を入力した後ろの文章は、コメントになります。


「#」ひとつつけるだけでコメントになりますので、コメントを入力したい場合は、「#」を忘れず入力することがキーです。


変数について

Bashで変数を使うことは可能です。気をつけるべきポイントは、「英数字を使うこと」です。日本語は、対応外になるので注意しましょう。


それから記号の「_」を使うことです。もう一つは、「数字が先頭におけない」という例外があります。


入力コマンド

Bashでコマンド作成するとき、入力時に使うのは、これもShellと同じ「read」です。実行することで入力した文字をBashが受けます。


例えば、「read text」と入力すると、文字列はecho使って返す処理を行います。


Bashの注意点



Bashでコマンド入力作業をしていく上で注意点がいくつかあります。


シンプルで簡易的なコマンド言語ですが、意外なところに落とし穴があるため、注意が必要です。


Bashを使ってシェルスクリプトを作成していく上で注意するポイントをまとめました。


#はコメントの前に使う

Bashは、コメントを使うことができます。コメントを使うと他のエンジニアやプログラマーと共同作業が可能です。


ただ、#を忘れてコメント書くとプログラムのエラーにつながるため注意が必要になります。


変数の定義づけ



Bashのシェルスクリプトで変数を定義する場合は、他のプログラミング言語と同じです。


「半角英数字」や「_」を使用します。全角英数字や他の記号は使えませんので注意が必要です。


改行コード

Bashでシェルスクリプトを作成するにあたり、要注意点は、OSによって改行コードが異なるところです。


特にWindowsとUnixは非常に近い改行コードのため、よく混同してしまいます。


Macの場合、macOSバージョン9まで改行コードがありましたが、今はUnixと同じです。まず、Windowsで改行する場合、「CR+LF」です。


つまり、「echo “bird”<CR><LF>」と入力すると「bird」になります。


一方、Unixは、「LF」のみになります。こちらの場合は、「echo “bird”<LF>」と入力して「bird」という出力結果です。


しかし、WindowsのコマンドをUnixで使ってしまった場合、「echo “bird”<CR><LF>」の実行結果は、「bird<CR>」になります。


Bashの役割



Bashの基本構造や注意点などについて説明してきましたが、Bashの基本となる役割が何かを知らない場合があります。


ここからは、Bashでシェルスクリプトを作ることで何の役に立つのか、何ができるのかなどについての紹介です。


Bashを活用することで日々の業務を効率化Bashを活用することで日々の業務を効率化できる便利な役割があります。


大量処理

シェルスクリプトが力を発揮する場面は、大量処理です。ファイルを大量に作成して、圧縮するとなれば、人の手を介して作業をすると時間がかかります。


1つや2つのファイルならそこまで時間を要しませんが、100、1000やそれ以上と増えるとかなりの手間です。


また大量に作ったファイルを圧縮するのに人だけではなくコンピューターにも負荷がかかります。


こう言った場面で、シェルスクリプトを使って大量処理させることが可能です。


繰り返しの処理

日々の業務でファイルのバックアップを取りたいとき、いくつもファイルがあればとても時間がかかります。


フォルダを作成して、ファイルをフォルダにおとして、日付ごとなどに整理するなど手間と時間が必要です。


それだけを業務に割り当てられたら対応できるかもしれませんが、ヒューマンエラーなどのリスクもあります。


Bashを使ってシェルスクリプトを作成することでファイルのバックアップやディレクトリ指定まで作業を効率化することが可能です。


シェルスクリプトとは



シェルスクリプトとは、複数のコマンドによって生成されたプログラムのことです。


一連の流れの処理を自動化して作業効率を向上させるためなどに用いられています。


シェルとシェルスクリプトを混同しがちですが、シェルは人とコンピューターをつなぐ旗振り役で、シェルスクリプトは、プログラムです。


シェルスクリプト作成方法



Bashでシェルスクリプトを作成します。コンソールに「What’s up?」と出力する簡単なスクリプトを作って練習です。


まず、新規ファイルを作成するのですが、Linuxのテキストエディタを起動する標準コマンドのviを使います。


ファイル名は、「$ vi ファイル名. sh」のように最後は、.shです。ファイルを作成したら、テキストエディタを開けます。


エディタを開けたら下記のコマンドを入力しますが、「#!/usr/bin/bash」はbashを使用していることの証明です。


1行目は、このコマンドがくるので2行目以降から命令文を入力していきます。コンソールに「What’s up?」と出力したいので、コマンドは以下です。

  1. #!/usr/bin/bash
  2. echo “What’s up?”
  3. exit0

ファイルが完成したらbashコマンドでシェルスクリプトを実行して実行結果を確認します。

  1. What’s up?

「What’s up?」とコンソールに出力されたら無事完成です。Bashコマンドで実行する場合は、「$ bash ファイル名.sh」になります。


終了するときは、「exit 0」と入力して終了です。


Shellとは



Shellとは、端的にいうと人とコンピューターの架け橋です。パソコンでプログラミングなどをする際、人からコンピューターへオーダーがあります。


このオーダーを人の言語からパソコンの言語に変換して電卓する役割がShellです。要はプログラムの一種になります。


類似しているのが、Windowsのコマンドプロンプトです。ただ、Shellは、Linux系やUnix系のOSに広く普及しています。


Shellの特徴



Shellは、種類が色々あります。Bashはその一部でベーシックなシェルです。先述のBashの特徴は、Shellの特徴とほとんど同一です。


Bashは、Shellの仲間なのでBashができることはShellでできることです。Shellの特徴は、大まかに紹介すると、対応OSが幅広くなっています。


LinuxやUnixはもちろん、macOSやWindowsにも対応可能です。コンパイルも不要なところはBashと同じです。


対応OSはBashと同じ

Shellは、色々なOSに広く普及しています。LinuxやUnix、macOSやWindowsなど人気のOSは対応可能です。


コマンド言語

Shellは、コマンド言語です。スクリプト言語同様、シンプルなコマンドでスクリプトを作ることができます。


しかし、Shellは、使う種類によってコマンドが異なります。


例えば、スタンダードなBashならコマンド言語ですが、tcshの場合は、C言語に近いため、少し複雑です。


BashとShellの違い



BashとShellの違いは、ほとんどありません。BashとShellをよく混同して別物と考えてしまうケースがありますが、BashとShellは同じです。


それは、Shellというコマンドがあり、Bashは、その中の一種類になります。BashやShellは、人とコンピューターをつなぐ架け橋です。


イメージするなら会社に電話をかけると担当の方が直接電話に出ることはあまりありません。


まず、受付か電話の係りの人に電話がつながり、そこで名前と用件を伝えて担当者につなげてもらうことが一般的です。


BashやShellは、この電話係りの人と同じ役割を担います。そのためどちらも違いはありません。同じ種類です。


まとめ



Bashは、Shellの種類の中でもっともベーシックでもっとも使いやすいコマンド言語です。Shellには、他にC Shellといわれるtc shellや z shellがあります。


近年は、z shellを好んで使うケースが増えてきましたが、初めてShellのスクリプトを作成するならスタンダードなBashがおすすめです。