0: 超基本
用語
- シェル(shell)
- UNIX系OSにおいて、コンピュータの中核機能(カーネルと呼ばれる)にユーザーがアクセスするためのインターフェース(仲立ち)となるソフトウェアのこと。
- UNIX系OS(Unix-like)
- UnixというOSと似たような動きをするOS群の事。Linux, Solaris, MacOSなどが含まれる。Windowsは含まない。
- シェルスクリプト(shell script)
- シェルは通常画面にコマンドを入力していく。が、毎回入力する手間を省くため、実行すべきコマンドをあらかじめファイルに書いておいたものをシェルスクリプトという。
参考:シェル-Wikipedia
Unix系-Wikipedia
シェルの種類
Bシェル系とCシェル系に別れ、それぞれに複数のシェルが存在する。
とりあえずBシェル系の一種であるBashが高機能である上にLinuxやMacOSのデフォルトのシェルとなっているので、シェルの基本を学んでいるような方(私を含む)の場合はBashを学べばいいだろう。
シェルの置き場所
意識する頻度が多いのは/usr/bin
フォルダと/usr/local/bin
フォルダである。
/usr/bin
: 通常、(システムではなく)ユーザーが使うと考えられるコマンドが最初から一通り格納されているフォルダ。/usr/local/bin
: ユーザーが自分で入れたコマンド(自作や、他人が作ったものをインストール)を格納するフォルダ。
参考: /bin, /usr/bin, /usr/sbin, /usr/local/bin の違いとは?
1:シェルスクリプト作成の流れ
基本となるコマンド
作成~実行までの流れ
$ vi hello # テキストエディタなどで新規ファイルを作成
$ chmod +x hello # ファイルの実行権限を付加
$ ./hello # シェルスクリプト実行
作成
作成例
#!/bin/sh
echo 'Hello World!'
シェルスクリプトは、
vi
コマンドを用いて作成してもいいし、他の任意のテキストエディタを用いて作成してもいい。スクリプト内の改行はLFのみにする必要がある。UNIX系OSでは改行コードはLFのみであるため何も気にしなくていいが、WindowsはLF+CRで表されるため注意。
- ちなみにLF(Line Feed)はカーソルを真下に下げる事、CR(Carriage Return)はカーソルを先頭に戻す事を表すASCII文字コードのこと。
参考: Wikipedia - 改行コード
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 - CRとLFのちがい
参考文献
「[改訂第3版]シェルスクリプト基本リファレンス-----#!/bin/shで、ここまでできる」, 山森丈範, WEB+DB Press plus, 技術評論者, 2018