目次
本書の使い方
序文
第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 サーバおよびクライアントに関する質問と回答
用語解説
索引
|