UNIX/Linuxシェルスクリプト マスタリングハンドブック[第2版]
概 要
Linux/UNIX系OSのシステム操作に必須のスキルとも言えるシェル操作を解説したチュートリアル兼サンプル集です。シェルにも様々な種類がありますが、本書ではbashで解説します。bashの起動から、コマンド操作、シェルスクリプトの作成と実行方法、bashの詳細な機能、bashの組み込みコマンド、rpmパッケージ管理を解説。さらに、ファイル操作やアカウント管理、システム管理、ネットワーク管理などに使える実用的なシェルスクリプトのサンプルも多数掲載しています。実務ですでにシェルスクリプトを使っている人にとってリファレンスとして重宝するだけでなく、これからコマンド操作やシェルスクリプトを学ぼうという人にも役立ちます。
| 著者 | 野川准子 |
| 価格 | 円(税込)(本体2000円) |
| ISBN | 978-4-7980-2633-6 |
| 発売日 | 2010/5/28 |
| 判型 | B6 |
| 色数 | 2色 |
| ページ数 | 384 |
| CD/DVD | - |
| 対象読者 | 初級 |
| シリーズ | - |
目次
第1章 bashとは
Section … bashとは
1.1 … シェルの概要
1.2 … シェルの種類と特徴
1.3 … bashの機能
1.4 … bashの起動方法
1.5 … bashの初期化ファイル
第2章 コマンドラインの編集
Section … コマンドラインの編集とは
2.1 … コマンドラインについて知る
2.2 … コマンドラインの編集とは
Section … カーソルの移動と文字の削除
2.3 … 文字単位でカーソルを移動する
2.4 … 文字単位で文字を削除する
2.5 … ワード単位でカーソルを移動する
2.6 … ワード単位で文字を削除する
2.7 … 行頭や行末へカーソルを移動する
2.8 … 行頭や行末まで文字を削除する
Section … コマンドヒストリの操作
2.9 … コマンドヒストリとは
2.10 … コマンドヒストリのリストを表示する
2.11 … 1つ古い … / … 新しいコマンドヒストリを表示する
2.12 … キーワードにマッチするコマンドラインを検索する
2.13 … コマンドラインの最新 … / … 最古へ移動する
2.14 … 最後に実行したコマンドラインを再度実行する
2.15 … キーワードを置換してからコマンドラインを実行する
2.16 … キーワードではじまる … / … 含む最後のコマンドラインを実行する
2.17 … コマンドライン番号を使用してコマンドラインを実行する
Section … テキスト補完の操作
2.18 … テキスト補完とは
2.19 … 外部コマンドとは
2.20 … 外部コマンドの補完の対象
2.21 … コマンド名を補完する
2.22 … ファイル … / … ディレクトリ名を補完する
2.23 … ユーザアカウント名を補完する
2.24 … ホスト名を補完する
2.25 … 変数名を補完する
2.26 … コマンドヒストリから補完する
第3章 シェルスクリプトの実行
Section … シェルスクリプトの実行
3.1 … シェルスクリプトとは
3.2 … シェルスクリプトを作成する
3.3 … sourceコマンドでシェルスクリプトを実行する
3.4 … ファイル名でシェルスクリプトを実行する
3.5 … sourceコマンドとファイル名で実行する方法の違い
第4章 シェルの機能
Section … シェルの展開
4.1 … シェルの展開とは
4.2 … シェルの展開の順番
Section … コメント
4.3 … コメント
Section … コマンドセパレータ
4.4 … 処理の終わり
4.5 … 終了ステータスが偽の場合コマンドを実行する
4.6 … 終了ステータスが真の場合コマンドを実行する
Section … ファイル名のマッチング
4.7 … ファイル名のマッチングについて
4.8 … 0文字以上のファイル名にマッチする
4.9 … 1文字のファイル名にマッチする
4.10 … 任意の1文字にマッチする
4.11 … その他のファイル名マッチング
4.12 … ブレース展開
Section … 文字列への展開
4.13 … チルダ展開
Section … 特殊な文字の無効化
4.14 … 特殊な文字の無効化について
4.15 … 右の1文字を無効化する
4.16 … すべての特殊な文字を無効化
4.17 … 一部を除き特殊な文字を無効化
Section … リダイレクト
4.18 … リダイレクトについて
4.19 … 標準入力のリダイレクト
4.20 … 標準出力のリダイレクト
4.21 … 標準エラー出力のリダイレクト
4.22 … 標準エラー出力を標準出力にコピー
4.23 … コマンドの入力を強制的に標準入力にする(ヒアドキュメント)
4.24 … 標準出力を標準入力に接続(パイプ)
Section … 変数
4.25 … 変数とは
4.26 … 変数へセットされている値を参照する
4.27 … 変数に値をセットする
4.28 … 位置パラメータを表す変数
4.29 … すべての位置パラメータを表す変数
4.30 … 位置パラメータの数を表す変数
4.31 … シェルスクリプトの名前を表す変数
4.32 … 直前のコマンドの終了ステータスを表す変数
4.33 … フラグの一覧を表す変数
4.34 … シェルのプロセスIDを表す変数
4.35 … バックグラウンドジョブのPIDを表す変数
4.36 … 変数の構文
4.37 … シェル変数
4.38 … 環境変数
4.39 … 配列とは
4.40 … 配列へ値をセットする
4.41 … 配列の値を参照する
4.42 … 配列の要素数と長さを参照する
Section … 関数
4.43 … 関数について
4.44 … 関数の定義と呼び出し
4.45 … 関数で変数を使う
Section … 特殊な置換と発展
4.46 … コマンド置換
4.47 … 算術式展開
4.48 … プロセス置換
Section … 複合コマンド
4.49 … サブシェル内で実行
4.50 … 現在のシェルで実行
4.51 … 算術式を評価する
4.52 … 条件を評価する
Section … シェルの流れを制御
4.53 … for文(パターン1)
4.54 … for文(パターン2)
4.55 … select文
4.56 … case文
4.57 … if文
4.58 … while文
4.59 … until文
第5章 シェルの組み込みコマンド
5.1 … 組み込みコマンドとは
5.2 … aliasコマンド
5.3 … unaliasコマンド
5.4 … :コマンド
5.5 … sourceコマンド
5.6 … jobsコマンド
5.7 … fgコマンド
5.8 … bgコマンド
5.9 … killコマンド
5.10 … disownコマンド
5.11 … bindコマンド
5.12 … builtinコマンド
5.13 … cdコマンド
5.14 … commandコマンド
5.15 … enableコマンド
5.16 … completeコマンド
5.17 … compgenコマンド
5.18 … breakコマンド
5.19 … continueコマンド
5.20 … declare(typeset)コマンド
5.21 … dirsコマンド
5.22 … pushdコマンド
5.23 … popdコマンド
5.24 … echoコマンド
5.25 … evalコマンド
5.26 … execコマンド
5.27 … exitコマンド
5.28 … exportコマンド
5.29 … fcコマンド
5.30 … getopts
5.31 … hashコマンド
5.32 … helpコマンド
5.33 … history
5.34 … letコマンド
5.35 … localコマンド
5.36 … logoutコマンド
5.37 … printfコマンド
5.38 … pwdコマンド
5.39 … readコマンド
5.40 … readonlyコマンド
5.41 … returnコマンド
5.42 … setコマンド
5.43 … shiftコマンド
5.44 … shoptコマンド
5.45 … suspendコマンド … 219
5.46 … testコマンド
5.47 … timesコマンド
5.48 … trapコマンド
5.49 … typeコマンド
5.50 … ulimitコマンド
5.51 … umaskコマンド
5.52 … unsetコマンド
5.53 … waitコマンド
第6章 RPMパッケージ管理
Section … パッケージについて
6.1 … パッケージとは
6.2 … パッケージの特長
Section … RPMでパッケージ管理
6.3 … RPMパッケージ名
6.4 … RPMパッケージの問い合わせ(クエリー)
6.5 … RPMパッケージの検証
6.6 … RPMパッケージのインストール、削除、アップグレード
6.7 … RPMパッケージの署名
Section … 簡単RPMパッケージ作成
6.8 … RPMパッケージ作成の流れ
6.9 … 環境設定
6.10 … シェルスクリプトのtarball化と配置
6.11 … specファイルの作成と配置
6.12 … rpmbuildコマンドでパッケージ化
6.13 … RPMパッケージへの署名
第7章 実用シェルスクリプト
Section … ファイル操作編
7.1 … ファイル名とファイルサイズを出力する
7.2 … 空のディレクトリを削除する
7.3 … ファイル名の拡張子を変更する
7.4 … ファイル名のスペースをアンダーバーに変更する
7.5 … 圧縮されているファイルを解凍する
7.6 … 最新のタイムスタンプのファイル10個を出力
7.7 … ファイル名を小文字に統一する
7.8 … 複数の文字コードで書かれたファイルの文字コードを統一する
Section … 便利ツール編
7.9 … ゴミ箱機能
7.10 … キーワードを含むmanページ閲覧
7.11 … コマンドの詳細を出力する
7.12 … Googleの検索キーワードを指定してFirefoxを起動する
7.13 … バックグラウンドジョブをkillする
7.14 … 画像のサムネイルを作成する
7.15 … 単位を変更する
Section … アカウント管理編
7.16 … システムユーザ … / … 一般ユーザ別リスト作成
7.17 … グループに属するユーザリスト
7.18 … ユーザごとのログイン履歴を作成する
7.19 … ユーザの一括登録
7.20 … アカウント期限切れのユーザリスト作成
7.21 … すべてのユーザをロック … / … アンロックする
7.22 … バックアップ付きユーザ削除
Section … システム管理編
7.23 … ホームディレクトリ容量の多い上位10ユーザをメールする
7.24 … /homeのバックアップ作成
7.25 … ファイルとiノードの使用率を検証する
7.26 … CPU負荷を検証する
7.27 … CPU使用率の高いユーザを特定する
7.28 … ハードディスクの不良ブロック検査
7.29 … ゾンビプロセスを報告する
7.30 … アクセスの多いホスト名トップ10を出力
7.31 … ネットワークログインしているユーザのリスト作成
7.32 … sshサーバへパスワードの入力なしでログインするための設定の自動化
7.33 … 仮想メモリを自動で追加する
Section … ネットワーク編
7.34 … pingを自動で実行する
7.35 … MACアドレスを調査する
7.36 … ログイン中のユーザにメールを送信する
7.37 … サーバへ接続してファイルをダウンロードする
7.38 … メールサーバへの接続確認
7.39 … WEBサーバのベンチマークを検証する
7.40 … WEBサーバアクセスのエラー解析
7.41 … DNSサーバの検証
7.42 … ネットワークトラブルの原因を調査する
Section … セキュリティ編
7.43 … その他のユーザに実行権のあるファイルを検索する
7.44 … suを使用せずにrootでログインしたら知らせる
7.45 … RPMパッケージの検証結果を比較する
7.46 … sshの接続に10回以上失敗したIPアドレスを拒絶する
7.47 … SUIDとSGIDがセットされているファイルを毎日比較する
7.48 … ファイルの所有者が存在しないUIDの場合移動する

