🔖

MACのコマンドラインをど忘れしない用のコマンド集

2024/11/03に公開

はじめに

こんにちわ。
先日久しぶりにコマンドラインを使ったのですが、、、ほぼ思い出せないw
と言うことでメモがてらブログに書き残しておきます。


AI生成によるイメージ画像(写っているコードに意味はございません)

前提

今回は MacBook Pro M1 (macOS Ventura v13) で動作確認をしています。

1. システム管理系

システム情報

# システムバージョン確認
sw_vers

# ハードウェア情報表示
system_profiler SPHardwareDataType

# ディスク使用量確認
df -h

主要オプション:

  • -h: 読みやすい形式で表示
  • -T: ファイルシステムタイプも表示
  • -i: iノード情報を表示

プロセス管理

# メモリ使用量順にプロセス表示
top -o MEM

# 特定プロセスの終了
kill -9 [プロセスID]

主要オプション(top):

  • -o: ソート基準の指定(MEM, CPU, PID等)
  • -n: 表示するプロセス数の指定
  • -u: 特定ユーザーのプロセスのみ表示

主要オプション(kill):

  • -9: 強制終了
  • -15: 正常終了(デフォルト)
  • -l: シグナル一覧表示

2. ファイル操作系

検索と管理

# 大容量ファイルの検索(1GB以上)
find . -type f -size +1G -print0 | xargs -0 ls -lh

# 特定の拡張子(例:.log)の大きなファイルを検索
find . -type f -name "*.log" -size +100M -print0 | xargs -0 ls -lh

# 最近変更されたファイル検索(48時間以内)
find . -type f -mtime -2

主要オプション(find):

  • -type: ファイルタイプ指定(f:ファイル, d:ディレクトリ)
  • -name: ファイル名パターン指定
  • -size: サイズ指定
  • -mtime: 更新時間指定
  • -print0: NULL文字で区切って出力

テキスト検索

# 基本検索
grep "検索文字列" ファイル名

主要オプション(grep):

  • -r: 再帰的検索
  • -i: 大文字小文字区別なし
  • -n: 行番号表示
  • -v: 不一致行表示
  • -c: マッチ数のみ表示

3. ファイル形式判別(拡張子が無い場合)

基本使用法

# ファイル情報を表示 (これで拡張子が分かる)
file ファイル名

# 圧縮ファイルの内容を確認(-z オプション)
file -z compressed.gz

主要オプション(file):

  • -i: MIMEタイプ表示
  • -b: ファイル名を表示しない
  • -L: シンボリックリンクをたどる
  • -z: 圧縮ファイルの内容を確認

4. バックアップ系

バックアップ作成

# ディレクトリ圧縮
tar -czf backup.tar.gz [ディレクトリ名]

主要オプション(tar):

  • -c: アーカイブ作成
  • -x: アーカイブ展開
  • -z: gzip圧縮/展開
  • -f: ファイル名指定
  • -v: 詳細表示

主要オプション(rsync):

  • -a: アーカイブモード
  • -v: 詳細表示
  • -r: 再帰的コピー
  • --progress: 進行状況表示
  • --delete: 転送先の余分なファイルを削除

権限管理

# 権限確認と変更
ls -la
chmod 755 [ファイル名]

主要オプション(chmod):

  • -R: 再帰的に権限変更
  • -v: 変更内容を表示
  • -f: エラーメッセージを表示しない

5. 覚えていると便利系

ディレクトリナビゲーション

# 作業ディレクトリのスタック操作
pushd [ディレクトリ名]  # ディレクトリをスタックにプッシュ
popd                   # 前のディレクトリに戻る

# コマンド履歴の検索
history | grep [検索文字列]

主要オプション(pushd/popd):

  • -n: ディレクトリスタックの表示のみ
  • -v: 詳細表示モード
  • +N: N番目のエントリに移動
  • -N: 下からN番目のエントリに移動

自動で整理するスクリプトの例

#!/bin/bash

# ファイルタイプに基づいて適切なディレクトリに振り分け
for file in *; do
    if [ -f "$file" ]; then
        type=$(file -b --mime-type "$file")
        case "$type" in
            "image/"*)
                mkdir -p images
                mv "$file" images/
                ;;
            "text/"*)
                mkdir -p texts
                mv "$file" texts/
                ;;
            "application/pdf")
                mkdir -p pdfs
                mv "$file" pdfs/
                ;;
        esac
    fi
done

注意点

操作時の注意事項

  1. 重要なファイル操作前は必ずバックアップを作成する
  2. 権限関連のコマンドは、システムの安定性に影響を与える可能性があるため慎重に実行してください
  3. 大量のファイルを処理する際は、システムリソースの使用状況に注意を払ってください

セキュリティ対策

  • 権限変更は必要最小限に留める
  • システムファイルの操作は十分な知識を持って実行する
  • スクリプト実行前は必ずコードレビューを行う
  • 自動化スクリプトは必ずテスト環境で検証する

さいごに

このメモブログが皆さまの開発効率化に役立つことを願っています。

Discussion