第3章:テキスト処理とパッケージ管理
3.0 この章で学ぶこと
viの基本操作(編集・保存・終了)を把握できる- テキスト処理コマンドで必要な行だけを抽出できる
- パッケージ管理(APT / YUM / DNF)でインストール・更新・削除ができる
3.1 viエディタの基本操作
vi基本操作早見表
| 操作 | コマンド | 説明 |
|---|---|---|
| ファイルを開く | vi file.txt |
viエディタでファイルを開く |
| 挿入モードへ | i |
カーソル位置から入力開始 |
| 行末に追加 | a |
カーソルの後から入力 |
| 新しい行 | o |
下に新しい行を作成 |
| ノーマルモードへ | ESC |
編集を終了 |
| 保存して終了 | :wq |
変更を保存して終了 |
| 保存せず終了 | :q! |
変更を破棄して終了 |
| 1行削除 | dd |
カーソル行を削除 |
| 元に戻す | u |
直前の操作を取り消し |
3.2 テキスト処理コマンド
cat - ファイル表示
$ cat file.txt
$ cat -n file.txt # 行番号付き
$ cat file1.txt file2.txt > merged.txt
$ cat -n file.txt # 行番号付き
$ cat file1.txt file2.txt > merged.txt
複数ファイルの結合にも使用します。
less / more - ページング表示
$ less large_file.txt
$ cat file.txt | less
$ cat file.txt | less
操作:Space(次ページ) b(前ページ) q(終了)
head / tail - 先頭/末尾表示
$ head -n 10 file.txt # 先頭10行
$ tail -n 20 file.txt # 末尾20行
$ tail -f /var/log/syslog # Debian/Ubuntu系の例
$ tail -f /var/log/messages # RHEL系の例
$ journalctl -f # systemd-journald(多くのディストロで有効)
$ tail -n 20 file.txt # 末尾20行
$ tail -f /var/log/syslog # Debian/Ubuntu系の例
$ tail -f /var/log/messages # RHEL系の例
$ journalctl -f # systemd-journald(多くのディストロで有効)
-f はログ監視に便利です(権限が必要な場合は sudo を付けます)。
grep - パターン検索
$ grep "error" log.txt
$ grep -i "Error" log.txt # 大文字小文字無視
$ grep -r "TODO" . # 再帰検索
$ grep -v "debug" log.txt # 除外
$ grep -i "Error" log.txt # 大文字小文字無視
$ grep -r "TODO" . # 再帰検索
$ grep -v "debug" log.txt # 除外
正規表現も使用できます。
sed - ストリームエディタ
$ sed 's/old/new/g' file.txt # 置換
$ sed -i 's/old/new/g' file.txt # 直接編集
$ sed '5d' file.txt # 5行目削除
$ sed -i 's/old/new/g' file.txt # 直接編集
$ sed '5d' file.txt # 5行目削除
一括置換に便利です。-i は直接編集のため、実務ではバックアップを取るか、まず標準出力で結果を確認してから適用します。
awk - テキスト処理言語
$ awk '{print $1}' file.txt # 1列目表示
$ awk -F: '{print $1}' /etc/passwd # 区切り文字指定
$ ps aux | awk '{print $2, $11}' # PIDとコマンド
$ awk -F: '{print $1}' /etc/passwd # 区切り文字指定
$ ps aux | awk '{print $2, $11}' # PIDとコマンド
列単位の処理に強力です。
3.3 パッケージ管理システム
3.4 APT (Debian/Ubuntu)
パッケージリスト更新
$ sudo apt update
リポジトリから最新のパッケージ情報を取得
パッケージインストール
$ sudo apt install nginx
$ sudo apt install -y vim git curl
$ sudo apt install -y vim git curl
-y で確認をスキップします。
パッケージ削除
$ sudo apt remove package-name
$ sudo apt purge package-name # 設定も削除
$ sudo apt autoremove # 不要な依存削除
$ sudo apt purge package-name # 設定も削除
$ sudo apt autoremove # 不要な依存削除
purge は設定ファイルも削除します。
システム更新
$ sudo apt update && sudo apt upgrade
$ sudo apt full-upgrade # 依存関係の変更(追加/削除)を許容
$ sudo apt full-upgrade # 依存関係の変更(追加/削除)を許容
定期的に更新し、セキュリティリスクを低減します。
パッケージ検索
$ apt search keyword
$ apt show package-name # 詳細情報
$ apt list --installed # インストール済み一覧
$ apt show package-name # 詳細情報
$ apt list --installed # インストール済み一覧
必要なパッケージを探します。
3.5 YUM/DNF (RedHat/CentOS)
パッケージインストール
$ sudo yum install httpd
$ sudo dnf install postgresql # Fedora/RHEL8+
$ sudo dnf install postgresql # Fedora/RHEL8+
RHEL系(RHEL/CentOS互換)では、環境により yum/dnf を使い分けます。近年は dnf が主流ですが、yum が dnf の互換フロントエンドとして提供される場合もあります。
パッケージ削除
$ sudo yum remove package-name
$ sudo yum autoremove
$ sudo yum autoremove
依存関係も考慮して削除します。
システム更新
$ sudo yum update
$ sudo yum upgrade # update と同義
$ sudo yum upgrade # update と同義
セキュリティアップデートを含みます。
3.6 パッケージ管理のベストプラクティス
セキュリティ対策
- 定期的にアップデートを適用(例:
sudo apt update && sudo apt upgrade。実務では運用ポリシー/メンテナンス手順に従う) - 不要なパッケージは削除(攻撃対象を減らす)
- 信頼できるリポジトリのみ使用
トラブル回避の要点
- 大規模更新前はバックアップを取る
- 本番環境では事前にテスト環境で確認
apt-mark hold package-nameで特定バージョン固定dpkg -i/rpm -ivhは依存解決をしないため、基本はapt/dnf/yum経由でインストールする
便利な使い方
apt install -yでスクリプト化しやすくwhich commandでコマンドの場所確認dpkg -L packageでインストールファイル一覧
3.7 まとめ
viは「モード」の切り替えが基本(まずは編集→保存→終了を押さえる)- テキスト処理は
grepとパイプを起点にすると理解しやすい - パッケージ管理は「更新(update)→インストール/アップグレード」の順を意識する
次章予告:次章では、よくあるエラーの読み方と対処のパターンを整理し、トラブルシューティングの基本を身につけます。