UNIXハンドブック
はじめに
[編集]UNIXは、マルチユーザー・マルチタスク対応の強力なオペレーティングシステムです。本ハンドブックでは、UNIXシステムの基本から応用まで、体系的に解説します。
基本コマンド編
[編集]ファイル操作
[編集]基本的なテキスト処理コマンド
[編集]cat
ファイルの内容を表示します。head
ファイルの先頭部分を表示します。tail
ファイルの末尾部分を表示します。more
ファイルの内容をページ単位で表示します。less
moreコマンドの拡張版で、より柔軟な表示が可能です(less
はPOSIXに含まれていませんが、多くのUNIXで実装されています)。wc
ファイルの行数、単語数、文字数をカウントします。
検索と抽出
[編集]ソートと並べ替え
[編集]切り出しと結合
[編集]その他
[編集]プロセス処理コマンド
[編集]POSIX規格に厳密に準拠し、様々なUNIX系システムで共通して利用できるプロセス処理コマンドは以下の通りです。
ps
プロセスのスナップショットを表示します。kill
プロセスを終了させます。nice
プロセスの優先度を変更します。sleep
プロセスを一定時間停止させます。time
コマンドの実行時間を計測します。renice
実行中のプロセスの優先度を変更します。
ストレージ管理コマンド
[編集]df
ディスク使用量の表示。du
ディレクトリサイズの表示。du
ディレクトリやファイルのディスク使用量を表示します。mount
ファイルシステムをマウントします。umount
ファイルシステムをアンマウントします。quota
ユーザーやグループごとのディスククォータを管理します。
システム情報取得コマンド
[編集]vmstat iostat netstat
シェル編
[編集]シェルとは、ユーザーとオペレーティングシステムの間で命令をやり取りするためのプログラムです。シェルは、コマンドラインインターフェース (CLI) を提供し、ユーザーが入力したコマンドを解釈して実行します。
主な役割には次のものがあります:
- コマンドの解釈と実行
- ファイルやプロセスの管理
- スクリプトを用いたタスクの自動化
代表的なシェルには以下があります:
- Bourne Shell (sh)
- C Shell (csh)
- Korn Shell (ksh)
- Bourne Again Shell (bash)
- Z Shell (zsh)
POSIXシェルは、UNIXシステムで広く使用される標準的なシェルです。
シェルの基本操作
[編集]シェルは、ユーザーがコマンドを入力し、システムがそれを実行するためのインターフェースです。代表的なシェルとして以下があります。
- csh (C Shell): BSD UNIXで広く使われるシェル。現在は、tcshに置き換わっている場合が多い。
- bash (Bourne Again Shell): GNUプロジェクトの一部で、Linuxで一般的。
コマンドの入力と実行
[編集]シェルではコマンドを入力してEnterキーを押すことで実行されます。以下は一般的なコマンド例です。
# 現在の作業ディレクトリを表示 pwd # ディレクトリを移動 cd /path/to/directory # ディレクトリ内のファイル一覧を表示 ls
コマンドの履歴
[編集]シェルは以前に入力したコマンドを記録します。
- 例
# コマンド履歴を表示 history # 履歴から特定のコマンドを実行 (例: 履歴番号10) !10
入力補完
[編集]Tabキーを押すことでコマンドやファイル名の補完が可能です。
環境変数の操作
[編集]環境変数の確認
[編集]現在設定されている環境変数を表示します。
# 全ての環境変数を表示 printenv # 特定の変数を表示 (例: PATH) echo $PATH
環境変数の設定
[編集]- csh
# 環境変数の設定 setenv VARIABLE_NAME value # 例: PATHを追加 setenv PATH /new/path:$PATH
- bash
# 環境変数の設定 export VARIABLE_NAME=value # 例: PATHを追加 export PATH=/new/path:$PATH
リダイレクトとパイプ
[編集]標準出力のリダイレクト
[編集]コマンドの出力をファイルに保存します。
# 標準出力をファイルにリダイレクト command > output.txt
標準エラー出力のリダイレクト
[編集]- bash
# 標準エラーをファイルにリダイレクト command 2> error.txt
- csh
# 標準エラーをファイルにリダイレクト command >& error.txt
パイプ
[編集]コマンドの出力を別のコマンドの入力に渡します。
# パイプを使用した例 command1 | command2
ジョブ管理
[編集]ジョブの実行
[編集]バックグラウンドでコマンドを実行します。
# バックグラウンドで実行 command &
実行中のジョブの確認
[編集]# ジョブの一覧を表示 jobs
ジョブの停止と再開
[編集]- 停止: :
Ctrl + Z
- 再開(フォアグラウンド):
fg
- 再開(バックグラウンド):
bg
エイリアスの設定
[編集]よく使うコマンドを簡略化できます。
- csh
# エイリアスの作成 alias ll 'ls -l' # エイリアスの削除 unalias ll
- bash
# エイリアスの作成 alias ll='ls -l' # エイリアスの削除 unalias ll
終了
[編集]シェルを終了するには以下を入力します。
# シェルの終了 exit
シェルスクリプトとは
[編集]シェルスクリプトとは、複数のコマンドをテキストファイルに記述して、それを一括で実行できるようにしたものです。これにより、繰り返しの操作や複雑なタスクを効率的に自動化できます。
シェルスクリプトの主な特徴:
- 簡単な記述でタスクを自動化
- 他のコマンドラインツールとの連携が容易
- UNIX環境での作業効率を向上
ネットワーク編
[編集]ネットワークコマンド
[編集]ネットワーク設定
[編集]- インターフェース設定
- ルーティング設定
- ファイアウォール設定
セキュリティ編
[編集]アクセス制御
[編集]- ファイルパーミッション
- ユーザー管理
- グループ管理
システムセキュリティ
[編集]- パスワードポリシー
- ログ監視
- セキュリティアップデート
パフォーマンスチューニング編
[編集]システム監視
[編集]- リソース使用率の確認
- ボトルネックの特定
- パフォーマンス指標の収集
最適化
[編集]- カーネルパラメータの調整
- プロセス優先度の管理
- ディスクI/O最適化
トラブルシューティング編
[編集]問題解決手順
[編集]- 症状の特定
- ログの確認
- 原因の切り分け
- 対策の実施
- 検証
附録
[編集]便利なエイリアス集
[編集]alias ll='ls -l' alias la='ls -a' alias grep='grep --color=auto'
環境変数設定例
[編集]export PATH=$PATH:/usr/local/bin export LANG=ja_JP.UTF-8 export EDITOR=vim
トラブルシューティングチェックリスト
[編集]- ディスク容量の確認
- プロセス状態の確認
- ネットワーク接続の確認
- システムログの確認
- メモリ使用量の確認
さいごに
[編集]本ハンドブックで解説した内容は、UNIX系システムの基本的な運用管理に必要な知識の概要です。実際の運用では、システムの特性や要件に応じて、さらに詳細な知識や経験が必要となります。