Unixパワーツール 第3版

目次



本書の使い方
序文

第T部 基本的なUnix環境

1 章 はじめに
	1.1 Unixの優れている点とは?
	1.2 大きな力を手に入れる
	1.3 Unixのコア
	1.4 Unixとのコミュニケーション
	1.5 連携して動作するよう設計されたプログラム
	1.6 いろいろなシェル
	1.7 どのシェルを使っているのか
	1.8 誰でもシェルでプログラミングができる
	1.9 内部コマンドと外部コマンド
	1.10 カーネルとデーモン
	1.11 ファイル名
	1.12 ファイル名の拡張子
	1.13 ワイルドカード
	1.14 ツリー構造のファイルシステム
	1.15 ホームディレクトリ
	1.16 パス名の構成
	1.17 ファイルのアクセス権限(パーミッション)
	1.18 スーパーユーザ(root)
	1.19 ファイルがファイルではないとき
	1.20 スクリプト
	1.21 Unixにおけるネットワークと通信
	1.22 X Window System

2 章 ヘルプの活用
	2.1 manコマンド
	2.2 whatisによるコマンドの一行解説の表示
	2.3 whereisによるコマンドの保存場所の検出
	2.4 オンラインマニュアルページの検索
	2.5 使用しているUnixシステムの名前
	2.6 使用しているコマンドのバージョン
	2.7 使用しているtty
	2.8 システムにログインしているユーザ
	2.9 infoコマンド

第U部 環境のカスタマイズ

3 章 Unixシェルの設定
	3.1 ログイン時のシステムの動作
	3.2 Mac OS Xのターミナルアプリケーション
	3.3 シェル設定ファイル
	3.4 ログインシェルと対話型シェル
	3.5 シェル設定ファイルの内容
	3.6 設定ファイルを変更するときのヒント
	3.7 シェル設定ファイルにおける絶対パス名の使用
	3.8 設定ファイルの読み込み動作の変更
	3.9 set promptのテストに関するヒント
	3.10 異なる端末の自動設定
	3.11 端末の設定:TERMのテスト
	3.12 端末の設定:リモートホスト名とXディスプレイのテスト
	3.13 端末の設定:ポートのテスト
	3.14 端末の設定:環境変数のテスト
	3.15 端末の設定:端末テーブルの検索
	3.16 端末の設定:ウィンドウサイズのテスト
	3.17 端末の設定:ウィンドウ名の設定とテスト
	3.18 ホストごとの設定用の.cshrc.$HOSTファイル
	3.19 「ログイン」シェルの作成
	3.20 RCファイル
	3.21 独自のマニュアルページの簡単な作成方法
	3.22 -manマクロを使用した単純なマニュアルページの作成

4 章 プロンプトのカスタマイズ
	4.1 プロンプトの設定の基礎
	4.2 静的プロンプト
	4.3 動的プロンプト
	4.4 動的プロンプトのシミュレーション
	4.5 vi、rshなどにおけるCシェルのプロンプトの問題
	4.6 組み込みコマンドによるプロンプトの設定の高速化
	4.7 マルチラインシェルプロンプト
	4.8 ウィンドウタイトルまたはステータスバーへの表示
	4.9 初心者向けメニュープロンプト
	4.10 シェルプロンプトの強調と色指定
	4.11 右側に表示されるプロンプト
	4.12 $SHLVLによるサブシェルレベルの表示
	4.13 空白のシェルプロンプトの効用
	4.14 プロンプトにおけるdirs:$cwdの改善策
	4.15 外部コマンドからのシグナルによる変数の設定
	4.16 プロンプト前、実行前、および反復コマンド
	4.17 ログアウト時のコマンドの実行
	4.18 Bourne/Kornシェルにおけるログアウト時のコマンドの実行
	4.19 Bourneシェルにおける意図しないログアウトの防止

5 章 端末、xterm、およびX Windowの有効活用
	5.1 端末について
	5.2 端末データベースの役割
	5.3 ログイン時の端末タイプの設定
	5.4 qtermによる端末タイプの問い合わせ
	5.5 resizeによるxtermのサイズの問い合わせ
	5.6 ログイン時に端末がハングする場合のチェック項目
	5.7 sttyによる端末の設定の確認
	5.8 制御文字の設定
	5.9 xtermおよびその類似プログラムの操作
	5.10 xtermとrxvtによるログインシェルの実行
	5.11 スクロールバーの操作
	5.12 保持される行数の設定
	5.13 xtermにおける単純なコピーと貼り付け
	5.14 選択の対象としての単語の定義
	5.15 タイトルバーおよびアイコンのテキストの設定
	5.16 フォントを変更する単純な方法
	5.17 xtermのメニュー
	5.18 フォントの動的な変更
	5.19 xclipboardの操作
	5.20 大きな選択部分の問題
	5.21 ウィンドウ間でのコピーと貼り付けのヒント
	5.22 xterm -eによる単一のコマンドの実行
	5.23 xterm -eの引数におけるシングルクォート

6 章 X環境のカスタマイズ
	6.1 xmodmapによるキーとボタンの定義
	6.2 xevによるkeysymマッピングの確認
	6.3 Xリソースの構文
	6.4 Xのイベントトランスレーション
	6.5 Xリソースの設定の概要
	6.6 -xrmオプションによるリソースの設定
	6.7 -nameオプションのリソースに対する効果
	6.8 xrdbによるリソースの設定
	6.9 appresによる現在のリソースの表示
	6.10 リモートXクライアントの実行

第V部 ファイルおよびディレクトリの操作

7 章 ディレクトリの仕組み
	7.1 ファイルの整理
	7.2 さまざまなホームディレクトリ
	7.3 ディレクトリへのアクセス権
	7.4 プログラムやスクリプト用のbinディレクトリ
	7.5 プライベートに使うディレクトリ
	7.6 ファイルの命名
	7.7 ディレクトリをたくさん作る
	7.8 手早くディレクトリを作成する

8 章 ディレクトリとファイル
	8.1 findコマンドは次章で
	8.2 Unixファイルの3つの日時
	8.3 ls -tとls -uで新しいファイル・古いファイルを見つける
	8.4 ls -Rですべてのサブディレクトリを一覧表示する
	8.5 ls -dでディレクトリ自体を表示する
	8.6 lsのカラー表示
	8.7 GNU版のlsの特徴
	8.8 最近変更されたファイルを一覧表示するcshのエイリアス
	8.9 隠しファイルをls -Aおよびls -aで表示する
	8.10 便利なエイリアス
	8.11 ファイルにアクセスできないときは、ファイル名にスペースが
入っていないか確かめる
	8.12 ファイル名の中の非表示文字を表示する
	8.13 種類ごとにファイルの数をカウントする
	8.14 ファイルの年齢ごとのサイズを一覧表示する
	8.15 newer:最新のファイルの名前を表示する
	8.16 oldlinks:途切れたシンボリックリンクを検出する
	8.17 一意のファイル名を自動的に取得する

9 章 findによるファイルの検索
	9.1 findの使い方
	9.2 ディレクトリツリーを深く探索する
	9.3 -printを忘れるな
	9.4 特定の名前のファイルを探す
	9.5 昔のファイルを探す
	9.6 findの検索演算子を究める
	9.7 findにおける時刻
	9.8 ファイル時刻の精密な比較の方法
	9.9 見つかったものに対してコマンドを実行する
	9.10 -execを使ってカスタムテストを作る
	9.11 -execによるカスタムテストの応用例
	9.12 ひとつのコマンドでさまざまなものを見つける
	9.13 タイプによるファイルの検索
	9.14 サイズによるファイルの検索
	9.15 アクセス権限によるファイルの検索
	9.16 所有者やグループによる検索
	9.17 ディレクトリツリーの複製を作る
	9.18 高速findデータベースを使う
	9.19 高速findデータベースにワイルドカードを使う
	9.20 findデータベースを使った高速な検索
	9.21 ディレクトリツリーをgrepする
	9.22 lookfor:特定の文字列を中に含むファイルを探す
	9.23 シェル配列を使ってディレクトリをブラウズする
	9.24 ファイルへのハードリンクを見つけだす
	9.25 -pruneによってサブディレクトリを除外する
	9.26 カレントディレクトリ内での高速find
	9.27 ツリーの一部をスキップする
	9.28 ネットワークファイルシステムの探索を回避する

10 章 ファイルのリンク、リネーム、コピー
	10.1 ファイルの移動やコピーで何が問題になるのか
	10.2 ディレクトリの中には本当は何があるのか
	10.3 複数の名前を持つファイル
	10.4 リンク詳説
	10.5 リンクの作成と削除
	10.6 無効なシンボリックリンク
	10.7 ディレクトリのリンク
	10.8 シンボリックリンクが指す本当のファイル名を表示する
	10.9 複数ファイルのリネーム、コピー、比較
	10.10 一連のファイルをインタラクティブにリネームする
	10.11 一連のファイルをインタラクティブにリネームする別の方法
	10.12 cp -rによるディレクトリツリーのコピー
	10.13 tarとパイプによるディレクトリツリーのコピー

11 章 ファイルの比較
	11.1 差分をdiffでチェックする
	11.2 3つのファイルをdiff3で比較する
	11.3 コンテキストdiff
	11.4 sdiff:横並びのdiff
	11.5 sdiffで一方を選択する
	11.6 diffにおけるタブストップの問題
	11.7 cmpとdiff
	11.8 commを使って2つのファイルを比較する
	11.9 commからの出力を読みやすくする
	11.10 makeはプログラマだけのものにあらず
	11.11 makeのその他の使い方

12 章 ファイルの内容を見る
	12.1 この章の概要
	12.2 catの用途と使い方
	12.3 moreよりもless
	12.4 cat -vやod -cを使って非表示文字を表示させる
	12.5 空白文字を調べる
	12.6 ファイルの種類を調べる
	12.7 余分の空行を圧縮する
	12.8 tail:ファイルの末尾部分を表示させる
	12.9 tailを細かく制御する
	12.10 成長しつつあるファイルの内容を見る
	12.11 GNUのtailによるファイルの追跡
	12.12 ファイルの先頭部分を表示させる
	12.13 行番号を付加する

13 章 ファイルの中を検索する
	13.1 grepのさまざまなバージョン
	13.2 grepによるテキスト検索
	13.3 マッチしないテキストを探す
	13.4 egrepによる拡張検索
	13.5 パターンのリストに対してgrepする
	13.6 agrep:近似grep
	13.7 rcsgrepでRCSファイルを検索する
	13.8 GNUのコンテキストgrep
	13.9 sedによる複数行コンテキストgrep
	13.10 複合的な検索
	13.11 検索範囲を限定する
	13.12 大文字小文字を区別しない検索
	13.13 カラム位置を指定して文字を検索する
	13.14 lookによる高速検索とスペルチェック
	13.15 バイナリファイル中の語を見つけだす
	13.16 強調表示のgrep

14 章 ファイルの削除
	14.1 生成と削除のサイクル
	14.2 iノード:Unixがファイルを管理する仕組み
	14.3 rmの危険性
	14.4 rmを安全にするためのテクニック
	14.5 yesコマンドを使って「Yes」か「No」を応答し続ける
	14.6 あるものは削除し、あるものは残す
	14.7 インタラクティブにファイルを削除する高速な方法
	14.8 ディレクトリ中のファイルを保護する
	14.9 安全な削除:賛否両論
	14.10 rm -f:偏りのある削除
	14.11 奇妙な名前のファイルを削除する
	14.12 ワイルドカードを使って奇妙な名前のファイルを削除する
	14.13 ハイフン(-)で始まるファイル名の扱い
	14.14 unlinkを使って奇妙な名前のファイルを削除する
	14.15 iノード番号を使って奇妙な名前のファイルを削除する
	14.16 ディレクトリの削除に伴う問題
	14.17 使われていないファイルを削除する
	14.18 1つを除くすべてのファイルを削除する
	14.19 findを使って不要なファイルを一掃する

15 章 ディスクスペースの最適化
	15.1 ディスクスペースは安い
	15.2 ファイルを削除する代わりにファイルを空にする
	15.3 ログファイルやメールボックス用のスペースを節約する
	15.4 リンクを使ってスペースを節約する
	15.5 ファイルサイズを制限する
	15.6 ファイルを圧縮してスペースを節約する
	15.7 スペースの節約:ディレクトリツリーをtarして圧縮する
	15.8 ディスクスペースはどれだけある?
	15.9 ディレクトリツリーの圧縮:細かな調整
	15.10 stripによって実行可能ファイル中のスペースを節約する
	15.11 ディスククォータ

第W部 テキスト編集の基礎

16 章 スペルチェック、ワードカウント、およびテキスト解析
	16.1 Unixのspellコマンド
	16.2 ispellによる対話式のスペルチェック
	16.3 スペルチェッカによるスペルの確認
	16.4 spellの内部
	16.5 ispell辞書への単語の追加
	16.6 wcコマンドによる行数、単語数、文字数の計算
	16.7 Find a a Double Word(重複した単語の検出)
	16.8 テキストの構文解析
	16.9 単語の抽出

17 章 viエディタの機能と活用法
	17.1 viエディタに重きを置く理由
	17.2 本章の学習内容
	17.3 viによる複数ファイルの編集
	17.4 ファイル間の編集作業
	17.5 viのローカル設定
	17.6 バッファを使ったテキストの移動とコピー
	17.7 番号付きバッファによる削除内容の復元
	17.8 検索パターンとグローバルコマンドの使用
	17.9 置換の確認
	17.10 バッファ内容のファイル化
	17.11 ファイルの部分的な保存
	17.12 既存ファイルへの追加
	17.13 パターンによるテキストブロックの移動
	17.14 パターンマッチとグローバルコマンド
	17.15 出現頻度の計算、循環検索の停止
	17.16 大文字と小文字の変換コマンド
	17.17 ファイルごとの設定ファイルの作成
	17.18 Unixコマンドを使ったテキスト処理
	17.19 viのファイル修復機能とネットワークファイルシステム
	17.20 vi -rによる復旧作業の注意点
	17.21 シェルエスケープ:外部のUnixコマンドの実行
	17.22 viの複合検索
	17.23 単語の省略形
	17.24 コマンドの省略形
	17.25 省略形による入力ミスの修正
	17.26 行コマンドと文字コマンド
	17.27 一時保存領域の確保
	17.28 行の整形
	17.29 位置のマークとアンドゥ機能
	17.30 .exrcファイルによるviの設定

18 章 viエディタのカスタムコマンドの作成
	18.1 入力作業の簡素化
	18.2 viのマップコマンドによる作業の効率化
	18.3 マッピングによる不都合
	18.4 viの@機能
	18.5 viを実行するウィンドウにペーストするキーマップ
	18.6 キーがexに解釈されないように保護する方法
	18.7 繰返しの多い編集用のマッピング
	18.8 キーマップを使ったその他の例
	18.9 キーマップを繰り返し実行する方法
	18.10 Caps Lockを使わずに大文字を入力する方法
	18.11 方向キーを使わずに、入力モードでカーソルを移動する
	18.12 noremapオプションによる機能の引き継ぎ
	18.13 長い行を分割するマクロ
	18.14 ファイルバックアップマクロ

19 章 GNU Emacs
	19.1 Emacs:もう1つのエディタ
	19.2 Emacsの機能:詳細リスト
	19.3 カスタマイズ方法およびカスタマイズを無効にする方法
	19.4 バックアップファイルと自動保存ファイル
	19.5 Emacsの挿入モードと上書きモード
	19.6 コマンドの補完機能
	19.7 著者が勧める時間節約法
	19.8 合理的な検索
	19.9 PWD環境変数の問題とその解決法
	19.10 バイナリ文字の挿入
	19.11 省略形モードの利用
	19.12 Emacsハックプログラム用ディレクトリ
	19.13 他愛もない気晴らし

20 章 バッチ編集
	20.1 ラインエディタが絶滅しない理由
	20.2 編集スクリプトの作成
	20.3 行アドレス指定
	20.4 有用なexコマンド
	20.5 viエディタでの編集スクリプトの実行
	20.6 大量ファイルの一括変更
	20.7 edとexでのバッチ編集の典型例
	20.8 バッチ編集の注意事項:エディタの処理能力
	20.9 patch:ファイルの一般的な更新手段
	20.10 クイックリファレンス:awk
	20.11 さまざまなバージョンのawk

21 章 さまざまな編集プログラム
	21.1 編集プログラムのまとめ
	21.2 fmtによるテキストの整形
	21.3 fmtの代用スクリプト
	21.4 プログラムのコメントブロックの整理
	21.5 beheadによるメール/ニュースヘッダの削除
	21.6 ddによるファイルの削除
	21.7 offset:テキストのインデント
	21.8 行の中央揃え
	21.9 固定位置でのファイルの分割:split
	21.10 文脈によるファイルの分割:csplit
	21.11 trによる文字の変換と削除
	21.12 バイナリファイルからASCIIファイルへのエンコーディング
	21.13 ddによるテキスト変換
	21.14 カラムまたはフィールドの切り出し
	21.15 prを使用してテキストをカラム形式にする
	21.16 columnによるカラムの自動形成
	21.17 不揃いのカラムの整形
	21.18 カラム形式によるデータの結合
	21.19 joinによる行の結合
	21.20 重複行の抽出と削除
	21.21 テキストの回転

22 章 ソート処理
	22.1 順序付け
	22.2 ソートフィールド:sortコマンドの機能
	22.3 フィールド区切り文字の変更
	22.4 空白文字を使ったフィールド区切り
	22.5 アルファベット順のソートと数値順のソート
	22.6 sortに関するさまざまなヒント
	22.7 lensort:長さによる行のソート
	22.8 姓による人名リストのソート

第X部 プロセスとカーネル

23 章 ジョブ制御
	23.1 ジョブ制御の概要
	23.2 ジョブ制御の基本原理
	23.3 ジョブの効率的な使用法
	23.4 ジョブ制御に関する注意事項
	23.5 予想と異なる「カレントジョブ」
	23.6 ジョブ制御とautowrite:時間を節約する有効な方法
	23.7 過負荷なシステムにおけるジョブの一時停止
	23.8 ジョブの状態変化の通知
	23.9 stty tostopによるバックグラウンド出力の停止
	23.10 nohup
	23.11 ジョブテーブルからプロセスを削除する
	23.12 Linuxの仮想コンソール
	23.13 リモートログインセッションの停止

24 章 プロセスの起動、一時停止、および強制終了
	24.1 本章の内容
	24.2 forkとexec
	24.3 プロセスの管理:全般的概念
	24.4 サブシェル
	24.5 psコマンド
	24.6 制御端末
	24.7 プロセスの追跡
	24.8 psがコマンドを丸かっこで囲んで出力する理由
	24.9 /procファイルシステム
	24.10 シグナルの概要
	24.11 フォアグラウンドジョブの強制終了
	24.12 killによるプロセスの破棄
	24.13 プリンタキューの監視:再起動可能なデーモンシェルスクリプト
	24.14 すべてのプロセスの強制終了
	24.15 プロセス名によるプロセスの強制終了
	24.16 対話によるプロセスの強制終了
	24.17 制御不能なプロセスの停止:STOPシグナルの使用
	24.18 強制終了されないプロセスの除去
	24.19 ゾンビプロセスを強制終了できない理由
	24.20 ウィンドウを生成するプロセスの連鎖
	24.21 シェルを持たない端末ウィンドウ
	24.22 プロセスの強制終了によるウィンドウの終了

25 章 遅延実行
	25.1 ソフトウェアロボットの構築
	25.2 プログラムの定期的実行:cron機能
	25.3 crontabエントリの追加
	25.4 cronエントリに標準入力を含める
	25.5 atコマンド
	25.6 atのメール送信を停止する
	25.7 ジョブの確認と削除
	25.8 atおよびcronジョブの同時実行の回避
	25.9 実行の中断と延期:sleep

26 章 システム性能とプロファイリング
	26.1 時間的調整の重要性
	26.2 プログラムの経過時間の表示
	26.3 実行中のコマンドとその実行時間の表示
	26.4 システム負荷の観察:uptime
	26.5 niceによる優先順位の変更
	26.6 注意事項
	26.7 実行中のジョブのnice値を変更する

第Y部 スクリプト	653

27 章 シェルによるコマンドの解釈
	27.1 シェルの動作
	27.2 シェルによる外部コマンドの実行
	27.3 シェルとは何か
	27.4 コマンドの評価と誤操作によるファイルの上書き
	27.5 個々のコマンドライン引数の出力
	27.6 シェルによるコマンドの検索の制御
	27.7 エイリアスの中のワイルドカード
	27.8 evalによるコマンドの再評価
	27.9 bashによって使用されるコマンドの選択
	27.10 Cシェルによって使用されるコマンドの選択
	27.11 リダイレクトの処理順序
	27.12 Bourneシェルのクォート機能
	27.13 BourneシェルとCシェルのクォート機能の違い
	27.14 ファイル名に含まれる特殊文字のクォート
	27.15 verboseとechoの設定によるクォートの表示
	27.16 ヒアドキュメント
	27.17 「特殊」文字と演算子
	27.18 必要なバックスラッシュの数

28 章 コマンドライン作業の効率化
	28.1 Unixのコマンドラインの特徴
	28.2 CTRL-rによるコマンドラインの再表示
	28.3 ワイルドカードによるファイルの作成
	28.4 { }による文字列の構築
	28.5 文字列編集(コロン)演算子
	28.6 自動補完
	28.7 ファイル名の補完に不要なファイルとのマッチの防止
	28.8 コマンドの繰り返し
	28.9 コマンドのループと処理内容の変化
	28.10 コピーアンドペーストによるコマンドの繰り返し
	28.11 一定時間ごとのコマンドの繰り返し
	28.12 マルチラインコマンドとセカンダリプロンプト
	28.13 ヒアドキュメントの例その1:フォーマットされていない形式の手紙
	28.14 コマンド置換
	28.15 一時ファイルを利用した複数のファイルの処理
	28.16 コマンドの区切り文字としてのセミコロン
	28.17 引数が多すぎる場合の処理方法
	28.18 Expect

29 章 カスタムコマンド
	29.1 カスタムコマンドの作成
	29.2 シェルのエイリアスの紹介
	29.3 コマンドライン引数を受け取るCシェルのエイリアス
	29.4 Bourne系のエイリアスの設定と削除
	29.5 Kornシェルのエイリアス
	29.6 zshのエイリアス
	29.7 読み込んで実行できるスクリプト
	29.8 Cシェルにおけるエイリアスのループ防止
	29.9 Cシェルのエイリアスでのif-then-elseの使用方法
	29.10 makealiasとquoteによるcshのエイリアスへのクォートの挿入
	29.11 シェル関数の基本
	29.12 シェル関数の特性
	29.13 シェル関数の伝播
	29.14 Bourneシェルの関数とエイリアスのシミュレート

30 章 ヒストリの使用
	30.1 歴史(ヒストリ)の教訓
	30.2 ヒストリの概要
	30.3 私のお気に入りの!$
	30.4 私のお気に入りの!:n*
	30.5 私のお気に入りの^^
	30.6 ワイルドカードの代わりに!$を使用する安全性
	30.7 番号によるヒストリの操作
	30.8 ヒストリ置換
	30.9 連続したコマンドの反復
	30.10 同じファイルに対する複数のコマンドの実行
	30.11 :pによるヒストリの事前チェック
	30.12 ログアウト時のヒストリの保存
	30.13 シェルの間でのヒストリの受け渡し
	30.14 シェルのコマンドライン編集機能
	30.15 histcharsによるヒストリ文字列の変更
	30.16 ヒストリ文字列の変更に代わる方法

31 章 ディレクトリ間の移動をすばやく行う方法
	31.1 ファイルシステム内の移動
	31.2 相対パス名と絶対パス名の使用方法
	31.3 カレントディレクトリの利点
	31.4 Unixがカレントディレクトリを検出する方法
	31.5 cdpathによるディレクトリ変更の時間の節約
	31.6 breakとcontinueによるループの制御
	31.7 シェルのpushdおよびpopdコマンド
	31.8 pushdの便利なエイリアス
	31.9 エイリアスによるcdコマンドの簡略化
	31.10 ディレクトリの頭文字を使用するcd
	31.11 ホームディレクトリをすばやく検出する方法
	31.12 シェル変数によるカレントディレクトリの保存
	31.13 ディレクトリの出入りに伴う自動設定

32 章 正規表現(パターンマッチ)
	32.1 コンピュータの世界の表現
	32.2 正規表現とワイルドカードの違い
	32.3 さまざまな表現の理解
	32.4 正規表現におけるメタ文字の使用
	32.5 正規表現:アンカー文字の^および$
	32.6 正規表現:文字セットによる文字とのマッチ
	32.7 正規表現:.(ドット)による任意の文字とのマッチ
	32.8 正規表現:[...]による文字の範囲の指定
	32.9 正規表現:文字セットにおける例外
	32.10 正規表現:*による文字セットの繰り返し
	32.11 正規表現:\{および\}による特定の個数の文字セットとのマッチ
	32.12 正規表現:\<および\>による単語とのマッチ
	32.13 正規表現:\(、\)、および\1によるパターンの記憶
	32.14 正規表現:潜在的な問題
	32.15 拡張正規表現
	32.16 正しい正規表現の記述方法
	32.17 正規表現がマッチする範囲
	32.18 マッチする範囲の制限
	32.19 さまざまな正規表現の使用例
	32.20 プログラムごとに使用できるメタ文字
	32.21 パターンマッチのクイックリファレンスと例

33 章 ワイルドカード
	33.1 ファイル名のワイルドカード
	33.2 ファイル名に関するワイルドカードの概要
	33.3 誰がワイルドカードを処理するのか
	33.4 ワイルドカードがマッチしなかった場合
	33.5 ワイルドカードをパス名で使うべきでない場合
	33.6 マッチするファイルの一覧をgrep -lで取得する
	33.7 マッチしないファイルの一覧を取得する
	33.8 nom:ワイルドカードにマッチしないファイルを一覧表示する

34 章 ストリームエディタsed
	34.1 sedの退屈な^H^H^H話
	34.2 sedについて知っておくべき2つのこと
	34.3 sedの起動
	34.4 sedスクリプトのテストと行使:checksedとrunsed
	34.5 sedのアドレス
	34.6 スクリプト中でのコマンドの順序
	34.7 一度に1つずつ
	34.8 正規表現のデリミタ
	34.9 sedの置換における改行の扱い
	34.10 置換文字列から検索文字列を参照する
	34.11 検索文字列の部分部分を参照する
	34.12 検索置換:複数の中の1つにマッチさせる
	34.13 テキストの変換
	34.14 ホールドスペース:保管用バッファ
	34.15 行の一部を変換する
	34.16 行の境界を越えて編集を行う
	34.17 慎重な代書人
	34.18 行をまたがるパターンを検索する
	34.19 複数行対応の削除
	34.20 編集しない行を除外する
	34.21 sedのテストコマンド
	34.22 sed終了コマンドの利用
	34.23 sed終了コマンドの危険性
	34.24 シェルスクリプトでsedの改行、クォート、バックスラッシュを扱う

35 章 初心者のためのシェルプログラミング
	35.1 簡単なシェルプログラムを書く
	35.2 シェルプログラミングは必須科目
	35.3 環境変数
	35.4 親子関係
	35.5 定義済みの環境変数
	35.6 PATH環境変数
	35.7 PATHとpath
	35.8 DISPLAY環境変数
	35.9 シェル変数
	35.10 Bourneシェルのcaseによって文字列を照合する
	35.11 case文におけるパターンマッチ
	35.12 Unixプロセスの終了ステータス
	35.13 終了ステータスをif文でチェックする
	35.14 処理の成功をチェックする
	35.15 終了ステータスをチェックするループ
	35.16 シェル(スクリプト)の終了ステータスを設定する
	35.17 割り込みによる終了をトラップする
	35.18 read:キーボードからの入力を読み込む
	35.19 awkやsedなどのためのシェルスクリプトのラッパ
	35.20 シェルスクリプト中でコマンドライン引数を処理する
	35.21 コマンドライン引数をforループで処理する
	35.22 whileとshiftで引数を処理する
	35.23 ループの制御:breakとcontinue
	35.24 コマンドラインの標準的な解析
	35.25 Bourneシェルのsetコマンド
	35.26 test:ファイルや文字列のチェック
	35.27 新しいコマンドの名前を選ぶ
	35.28 プログラム名の検出と複数の名前
	35.29 sourceコマンドおよび.(ドット)を使ってファイルを読み込む
	35.30 シェル関数を使う

36 章 上級者のためのシェルプログラミング
	36.1 基本を超えて
	36.2 #と#!の物語
	36.3 スクリプトにシェルは本当に必要か
	36.4 #!にPATHを検索させる
	36.5 execコマンド
	36.6 Bourneシェルの:演算子
	36.7 パラメータ置換
	36.8 ディスクスペースと労力の節約:複数の名前を持つプログラム
	36.9 最後のコマンドライン引数を調べる
	36.10 コマンドラインパラメータの設定をすべて解除する
	36.11 forループへの標準入力
	36.12 複数の変数を使ったforループを作る
	36.13 basenameとdirnameを使う
	36.14 複数のループ制御コマンドを持つwhileループ
	36.15 オープンファイルとファイル記述子の概要
	36.16 n>&m:標準出力と標準エラー出力を入れ替える
	36.17 シェルは標準入力からスクリプトを読み込めるが
	36.18 標準入力から動的に生成されるシェルスクリプト
	36.19 ヒアドキュメントの終端文字列のクォート:sh vs. csh
	36.20 エコーを無効にする
	36.21 クイックリファレンス:expr
	36.22 文字列中の文字をexprでチェックする
	36.23 文字列の一部を取り出す
	36.24 ネストしたコマンド置換
	36.25 1つのcase文で2つの文字列をチェックする
	36.26 X Window Systemにテキストを出力する
	36.27 シェルのロックファイル

37 章 シェルスクリプトのデバッグ
	37.1 デバッグのためのヒント集
	37.2 シェル変数の値を表示するBourneシェル用のデバッグスクリプト
	37.3 数値テストにおける構文エラーを回避する
	37.4 文字列テストの構文エラーを回避する
	37.5 クォートとコマンドラインパラメータ
	37.6 Unixが時間を管理する仕組み
	37.7 操作をscriptで記録する
	37.8 scriptで生成されたファイルを掃除する
	37.9 テスト用に任意のサイズのファイルを作成する

第Z部 システム環境の拡張と管理	1005

38 章 ファイルのバックアップ
	38.1 「バックアップ」とは?
	38.2 tarユーティリティの概要
	38.3 バックアップの作成
	38.4 各種のバックアップ方法
	38.5 ローカルデバイスへのバックアップ方法
	38.6 tarによる磁気テープからのファイルのリストア
	38.7 tarによるリモートテープドライブの利用
	38.8 GNU tarによるリモートテープドライブの利用
	38.9 プロジェクトのオンデマンド増分バックアップ
	38.10 tarでのワイルドカードの使用
	38.11 tarでは絶対パスは使用しない
	38.12 tarの引数の順序
	38.13 テープアーカイバcpio
	38.14 企業規模でのバックアップ

39 章 アーカイブの作成と展開
	39.1 ファイルをまとめて移動する
	39.2 tarによるアーカイブの作成と展開
	39.3 GNU tarの使用例
	39.4 RCSとCVSによるファイルの管理と共有
	39.5 RCSの基礎
	39.6 rcsrevsでRCSリビジョン番号をリストアップ
	39.7 CVSの基礎
	39.8 CVSの応用

40 章 ソフトウェアのインストール
	40.1 /usr/binとその他のソフトウェアディレクトリ
	40.2 Unixでのソフトウェアのインストール
	40.3 makeの互換性
	40.4 makeのプロセスを簡単にする
	40.5 Debian dselectでのインストール
	40.6 Debian Apt-Getでのインストール
	40.7 wgetによるファイルのダウンロード
	40.8 curlとOne-Step
	40.9 FreeBSD Portsによるインストール
	40.10 FreeBSDパッケージのインストール
	40.11 RPMパッケージのインストール

41 章 Perl
	41.1 Unix純正のスクリプト言語
	41.2 Perlがインストールされているか確認する
	41.3 Perlのインストール
	41.4 Perlの基礎−Part 1:一般的なスクリプトの構造
	41.5 Perlの基礎−Part 2:変数とデータ型
	41.6 Perlの基礎−Part 3:条件分岐とループ
	41.7 Perlの基礎−Part 4:パターンマッチング
	41.8 Perlの基礎−Part 5:Unixと同じ機能
	41.9 Perlの基礎−Part 6:モジュール
	41.10 Perlの基礎−Part 7:perldoc
	41.11 CPAN
	41.12 Perlによる文字列検索
	41.13 Perlとインターネット

42 章 Python
	42.1 Pythonとは?
	42.2 PythonのインストールとDistutilsパッケージのインストール
	42.3 Pythonの基礎
	42.4 PythonとWeb
	42.5 urllib
	42.6 urllib2
	42.7 htmllibとHTMLParser
	42.8 cgi
	42.9 mod_python
	42.10 Perlについて

第[部 通信と接続	1131

43 章 入出力のリダイレクト
	43.1 標準入出力の利用
	43.2 catコマンドの引数
	43.3 標準エラー出力をパイプに送る
	43.4 ページャにパイプ接続する際の問題点
	43.5 標準エラー出力をファイルにリダイレクトする(Cシェルの場合)
	43.6 noclobberによる安全な入出力リダイレクト
	43.7 サブシェル演算子( )
	43.8 出力を複数の対象に送る
	43.9 複数のコマンドの出力を集める
	43.10 出力を複数の対象にリダイレクトする
	43.11 名前付きパイプ:FIFO
	43.12 /dev/null

44 章 デバイス
	44.1 イントロダクション
	44.2 カーネルのブートメッセージ
	44.3 カーネルの設定
	44.4 ハードディスクのパーティション
	44.5 ファイルシステムタイプと/etc/fstab
	44.6 リムーバブルファイルシステムのマウントとアンマウント
	44.7 ループバックマウント
	44.8 ifconfigによるネットワークデバイスの設定
	44.9 ネットワークファイルシステム(NFS、SMBFS)のマウント
	44.10 Winmodem(ウィンモデム)
	44.11 PPPの設定
	44.12 USBの設定
	44.13 サウンドカードおよびその他のハードウェア
	44.14 シリアルコンソール

45 章 印刷
	45.1 イントロダクション
	45.2 Unixでの印刷
	45.3 lpcによるプリンタの制御
	45.4 プリンタの選択
	45.5 シンボリックリンクの利用
	45.6 prコマンドによるテキストの書式設定
	45.7 enscriptによるテキストの書式設定
	45.8 ネットワークプリンタ
	45.9 Sambaを利用したリモートプリント
	45.10 タイプセッティング
	45.11 Unixにおけるタイプセッティング(文書整形)の歴史
	45.12 manページの文書整形:nroff
	45.13 文書整形言語(マークアップ言語)−troff、LaTeX、HTMLなど
	45.14 ページ記述言語−PostScript、PCL、DVI、PDF
	45.15 テキストファイルをページ記述言語に変換する
	45.16 文書整形言語をページ記述言語に変換する
	45.17 ソースファイルをフィルタで自動的に変換
	45.18 CUPS(Common Unix Printing System)
	45.19 Portable Bitmap Package

46 章 ネットワーク
	46.1 TCP/IP-IPアドレスとポート
	46.2 /etc/servicesファイル
	46.3 ステータス確認とトラブルシューティング
	46.4 ネットワークの診断
	46.5 inetd
	46.6 セキュアシェル(SSH)
	46.7 匿名FTPサーバの設定
	46.8 電子メール:SMTP、POP、IMAP
	46.9 ドメインネームサービス(DNS)
	46.10 DHCP(ダイナミック・ホスト・コンフィギュレーション・プロトコル) 	 1216
	46.11 ゲートウェイとNAT
	46.12 ファイアウォール
	46.13 パーソナルLANからモデムを介してインターネットに接続

47 章 MS Windowsとの接続
	47.1 オペレーティングシステムの相互接続
	47.2 Sambaのインストールと設定
	47.3 Sambaのセキュリティ
	47.4 SWATとその他のGUI SMBブラウザ
	47.5 Sambaによるプリンタ共有
	47.6 SMB共有リソースへUnixから接続
	47.7 VNCによるデスクトップ共有
	47.8 エミュレータとAPI
	47.9 Citrix:Windowsをマルチユーザ環境に

第\部 セキュリティ

48 章 セキュリティの基礎
	48.1 ネットワーク攻撃
	48.2 CERTセキュリティチェックリスト
	48.3 セキュリティホールの情報ソース
	48.4 バッファオーバーフロー
	48.5 DoS(サービス拒否攻撃)
	48.6 パフォーマンスの低下
	48.7 侵入探知
	48.8 MOTDの重要性
	48.9 Linux procファイルシステム
	48.10 inetdを無効にする
	48.11 rlogin、rshを無効にする
	48.12 TCPラッパ

49 章 ルート、グループ、ユーザ管理
	49.1 Unixユーザ/Unixグループの基礎
	49.2 ユーザの作成
	49.3 rootのパスワードを忘れてしまった場合
	49.4 umaskの設定
	49.5 ディレクトリにsetgidビットを設定する
	49.6 グループ所有権
	49.7 特定のリソースを特定のユーザに使用させたくない場合
	49.8 SUIDスクリプトとSGIDスクリプト
	49.9 suコマンド
	49.10 外部からのrootログインは無効にする
	49.11 sudoコマンドの使用方法
	49.12 Darwinでrootを有効にする
	49.13 一時的にログインを無効にする

50 章 ファイルのセキュリティ、所有者、共有
	50.1 イントロダクション
	50.2 ファイルとディレクトリのパーミッション
	50.3 ファイルの所有者
	50.4 スティッキービットによるファイルの保護
	50.5 chmodコマンドを使ったパーミッションの変更
	50.6 chmod = の使用方法
	50.7 重要なファイルの保護(書き込み権を無効にする)
	50.8 cx、cw、c-wスクリプト
	50.9 セキュリティホール(書き込み権のないファイルを修正する方法)
	50.10 ファイルは読めるがファイル名は一覧表示できないディレクトリ
	50.11 パーミッションの操作
	50.12 md5sumによるファイルの検証
	50.13 シェルスクリプトファイルには読み込み権と実行権を設定する
	50.14 ファイルの所有者を変更できない場合
	50.15 chown以外でファイルの所有者を変更する方法

51 章 SSH
	51.1 Mac OS Xのリモートアクセス機能を有効にする
	51.2 SSHによる安全な通信
	51.3 OpenSSH
	51.4 SSHに関する質問とその回答
	51.5 一般的な質問、認証に関する質問
	51.6 鍵とエージェントに関する質問
	51.7 サーバおよびクライアントに関する質問と回答

用語解説

索引

書籍紹介ページへ戻る


書籍についてのお問い合わせは以下までお願いします。

株式会社オライリー・ジャパン

〒160-0003 東京都新宿区本塩町7番地6 四谷ワイズビル
e-mail:japan@oreilly.com


書籍の購入方法トップページへ戻る