シェルスクリプトとは何か? 「概念」,「はじめてのチュートリアル」,「自作スクリプトの作成」 「覚えるべきコマンド10」,「 設定や挙動の構成 」
を紹介しています。
1 概要について
シェルスクリプトとは何か?
シェルスクリプトとはシェルで使えるコマンドが書いてあるもの。
今現在みんなが使っているPCやスマホなどにはOS(オペレーションシステム)という物で動いている。 大半はボタンやメニューなどがあるGUI(グラフィカル操作が可能な物)で動いているが、ここで言うところの シェルとはCUI(文字ベースでコンピューターを操作する物)で操作する物を指す。
コンピューターを操作するOSは大きく以下の2通りのUIで分けられる
CUI:キャラクタ(文字)ベース | GUI(グラフィカルUI)ベース |
※ 例えば・・・ 「 GUIベース 」 のウィンドウズやMACなどで、フォルダを開くにはマウスでフォルダをクリックするが 「 CUIベースの 」 シェルの場合は lsというコマンドや cdというコマンドで目的のフォルダを開く。
課題
- 1 穴埋め
( )スクリプトとは( )で使える( )が書いてあるプログラム
- 2 実践 Macのターミナルを起動し,ls,cdなどでフォルダを移動する
2 はじめてのチュートリアル1〜 helloコマンドを作ろう
開発環境の準備
基本はテキストが打てる環境であれば何でもいい。
Bashコマンドについて
例えばシェル上で下記のコマンドを打つとどうなるでしょうか?
$ echo "hello"
helloと表示されますね。 同じようにこれをファイルに書いて保存するのですが、いくつかルールがあります。
シェルスクリプトの書き方
シェルスクリプトファイルは基本的に.shの拡張子で作成します。 実際のコードを書く前に最初の一行目は#!/bin/shを書きます。
hello.sh
#!/bin/sh
echo "Hello,Wourld!"
どちらかのコマンドで実行。
$ sh test.sh
$ bash test.sh
1行目に書く(#!/bin/sh)はshebangと呼ばれます。(#!/bin/bash)を指定すればshを拡張したbashのコマンドセットの利用が可能になります。
このように一般のプログラミングと同じようにコードをファイルに書いて、実行することができます。 ここに書かれているコマンド類を駆使するのですが、まずは基本的なコマンドを10ほど覚える事をオススメします。
※実行権限を与えれば 引数としてシェルを指定せずに実行可能になります。
$ chmod 500 test.sh
$ ./test.sh
※この場合 .sh がついてなくても動作します。 test.sh -> test
$ mv test.sh test
$ ./test
課題
ここからはgoogleで検索もしながら課題を埋めていこう。
シェルスクリプトを書くために必要な最初の1行目とは? これを指して( )と言う。
shとbashの違いとは何か?
3 定型化すべきコマンドをシェルスクリプトにまとめて、自作スクリプトとして動かせるようにする。
課題
下記ドキュメントを読んで一通りコマンドを打ったり、シェルスクリプトを作成してみよう。
4 ヘルプなしで使用したいコマンド10選
課題
これらをオプションは全て覚えなくてもいいが、シチュエーションに応じて使えるようにしよう。 ※10選といいつつ、10以上あります
- help
- man
- read
- echo
- expr
- cd
- ls
- cp
- mv
- mkdir
- chmod
- chown
- rm
- touch
- find
- grep
可能であれば、シェルスクリプトでの制御構文,特別な変数も最低限マニュアルを見ずに組めるようにしましょう。 ※こういう物があるんだぐらいの理解でも、当面は問題はない。
- 入力、出力 read,echo
- if,case,swith,while,until,for
- 特別な変数 $0,$n,$#,$*,$@,$?,$$,$!
- 変数、配列の書き方
- オペレーターの書き方
- 関数の書き方
5 設定や挙動に関する基礎的な構成を理解する。
下記ドキュメントを読んで、シェルがOSで実行される順番や概念を理解しよう
課題
- 読み込み順をチャートにしてみよう
- 「 シェルスクリプト PATHを通す 」で検索して実際にパスを通してみよう。
この章の、まとめと今後の課題
この章の課題を一通りこなせばシェルスクリプトについての理解はある程度できているはずです。。 今後の課題は仕事、開発でどのようにこれらを活かしていくかが課題となります。
次章以降でそれらを紹介していく。