シェルスクリプトを使って、日々の作業を自動化する練習です
シェルとは
まずはシェルについて
あまり難しいことは考えずに簡単に言うと、シェルとはコンシェルジュのことです。
黒い画面(ターミナル)上に常駐してくれていてユーザーの依頼を受けて、ユーザーに代わってコンピューター(カーネル)に命令を出し、結果を返してくれます。
シェルの種類
コンシェルジュは大勢いますので、誰か一人を使います。それぞれのコンシェルジュによって微妙に方言が違いますので、慣れた一人を使うといいです。
kaliではデフォルトのシェルは ” zsh ” ですので、私はいつも彼を使っています。
ちなみにわが家(kali on ラズパイ)のコンシェルジュたち一覧( cat /etc/shells で確認できます)
sh, bash, dashなど大勢居ます。
この中のtmuxとscreenは別物です
現在のシェルの確認
現在勤務中のシェルが誰かを確認するには
echo $SHELL
現在は ” zsh ” がコンシェルジュを務めてくれているのがわかります。
シェルスクリプトとは
そのコンシェルジュにやってもらう作業をまとめた台本(スクリプト)のことです。
ここでは日常のアップデート作業を例にとって進めたいと思います。すなわち
- sudo apt update
- sudo apt upgrade -y
- sudo apt autoremove
のセットを一まとめにして実行させてみます。
シェルスクリプトの作成
vimなどの適当なテキストエディタを起動します。なおファイル名はここでは仮に ” rw1.sh ” としておきます。
下記の内容をテキストで記述し保存します。
#!/bin/zsh
sudo apt update
sudo apt upgrade -y
sudo apt autoremove
1行目はzshを使ってスクリプトを実行するという宣言です。(この宣言が大事:ちなみに「 #! 」をシバンと呼びます)
テキストエディタは、画面左上の左から4番目の ” mousepad ” の方が使いやすいかも知れません。
シェルスクリプトの実行
保存したファイルの位置(ここでは/home/kali/rw1.sh)を確認しておき、
zshで実行します。
zsh /home/kali/rw1.sh
以上でシェルスクリプトは完成ですが、” zsh ” コマンドをつかわずに直接実行できるようにファイルの権限を変更しておきます
ファイルの権限の変更
まずは変更前の権限の確認をします
ls -l /home/kali/rw1.sh
4文字目が ” – ” になっていますので、このままでは実行できないファイルとなっています。
そこで下記のコマンドで権限を変更します。(権限の変更について詳しくはこちら)
chmod 755 /home/kali/rw1.sh
変更後の確認をします
ls -l /home/kali/rw1.sh
4文字目にxがあるので実行可能のファイルに変更されています。
シェルスクリプトの直接実行
実行可能ファイルとしたことで ” zsh ” を使わずに、ファイルを直接実行できます。
/home/kali/rw1.sh
実行可能ファイル
実行可能ということは、単なるファイルではなく、ファイルでもあるけどアプリでもあるという状態になったということです。
これをシェルの目的ファイルとして実行する場合は
zsh /home/kali/rw1.sh
アプリとして実行する場合は
/home/kali/rw1.sh
このどちらも可能となったという訳です。
この両者の実行結果は同じとなります。
まとめ
主に日常行うルーチンワークをまとめたシェルスクリプトを作成・実行してみました。
コメント