第3章:テキスト処理とパッケージ管理

3.1 viエディタの基本操作

viエディタのモード遷移 ノーマル モード (移動・削除) 挿入 モード (文字入力) コマンド モード (保存・終了) i, a, o ESC : ESC 最低限覚える操作: i (挿入) → ESC → :wq (保存して終了) または :q! (保存せず終了)

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

複数ファイルの結合にも使用

less / more - ページング表示

$ less large_file.txt
$ 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 # リアルタイム監視

-f はログ監視に便利

grep - パターン検索

$ grep "error" log.txt
$ grep -i "Error" log.txt # 大文字小文字無視
$ grep -r "TODO" ./src/ # 再帰検索
$ 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行目削除

一括置換に便利

awk - テキスト処理言語

$ awk '{print $1}' file.txt # 1列目表示
$ awk -F: '{print $1}' /etc/passwd # 区切り文字指定
$ ps aux | awk '{print $2, $11}' # PIDとコマンド

列単位の処理に強力

3.3 パッケージ管理システム

主要なパッケージ管理システム Debian/Ubuntu系 APT (Advanced Package Tool) 高レベルパッケージ管理 apt update, apt install, apt remove 依存関係を自動解決 dpkg 低レベルパッケージ管理 dpkg -i package.deb 例: Ubuntu, Debian, Linux Mint ファイル形式: .deb RedHat/CentOS系 YUM / DNF 高レベルパッケージ管理 yum install, dnf update 依存関係を自動解決 RPM 低レベルパッケージ管理 rpm -ivh package.rpm 例: RHEL, CentOS, Fedora, Rocky Linux ファイル形式: .rpm

3.4 APT (Debian/Ubuntu)

パッケージリスト更新

$ sudo apt update

リポジトリから最新のパッケージ情報を取得

パッケージインストール

$ sudo apt install nginx
$ sudo apt install vim git curl -y

-y で確認をスキップ

パッケージ削除

$ sudo apt remove package-name
$ sudo apt purge package-name # 設定も削除
$ sudo apt autoremove # 不要な依存削除

purge は設定ファイルも削除

システム更新

$ sudo apt update && sudo apt upgrade
$ sudo apt full-upgrade # カーネルも更新

定期的な更新でセキュリティを保つ

パッケージ検索

$ apt search keyword
$ apt show package-name # 詳細情報
$ apt list --installed # インストール済み一覧

必要なパッケージを探す

3.5 YUM/DNF (RedHat/CentOS)

パッケージインストール

$ sudo yum install httpd
$ sudo dnf install postgresql # Fedora/RHEL8+

CentOS 7はyum、8以降はdnf推奨

パッケージ削除

$ sudo yum remove package-name
$ sudo yum autoremove

依存関係も考慮して削除

システム更新

$ sudo yum update
$ sudo yum upgrade # 古いパッケージも削除

セキュリティアップデートを含む

3.6 パッケージ管理のベストプラクティス

🔒 セキュリティ対策

  • 定期的に apt update && apt upgrade を実行
  • 不要なパッケージは削除(攻撃対象を減らす)
  • 信頼できるリポジトリのみ使用

💡 トラブル回避のコツ

  • 大規模更新前はバックアップを取る
  • 本番環境では事前にテスト環境で確認
  • apt-mark hold package-name で特定バージョン固定

🚀 便利な使い方

  • apt install -y でスクリプト化しやすく
  • which command でコマンドの場所確認
  • dpkg -L package でインストールファイル一覧