【プログラム初心者】SSHを使う環境があるならshellを少し覚えておこうpart2

sehllPrograming
Photo by Javier Garcia Chavez on Unsplash

簡単な shell を書いたら、応用きくことにびっくりくりくりくりっくり を Sagasoon.

前回、下記の記事で、linux のコマンドをご紹介いたしました。
それらのコマンドを頭にいれていただいた後、5行のプログラムをみてもらいたいかなと。

まだ読んでいない方は、是非読んでください。

【プログラム初心者】SSHを使う環境があるならshellを少し覚えておこうpart1
プログラム初心者の方は、やれPHPを覚えよう、HTML/CSSだ、javascriptを覚えようと、色々な言語に挑戦されると思います。とても楽しいですからねー。ただ、1個、追加でshellなんてのも覚えておくと楽ですよ。簡単だけど、いつも面倒だなーって思う手順やらをシェルに書いて実行するなんてこと、とても良くあります。今回は、シェルのお話を書かせてください。

小さいプログラムを作ってみよう

サンプルのディレクトリに移動して、ここに1個小さいプログラムを書いてみましょう。
shellと言われるバッチファイルですね。

やること

list という名前のファイルに、作りたいディレクトリの名前を一覧して書いておきます。
このプログラムは、この list に書かれたディレクトリを、一括で作ってくれるというものです。

はて??何につかうんだ、このシェルは!?
って思うかもですが、後で便利に使えるから見てみてくださいね。

実際のプログラム作成

mkdir sample_shell
cd sample_shell

で、カレントディレクトリを sample_shell に移動してはじめます。

listファイル作成

作成したいディレクトリ名を list に一覧にしておきましょう。
catというコマンドを紹介したと思いますが、ちょっとだけ背伸びした使い方をします。
catで、listをつくってみますね。

cat < list
dir001
dir002
dir003
dir004
EOF

この後、

cat list

とすると、

[user_001@users111 test]$ cat list
dir001
dir002
dir003
dir004

って、ちゃんと出てきますね?不思議ですねー。

プログラム作成

こんなプログラムを入力してみてください。

cat list |
while read dirname
do
  mkdir $dirname
done
ls -al

5行しかないので、らくちんですねえ。
cat してるってことは、list のファイルの中身を出すんでしょうね?
mkdir ってコマンドが出てきましたね。ディレクトリを作るんだろーなーっていう雰囲気は見られますね。
最後、ls してますので、ファイルの一覧が動くんでしょうね。

この5行で list に書かれていた dir001~dir004のディレクトリが自動で作られます。
参考までに、フローを描くとこんな感じですかね?

簡単でしたね(笑)

発想の転換

プログラムをみるときって、イメージするのがとても大事です。
たとえば、「知ってるコマンド」が出てきたら、「あーここで、これが動くなー」とかね。
それに加えて、「このプログラムはこれが出来ます」と機能の説明があれば、もっとイメージできそうです。
「ここを、こう変えたら、こんなことが出来るな!」と発想しやすいかもですね。

shellのコマンドを知らない人が、先ほどのプログラムをみても「ぴん」とこないですが、「mkdir」を知ってるあなたなら、すごくわかるかと思います。
先ほどのプログラム、 mkdir を、違うコマンドに変えたら、どうなるだろうなーとイメージがつきそうですよね。
cat に変えれば、list に書かれている一覧のファイルのすべてを、表示するんだな・・・とか。
mkdir は、指定された引数のディレクトリを作るんですから、たぶん、 $dirname ってところに、 dir001とか dir002 とかが指定されるんだろうなと。
ってことは、 cat dir001 とかが実行されるわけですものね。
list にある dir001 ってところに、a とか b とか、表示したいファイルを書けば、そうなりそうです。

メールを投げる

複数人に順番にメールを投げるというのもやれそうですよね?

mkdir $dirname

となっているところを

メールを投げるコマンド $dirname

とやってあげたら、 $dirname に指定されたメールアドレス( list にメールアドレス一覧を入れておけばいい )にメールが行きそうですよね?

ものすごい応用ききそうじゃないですか?

list に「一括にやりたい対象」を書いて、プログラムでそれを読み込むってことが楽にできますよってことに気が付けば、OKです。

まとめ

1個のコマンドを覚えたら、どこかに転がっているソースの見方が変わるってことです。
応用応用で、なんとでもなることが沢山あります。
プログラムは「新規に作る」というのもとても大事ですが、特に初心者の人は「真似して応用して作る」が一番いいです。
是非とも、さっきのプログラム(シェル)をいじって、色々やってみてくださいませ。

それでは!

炭酸野郎

今日も何かを Sagasoonを運用してます。炭酸野郎です。
皆さんの「何か」が探せるべく、記事書いてます。
新卒で中堅SIerに就職→10年ちょいで退職→フリーランス→起業。副業としてのブログに目覚める(今ここ)。
時間作って、色々なことがやりたいお年頃です!

炭酸野郎をフォローする
Programingshell初心者IT
炭酸野郎をフォローする
SAGASOON

コメント

タイトルとURLをコピーしました