読了『まんがでわかるLinux シス管系女子②』

積んでいたのをようやく崩しました。

本書は「まんがでわかるLinux シス管系女子」シリーズの第二巻で、第一巻を引き継ぎ、より複雑なシェルスクリプトを書く方法や、コマンドを叩いたりするのに必要なコマンドが紹介されています。

古びない知識

記載内容の初出は2013年~2015年です。扱う内容はLinuxコマンドであったりシェルスクリプトであったりするので、現在でもそのまま使えるでしょう。

ユースケースベースの利点

1巻からそのスタイルは変わっていないのですが、「こんなことできたらいいな」というユースケースからスタートしています。

なので、私のような初学者でも、実際の業務で試してみようという気分になってきます。*1

トピック

以下の二つのトピックは重点的に取り上げられています。

正規表現はそれ単体でも使われますが、取り上げられているfindやsedと一緒に使われているケースが紹介されています。

標準入出力は、例えば引数入力の代替手段としての標準入力が紹介されていますした。

他にも、while文、case、continue / breakなど、プログラミング言語であれば始めのほうに出てくる話が2巻の後半で集中するのは興味深いです。

体系的書籍への道筋

作中では10行前後のスクリプトが書かれていますが、それ以上の複雑な内容になってくると、マンガでカバーするのは難しくなっていくように思います。

なので、この後はもう少し体系的な書籍へ進むのが上達に有効なのかなと。

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

一応持ってますけど例によって積読です。

気になるところ

本筋とはあまり関係ないのですが、いまのみんとちゃんのようにゴリゴリにスクリプトを組んでいくと、「秘伝のタレ」化しないか少し心配なのですが、世の中のシス管現場はどうなっているですかね?

目次

最後に目次を挙げます。

  • 第1話 定期的に行う作業を自動実行したい
    • crontab
  • 第2話 鍵認証で安全にログインしたい
    • 公開鍵認証
  • 第3話 定時処理で自動的にscpしたい
  • 第4話 複数のサーバーのファイルを効率よく収集したい
  • 第5話 条件に当てはまるログの行数を集計したい
    • wcと算術展開
  • 第6話 複数のテキストファイルを一括編集したい
  • 第7話 表記が一定でない語句をまとめて置換したい
  • 第8話 正規表現のパターン指定をもっと簡潔にしたい
    • 大文字小文字の違いの無視と文字の範囲指定
  • 第9話 正規表現のパターン指定をさらに簡潔にしたい
    • 範囲外の文字の指定と行頭・行末の指定
  • 第10話 古い日付のファイルを探して消したい
    • find
  • 第11話 もっと複雑な条件でファイルを探したい
    • findの複雑な検索条件
  • 第12話 ディスクが満杯になる前にファイルを削除したい
    • dfと数値の大小での条件分岐
  • 第13話 前のコマンドが成功したら次も実行したい
    • ANDリスト
  • 第14話 前のコマンドが失敗したら次を実行したい
    • ORリスト
  • 第15話 親ディレクトリーにいちいち戻る操作を省略したい
    • サブシェル
  • 第16話 3パターン以上の場合分けをしたい
    • case
  • 第17話 社員番号の最初の方の文字で処理を振り分けたい
    • caseのパターン指定
  • 第18話 同じ処理を1時間繰り返し実行したい
    • whileループとsleep
  • 第19話 コマンドの出力をパイプラインで受け取りたい
  • 標準入力とread
  • 第20話 スペース混じりのファイル名もループ処理したい
    • whileループとread
  • 第21話 キーボードからの入力を待ち受けたい
    • readからの入力待ち
  • 第22話 キーボードからの入力を確認の後でやり直したい
    • continueとbreak
  • 第23話 コマンドのすべての出力をファイルに保存したい
  • 第23.5話 ユーザー作成用コマンドの違いを把握したい
    • useraddとadduserとuserdelとdeluser

おまけ

『まんがでわかるLinuxシス管系女子①』まとめたった - 等身大から1割増し

まんがでわかるLinux シス管系女子3 がめっちゃイイ - 等身大から1割増し

*1:例えば、自分の場合だとスクリプトの標準入力についてちゃんと見直してみようと思いました。