シェルスクリプトマガジン

test

フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門

投稿日:2016.07.26 | カテゴリー: 推薦図書

本書ではUNIXのシェルスクリプトを用いて、Webサイトを作成して、Twitterにツイートしたりログを集計したり、WordPressからデータを抜き取ったりするなど、実用的なアプリケーションを短時間に開発する手法を解説します。
PCやOS、サーバ等の設定や、Open usp Tukubaiコマンドのインストール方法なども詳しく書かれ、非常に実践的な内容です。
※本書は、2014年7月にアスキー・メディアワークス(現KADOKAWA)より出版されたものです。

目次

第1章 はじめに

1.1 経緯と対応、起こった問題
1.2 シェルスクリプトで解決を図る
1.3 本書のねらい
1.4 対象となる読者・レベル
1.5 本書の背景・周辺
1.6 補足
1.7 本書の構成

第2章 環境の準備

2.1 構成の概要
2.2 使うマシン(環境)選びと環境の設定
2.3 通信の諸設定
2.4 ドメインの取得・ホスト名の設定
2.5 コマンドまわりの整備
2.6 補足

第3章 文章管理の仕組みを作る

3.1 データの整理の前に頭を整理する
3.2 データ構造を作る
3.3 便利コマンドを作る・使う(その1)
3.4 便利コマンドを作る・使う(その2)
3.5 補足

第4章 ウェブサイトを作る

4.1 Apacheを設定してCGIシェルスクリプトを動かす
4.2 記事の表示
4.3 ログを記録する
4.4 記事の選択機能をつける
4.5 パスを書き換える
4.6 前後の日記記事に移動できるようにする
4.7 記事の属性を埋め込む
4.8 体裁を整える
4.9 ナビゲーション機能を強化する
4.10 プレビュー機能をつける
4.11 処理時間を計測してみましょう
4.12 補足

第5章 ウェブサイトを外部とつなぐ

5.1 タイトルに記事名を入れる
5.2 RSSを作成する
5.3 ソーシャルボタン・広告を表示する
5.4 シェルスクリプトでTwitterに記事のタイトルとURLをツイート

第6章 シェル芸でログの集計

6.1 logrotateの設定
6.2 ログを眺める
6.3 日付の変換
6.4 主要な指標を端末で取得
6.5 もっと凝った出力を作る
6.6 補足

第7章 おわりに

付録A WordPress(MySQL)からデータを抜き取る

A.1 mysqlコマンドを使う
A.2 SQLではなくてシェルスクリプトでデータを整理
A.3 画像等を記事ディレクトリに放り込む
A.4 htmlファイルのリンクを修正
A.5 カテゴリを抜き出す
A.6 記事ディレクトリに時刻を入れる
A.7 アップロードと確認

プログラミング言語AWK

投稿日:2016.07.26 | カテゴリー: 推薦図書

1989年に初めての邦訳が刊行され、その後何回か絶版の憂き目にあいつつも、不死鳥のごとく蘇り、様々な出版社から復刊を果たしている「プログラミング言語AWK」。この度、awkファンの熱い声に支えられ、USP出版から3回目の復刊を果たします。
テキスト処理と演算に絶大な効果を発揮する「awk」は、開発当時の1970年代から、開発者たちによって「30年後に真価がわかるだろう」と予言されていたといいます。
本書は、テキスト処理スクリプト言語の原点「awk」開発者たちによる、多種多様な例題を収録した読み応えたっぷりの解説書です。この本でしか味わえない、原著の奥深さを味わってください。

目次

第1章 AWK入門

 1-1 手はじめに

  AWKプログラムの構造
  AWKプログラムの実行
  エラー

 1-2 単純な出力

  全部の行の印字
  特定の欄の印字
  欄の数のNF
  計算と印字
  行番号の印字
  文章の出力

 1-3 凝った出力

  欄の模様がえ
  出力の整列

 1-4 選択

  比較による選択
  計算による選択
  文の中身による選択
  パターンの組み合わせ
  データの検証
  BEGINとEND

 1-5 AWKによる計算

  数え上げ
  和と平均の計算
  文章の操作
  文字列の隣接
  最後の入力行の印字
  組み込み関数
  行数,単語数,文字数の数え上げ

 1-6 制御文

  If-Else文
  While文
  For文

 1-7 配列

 1-8 便利な「一行野郎」たち

 1-9 お次は何?

 

第2章 AWK言語

  入力ファイルcontries
  プログラムの書式

 2-1 パターン

  BEGINとEND
  パターンとしての式
  文字列照合パターン
  正規表現
  複合パターン
  範囲を示すパターン
  パターンのまとめ

 2-2 アクション

  式
  制御文
  空文
  配列

 2-3 ユーザ定義関数

 2-4 出力

  print文
  出力区切子
  printf文
  ファイルへの出力
  パイプへの出力
  ファイルとパイプの閉鎖

 2-5 入力

  入力区切子
  副行レコード
  getline関数
  コマンド行での変数への代入
  コマンド行引数

 2-6 他のプログラムとの組み合わせ

  system関数
  AWKプログラムをシェル・コマンドに

 2-7 まとめ

 

第3章 データ処理

 3-1 データ変換と導出

  コラムの和
  百分率と分位の計算
  コンマつきの数
  固定欄入力
  プログラムの相互参照検査
  書式付出力

 3-2 データの検証

  対応の取れた区切り子
  パスワード・ファイルの検査
  データ検証プログラムの生成
  どっち版のAWK?

 3-3 BUndleとunbndle

 3-4 複行レコード

  空行で区切られたレコード
  複行レコードの処理
  ヘッダとトレイラつきのレコード
  名前と値からなるデータ

 3-5 まとめ

 

第4章 レポートとデータベース

 4-1 レコードの生成

  単純なレポート
  もう少し複雑なレポート

 4-2 パッケージ化された質問とレポート

  定型書簡

 4-3 関係データベース・システム

  自然和
  relfile
  AWKもどきの問い合わせ言語q
  qからawkへの翻訳プログラムqawk

 4-4 まとめ

 

第5章 語句処理

 5-1 文章の無作為生成

  無作為選択
  決まり文句の生成
  乱れ文

 5-2 対話的文章操作

  能力テスト:算数
  能力テスト:クイズ

 5-3 文章処理

  単語の数え上げ
  文書整形
  相互参照の一貫性保持
  KWIC検索の生成
  索引の生成

 5-5 まとめ

 

第6章 小さな言語

 6-1 アセンブラとインタープリタ

 6-2 グラフ生成言語

 6-3 整列生成プログラム

 6-4 逆ポーランド電卓

 6-5 普通の電卓

 6-7 まとめ

 

第7章 アルゴリズムの実験

 7-1 整列

  挿入法
  分割法
  整列2分木法

 7-2 輪郭分析

 7-3 位相整列

  広さ優先の位相整列
  深さ優先の探索
  深さ優先の位相整列

 7-4 Make:ファイル更新プログラム

 7-5 まとめ

 

第8章 エピローグ

 8-1 言語としてのAWK

 8-2 効率

 8-3 結論

 

付録A AWKのまとめ

 

付録B 演習問題回答

伽藍とバザール

投稿日:2016.07.26 | カテゴリー: 推薦図書

Linux、オープンソース(OSS)関係者必読の書。OSSソフトウェア開発の実態と、そのコミュニティ、そしてハッカーたちの価値観を、オープンソースのエバンジェリスト、ESRことエリック・スティーブン・レイモンドが可視化する。
なぜハッカーたちは無償でソフトウェア開発に携わるのか? Linuxが成功した理由とは? OSSの所有権とは? OSSとコミュニティを理解するために避けて通ることができない一冊です。
※本書は1999年に出版されたものを、USP出版より再出版したものです。

目次

第1章 伽藍とバザール

 1 伽藍方式とバザール方式
 2 なにはともあれメールは通せ
 3 ユーザは大事な財産
 4 はやめのリリース、しょっちゅうリリース
 5 バラがバラでないのは?
 6 Popclient からFetchmail へ
 7 Fetchmail の成長
 8 続・Fetchmail の教訓
 9 バザール方式の前提条件とは
 10 フリーソフト/オープンソースの社会的な意義
 11 マネジメントとマジノ線について
 12 謝辞
 13 もっと考えたい人のための文献リスト
 14 エピローグ:Netscape もバザール方式を受け入れる
 15 原注
 

第2章 ノウアスフィアの開墾

 1 そもそもの矛盾
 2 ハッカーイデオロギーのさまざま
 3 放縦な理論と純潔な実践
 4 所有権とオープンソース
 5 ロックと土地所有権
 6 贈与経済としてのハッカー文化
 7 ハッキングのよろこび
 8 評判のさまざまな相貌
 9 所有権と評判によるインセンティブ
 10 エゴの問題
 11 謙虚さの美徳
 12 評判ゲームモデルが持つ分野全体としての意義
 13 どれほどすばらしい贈り物?
 14 ノウアスフィア的所有権となわばりの動物行動学
 15 紛争の原因
 16 プロジェクト構造と所有権
 17 紛争とその解決
 18 文化への順応過程とアカデミズムとの関連
 19 結論:慣習から慣習法へ
 20 これからの研究の課題
 21 原注、書誌
 22 謝辞
 

第3章 魔法のおなべ

 1 魔法と区別がつかない
 2 贈与するおたくたちを超えて
 3 製造業的な誤解
 4 「情報はフリーになりたがっている」というのはウソだ。
 5 逆転した共有地
 6 ソース非公開にする理由
 7 利用価値による開発費用手当
 8 販売価値の困るところ
 9 間接販売価値モデル
 10 オープンにするとき、クローズドにするとき
 11 オープンソースのビジネス生態学
 12 成功に対処する
 13 オープンR&D とパトロン制の再発明
 14 目標到達までの道のり
 15 結論:革命のあとの人生
 16 謝辞
 17 補遺:なぜドライバをクローズドにするとベンダーは損をするのか
 

第4章 エリック・S・レイモンド大いに語る

 

第5章 ノウアスフィアはぼくたちの開墾を待っている

 

第6章 訳者あとがき

覚えて便利 いますぐ使える! シェルスクリプトシンプルレシピ54

投稿日:2016.07.26 | カテゴリー: 推薦図書

シェルスクリプトを習得するにあたって、越えなければならないいくつかの壁があります。
本書は、変数、数値、文字列、ファイル操作…様々な局面において壁にぶつかったとき、それを乗り越えるための本質的な回答を54本収録したレシピ集です。
本書には、初心者を卒業し、シェルスクリプトの匠を目指す人であれば学んでおきたいノウハウが、薄い本の中にこれでもか!と詰まっています。
収録されている54のレシピを習得すれば、シェルスクリプトの世界がそれを足がかりに広がっていくことを感じられるはずです。
シェルの深みを知り、より高みを目指したいあなたにこそ、手にとっていただきたい一冊です。

目次

第1章 基本的な作業

レシピ1-1 C言語のようなforループ
レシピ1-2 C言語のようなforループ―その2―(ムダ知識編)
レシピ1-3 誤作動しない正しい文字列評価のしかた
レシピ1-4 対話的な入力受けつけ
レシピ1-5 標準エラー出力を使うプログラムの扱い
レシピ1-6 標準エラー出力を自ら使う

第2章 変数操作

レシピ2-1 変数名の記述ミスへの対策
レシピ2-2 変数を未定義化する
レシピ2-3 変数が未定義かどうか判別する
レシピ2-4 子プロセスへの変数渡し
レシピ2-5 親プロセスへの変数渡し
レシピ2-6 配列変数を使う
レシピ2-7 連想配列を使う

第3章 数値操作

レシピ3-1 Basic並の高度な計算をする
レシピ3-2 四捨五入する
レシピ3-3 乱数を得る
レシピ3-4 10進数⇔16進数および10進数⇔8進数変換
レシピ3-5 10進数⇔2進数変換
レシピ3-6 数字として扱える文字列かどうかの判定

第4章 文字列操作

レシピ4-1 文字列の長さを知る(len)
レシピ4-2 文字列の一部を抽出する(left$,mid$,right$)
レシピ4-3 大文字⇔小文字変換
レシピ4-4 ASCIIコード⇔キャラクタ変換(asc,chr$)
レシピ4-5 正規表現でマッチした文字列の取り出し
レシピ4-6 特定文字のトリミング
レシピ4-7 パス名中のファイル名・ディレクトリ名を抽出する
レシピ4-8 ランダムな文字列の作成

第5章 フィールド・ライン処理

レシピ5-1 コマンド引数を処理する
レシピ5-2 最後からn番目のフィールドを得る
レシピ5-3 特定の業を出力する
レシピ5-4 1行ごとに処理をする―その1―
レシピ5-5 1行ごとに処理をする―その2~4―
レシピ5-6 並べ替え(ソート)をする
レシピ5-7 CSV形式のデータの処理
レシピ5-8 1列ごとに処理をする

第6章 ファイル操作

レシピ6-1 詳細なファイル情報を知る
レシピ6-2 タイムスタンプを変更する
レシピ6-3 指定ディレクトリ以下のファイルの総サイズを知る
レシピ6-4 指定ディレクトリ以下の特定のファイルを操作する
レシピ6-5 安全にテンポラリファイルを作る
レシピ6-6 デッドリンク(無効なシンボリックリンク)を消す
レシピ6-7 外部ファイルのヒアドキュメント

第7章 システム情報収集

レシピ7-1 OSの種類を知る
レシピ7-2 自分のファイルパスを知る
レシピ7-3 自分のプロセスIDを知る
レシピ7-4 現在のプロセス数を知る
レシピ7-5 自ホストのIPアドレスを知る
レシピ7-6 絶対パスを知る
レシピ7-7 多重起動チェック

第8章 デバッグに役立つレシピ

レシピ8-1 実行の様子をトレースする
レシピ8-2 デバッグメッセージを分離する
レシピ8-3 パイプ(標準入出力)の中身を覗き見る
レシピ8-4 パイプ(標準入出力)をゆっくり流す

第9章 シェルスクリプトの応用例

実践ユニケージ開発手法02 シェルスクリプト学習編

投稿日:2016.07.26 | カテゴリー: 推薦図書

本書は、独特な方法でシステムを構築するユニケージ開発手法の基本を理解し、習得するための実践教材です。
対象となる読者は、基本的なUNIX/Linux の知識(端末、コマンド、ファイルの概念、パスなど)があること、 また、「ユニケージ開発手法01 コマンド学習編」の内容を理解している方です。
ここでは、「コマンド学習編」で学んだコマンドを組み合わせて、データ処理を行うシェルスクリプトの作成に必要なbashの文法や機能について学習し、ユニケージの作法にしたがってシェルスクリプトでプログラミングを行う練習も行います。

目次

第1章 はじめに

1.1 通常のプログラミングとの違い

第2章 シェルスクリプト

2.1 シェルスクリプトの書き方と役割
2.2 ちょっとしたルール

第3章 ファイル展開(ワイルドカード)

第4章 ブレース展開

第5章 リダイレクト

5.1 ファイル記述子
5.2 記号

第6章 追記・ヒアドキュメント

第7章 パイプ(パイプライン)の動作

第8章 シェル変数

8.1 定義と代入
8.2 変数の生存期間
8.3 予約シェル変数・特殊なシェル変数
8.4 配列
8.5 コマンド置換

第9章 クォートとエスケープ

第10章 終了ステータスとパイプステータス

第11章 AND演算子とOR演算子

第12章 テストコマンド(test, [)

12.1 テストコマンドの書式
12.2 テストコマンドの機能
12.3 PIPESTATUSとエラー処理

第13章 制御構文

13.1 if文
13.2 for文
13.3 while文
13.4 case文
13.5 パイプでつなげたwhile文、for文は要注意!

第14章 帳票出力(ITEMRANKING)

14.1 ディレクトリとデータ準備
14.2 データを見る
14.3 出力のイメージ
14.4 シェルスクリプトの記述
14.5 引数の受け入れ
14.6 項目間演算

第15章 POMPAの作成(POMPASAKUSEI)

15.1 想定するアプリケーション
15.2 データ
15.3 URIAGE_TENPO
15.4 URIAGE_HINBETU
15.5 【TRY】

第16章 時系列データの帳票(BUMONTREND)

16.1 記述
16.2 解答例

第17章 履歴マスタの扱い

17.1 販売履歴(HANBAI_RIREKI)
17.2 実装

Vol.40

投稿日:2016.07.22 | カテゴリー: バックナンバー

今月号の特集では、シェルスクリプトでログを高速処理します。ログというと、Webサーバーのアクセスログ、Syslog、イベントログなど多岐に渡りますが、データ量が膨大だと処理に時間がかかりすぎるという問題があります。それを解決したのが「Tukubai」を用いたユニケージ開発手法です。筆者の実体験をもとに、解析時間が千分の一になった全貌をご紹介します。
巻末資料(6ページ)には、「シェルスクリプトで高速処理! Personal Tukubaiでログを分析しよう! 」「漢のUNIX」「Personal Tukubaiを使ってみた」の3記事で登場した、Tukubaiコマンドの解説集を収録。
ぜひお見逃しなく。

  • shell-mag ブログの 2016年7月 のアーカイブを表示しています。

  • -->