第3章:テキスト処理とパッケージ管理
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 # リアルタイム監視
$ 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 # 除外
$ 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行目削除
$ 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とコマンド
$ 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 vim git curl -y
$ sudo apt install vim git curl -y
-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+
CentOS 7はyum、8以降はdnf推奨
パッケージ削除
$ sudo yum remove package-name
$ sudo yum autoremove
$ sudo yum autoremove
依存関係も考慮して削除
システム更新
$ sudo yum update
$ sudo yum upgrade # 古いパッケージも削除
$ sudo yum upgrade # 古いパッケージも削除
セキュリティアップデートを含む
3.6 パッケージ管理のベストプラクティス
🔒 セキュリティ対策
- 定期的に
apt update && apt upgrade
を実行 - 不要なパッケージは削除(攻撃対象を減らす)
- 信頼できるリポジトリのみ使用
💡 トラブル回避のコツ
- 大規模更新前はバックアップを取る
- 本番環境では事前にテスト環境で確認
apt-mark hold package-name
で特定バージョン固定
🚀 便利な使い方
apt install -y
でスクリプト化しやすくwhich command
でコマンドの場所確認dpkg -L package
でインストールファイル一覧