0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxコマンド完全チートシート

Posted at

目次

  1. 基本操作コマンド
  2. ファイル操作
  3. ディレクトリ操作
  4. テキスト処理
  5. 検索コマンド
  6. アーカイブと圧縮
  7. ネットワーク関連
  8. プロセス管理
  9. システム情報
  10. パーミッション管理
  11. パッケージ管理
  12. SSH関連
  13. Git コマンド
  14. Docker コマンド
  15. Windows環境でのLinux
  16. シェルスクリプト基本
  17. 便利なワンライナー
  18. トラブルシューティング
  19. パフォーマンス最適化
  20. セキュリティ対策

1. 基本操作コマンド

コマンド 説明 使用例 実際の使用シーン
ls ディレクトリの内容を表示するための基本コマンド ls -la
(全ファイル詳細表示)

ls -lh
(サイズを人間が読みやすい単位で表示)
・プロジェクトファイル確認
・設定ファイル一覧表示
cd ディレクトリを移動するコマンド cd /path/to/dir
(指定パスに移動)

cd ..
(親ディレクトリへ移動)
・プロジェクト間の移動
・設定ディレクトリへの移動
pwd 現在の作業ディレクトリを表示(Print Working Directory) pwd
(現在の作業ディレクトリのフルパスを表示)
・スクリプト内での位置確認
・複数ターミナルでの作業位置確認
touch 空ファイルの作成またはタイムスタンプの更新 touch file.txt
(ファイルが存在しなければ作成、存在すれば更新日時のみ変更)

touch -d "2023-01-01" file.txt
(特定日時にタイムスタンプを設定)
・プレースホルダーファイル作成
・ファイル日時の変更
mkdir 新しいディレクトリを作成 mkdir -p path/to/dir
(親ディレクトリが存在しなければ一緒に作成)

mkdir test
(testという名前のディレクトリを作成)
・プロジェクト構造の構築
・ログディレクトリの作成
cp ファイル・ディレクトリをコピー cp -r source dest
(ディレクトリを再帰的にコピー)

cp file.txt backup/
(ファイルをバックアップディレクトリにコピー)
・設定ファイルのバックアップ
・ファイル配布
mv ファイル・ディレクトリの移動または名前変更 mv old_name new_name
(ファイル名またはディレクトリ名を変更)

mv file.txt /path/to/dir/
(ファイルを別のディレクトリに移動)
・ファイル整理
・バックアップの移動
rm ファイル・ディレクトリを削除
注意: 元に戻せない
rm -rf dir
(ディレクトリを再帰的に強制削除)

rm file.txt
(ファイルを削除)
・一時ファイルの削除
・古いバックアップの整理
cat ファイルの内容を表示 cat file.txt
(ファイルの内容をターミナルに出力)

cat file1.txt file2.txt > combined.txt
(複数ファイルを結合)
・設定ファイルの内容確認
・ログの確認
less ファイルを閲覧(スクロール可能) less file.txt
(ファイルを閲覧、PageUp/PageDownでスクロール可能)

less +100 file.txt
(100行目から表示開始)
・大きなログファイルの閲覧
・長いテキストファイルの確認
head ファイルの先頭部分を表示 head -n 10 file.txt
(ファイルの先頭10行を表示)

head file.txt
(デフォルトで先頭10行を表示)
・ログファイルの最新部分確認
・CSVヘッダー確認
tail ファイルの末尾部分を表示 tail -f log.txt
(ファイルの更新をリアルタイムで監視)

tail -n 100 log.txt
(最後の100行を表示)
・ログのリアルタイム監視
・処理進行状況の確認
man コマンドのマニュアルを表示 man ls
(lsコマンドのマニュアル表示)

man -k search_term
(キーワードでマニュアル検索)
・コマンドオプションの確認
・使い方の詳細学習
history 実行したコマンドの履歴を表示 history
(コマンド履歴全てを表示)

`history
grep git`
(gitを含むコマンド履歴のみ表示)
clear 画面をクリア clear
(ターミナル画面をクリア)

Ctrl+L
(ショートカットでクリア)
・作業スペースのクリーンアップ
・出力の見やすさ向上
echo テキストを出力 echo "Hello World"
(テキストをターミナルに出力)

echo $PATH
(環境変数を表示)
・シェルスクリプト内のメッセージ表示
・環境変数確認

2. ファイル操作

コマンド 説明 使用例 実際の使用シーン
file ファイルタイプを判定 file document.pdf
(ファイルのタイプを表示)

file *
(カレントディレクトリ内の全ファイルのタイプを表示)
・拡張子のないファイルの種類特定
・ファイルフォーマットの確認
stat ファイルの詳細情報(メタデータ)を表示 stat file.txt
(ファイルの詳細情報を表示)

stat -c "%a %n" file.txt
(パーミッションと名前のみ表示)
・ファイル作成・更新日時の確認
・パーミッションの詳細確認
wc 行数・単語数・バイト数をカウント wc -l file.txt
(ファイルの行数のみをカウント)

wc file.txt
(行数、単語数、バイト数を表示)
・コードの行数カウント
・テキスト量の測定
dd 低レベルなファイルコピーや変換
注意: 誤使用でデータ損失の可能性
dd if=/dev/zero of=file.txt count=1 bs=1M
(1MBの0埋めファイルを作成)

dd if=/dev/sda of=disk.img bs=4M
(ディスクイメージを作成)
・ディスクイメージのバックアップ
・大容量ファイルの効率的コピー
ln ハードリンクまたはシンボリックリンクを作成 ln -s target_file link_name
(シンボリックリンクを作成)

ln original_file hard_link
(ハードリンクを作成)
・共有ライブラリへのリンク
・設定ファイルの標準位置へのリンク
chown ファイル所有者とグループを変更 chown user:group file.txt
(ファイルの所有者とグループを変更)

chown -R www-data:www-data /var/www/
(ディレクトリ以下を再帰的に変更)
・アップロードファイルの所有権変更
・サービス実行ユーザーへの権限付与
chmod ファイルのアクセス権限を変更 chmod 755 script.sh
(実行権限を付与)

chmod -R g+w directory/
(ディレクトリ以下にグループ書き込み権限を付与)
・スクリプトに実行権限を付与
・セキュリティ設定の調整
diff ファイル間の差分を比較 diff file1.txt file2.txt
(2つのファイルの差分を表示)

diff -u file1.txt file2.txt
(Unified形式で差分を表示)
・設定ファイルの変更確認
・コードの変更点確認
md5sum MD5ハッシュ値を計算(ファイル整合性確認) md5sum file.txt
(ファイルのMD5ハッシュ値を表示)

md5sum -c checksums.md5
(チェックサムファイルで検証)
・ダウンロードファイルの整合性確認
・ファイル変更の検出
sha256sum SHA256ハッシュ値を計算(より安全なハッシュ) sha256sum file.txt
(ファイルのSHA256ハッシュ値を表示)

sha256sum -c checksums.sha256
(チェックサムファイルで検証)
・セキュリティ重視のファイル検証
・暗号化キーの検証
truncate ファイルサイズを変更(拡大/縮小) truncate -s 0 log.txt
(ファイルを0バイトに切り詰めて空にする)

truncate -s 1G large_file.dat
(ファイルサイズを1GBに設定)
・ログファイルのクリア
・大容量ファイルの作成
split 大きなファイルを分割 split -b 1G large_file.dat chunk_
(1GBごとに分割)

split -l 1000 records.csv part_
(1000行ごとに分割)
・大容量ファイルの転送
・バックアップの分割保存
basename パスからファイル名を取得 basename /path/to/file.txt
(パスからファイル名「file.txt」を抽出)

basename /path/to/file.txt .txt
(拡張子を除いたファイル名「file」を抽出)
・スクリプト内でのファイル名抽出
・出力ファイル名の構築
dirname パスからディレクトリ名を取得 dirname /path/to/file.txt
(パスからディレクトリ部分「/path/to」を抽出)
・スクリプト内での相対パス生成
・設定ファイルディレクトリの特定

3. ディレクトリ操作

コマンド 説明 使用例 実際の使用シーン
find 条件に一致するファイル・ディレクトリを検索 find /path -name "*.txt" -type f
(指定パス内のtxtファイルを検索)

find . -mtime +30 -delete
(30日以上前のファイルを削除)
・古いログファイルの検索
・特定拡張子のファイル一括処理
du ディレクトリのディスク使用量を表示 du -sh /path
(指定パスの合計サイズを人間が読みやすい形式で表示)

du -h --max-depth=1 /path
(1階層のみのサイズを表示)
・ディスク容量の問題調査
・バックアップサイズの見積もり
ncdu ディスク使用量を対話的に表示(du の高機能版) ncdu /path
(対話的ディスク使用量分析ツールを起動)

ncdu -x /
(他のファイルシステムをマウントポイントで除外)
・ディスク容量問題の詳細分析
・大きなディレクトリの調査
tree ディレクトリ構造をツリー形式で表示 tree -L 2 /path
(深さ2までのディレクトリ構造を表示)

`tree -I "node_modules
vendor" .`
(特定ディレクトリを除外してツリー表示)
pushd ディレクトリをスタックに保存して移動 pushd /path/to/dir
(現在のディレクトリをスタックに保存して移動)

pushd +2
(スタック内の2番目の位置に移動)
・複数ディレクトリ間の素早い移動
・元の場所に戻る予定のある作業
popd スタックから直前のディレクトリに戻る popd
(スタックから最後にpushdした場所に戻る)

popd +1
(スタック内の1番目の位置を削除)
・作業ディレクトリへの素早い復帰
・スクリプト内での位置復元
dirs ディレクトリスタックの内容を表示 dirs -v
(スタック内容を番号付きで表示)

dirs -c
(スタックをクリア)
・保存されたディレクトリパスの確認
・スタック操作前の状態確認

4. テキスト処理

コマンド 説明 使用例 実際の使用シーン
grep テキスト内でパターンに一致する行を検索 grep -r "pattern" /path
(ディレクトリ内を再帰的に検索)

grep -i "ERROR" --include="*.log" -r .
(大文字小文字を区別せずにログファイルからエラーを検索)
・エラーログの検索
・コード内の特定パターン検索
sed テキストストリームの検索・置換・編集 sed 's/old/new/g' file.txt
(ファイル内の「old」を「new」に置換)

sed -i '5d' file.txt
(ファイルの5行目を削除)
・設定ファイルの一括編集
・テキスト整形の自動化
awk パターン処理言語によるテキスト処理 awk '{print $1}' file.txt
(各行の1列目を抽出)

awk -F, '{sum+=$3} END {print sum}' data.csv
(CSV 3列目の合計を計算)
・ログファイルの特定フィールド抽出
・CSVデータの集計
cut テキストの特定部分を切り出し cut -d, -f1,3 file.csv
(CSVの1列目と3列目を抽出)

cut -c1-10 file.txt
(各行の最初の10文字を抽出)
・CSVからの特定列抽出
・固定長データの項目抽出
tr 文字単位での置換や削除 tr 'a-z' 'A-Z' < file.txt
(小文字を大文字に変換)

tr -d '\r' < windows.txt > unix.txt
(改行コードをWindows形式からUNIX形式に変換)
・改行コード変換
・大文字小文字変換
sort テキストファイルの行をソート sort -k2,2n file.txt
(2列目を数値としてソート)

sort -t, -k3,3r data.csv
(CSVの3列目を降順でソート)
・ログエントリのソート
・CSVデータの並べ替え
uniq 隣接する重複行を削除/カウント `sort file.txt uniq -c<br>(重複行数をカウント)<br><br>sort file.txt
paste 複数ファイルの行を並べて結合 paste file1.txt file2.txt
(2ファイルを横に並べて結合)

paste -d, file1.txt file2.txt
(カンマ区切りで結合)
・関連データの結合
・マルチカラムレポート作成
join 共通フィールドに基づいてファイルを結合 join file1.txt file2.txt
(第1フィールドで結合)

join -1 2 -2 3 file1.txt file2.txt
(file1の2列目とfile2の3列目で結合)
・関連データの結合
・複数ログファイルの相関分析
comm ソート済みファイル間の共通・相違する行を比較 comm file1.txt file2.txt
(3列で出力: file1のみ、file2のみ、共通部分)

comm -23 file1.txt file2.txt
(file1のみにある行を表示)
・データセット間の差分特定
・共通エントリの抽出
column テキストを整形された列に整列 column -t file.txt
(スペース区切りのテキストを整形表示)

column -t -s, data.csv
(CSVを整形表示)
・データの整形表示
・テーブル形式データの可読性向上
strings バイナリファイルから印字可能な文字列を抽出 strings binary_file
(バイナリから印字可能文字を抽出)

strings -n 10 binary_file
(10文字以上の文字列のみ表示)
・バイナリファイルのデバッグ
・埋め込みテキストの調査

5. 検索コマンド

コマンド 説明 使用例 実際の使用シーン
find ファイルシステム内でファイル検索と操作 find . -name "*.log" -mtime +30 -delete
(30日以上前のlogファイルを検索して削除)

find /path -size +100M
(100MB以上のファイルを検索)
・古いファイルのクリーンアップ
・大容量ファイルの特定
locate インデックスDBを使用した高速ファイル検索 locate filename
(filenameを含むファイルを高速検索)

locate -i "*.conf"
(大文字小文字を区別せずconfファイルを検索)
・設定ファイルの迅速な検索
・システム内のファイル位置特定
which コマンドのフルパスを検索 which python
(pythonコマンドのパスを表示)

which -a python
(すべてのpythonコマンドのパスを表示)
・コマンドパスの確認
・複数バージョンのコマンド位置確認
whereis コマンドのバイナリ・ソース・マニュアル位置を検索 whereis gcc
(gccコマンドの関連ファイル位置を表示)
・コマンドのドキュメント位置確認
・パッケージのインストール確認
rg (ripgrep) 高速なテキストパターン検索 rg -i "pattern" --type=js
(JavaScriptファイル内でパターンを大文字小文字区別なく検索)

rg -l "TODO" --glob "*.py"
(TODOを含むPythonファイル名を表示)
・大規模コードベースの検索
・特定言語ファイルのみの検索
ag (silver searcher) 高速テキスト検索(rg に類似) ag "pattern" --js
(JavaScriptファイル内でパターンを検索)

ag --count "TODO" --python
(Pythonファイル内のTODO出現回数をカウント)
・大規模プロジェクト内の検索
・コード内の特定パターン検索
xargs 標準入力をコマンドの引数に変換 `find . -name "*.tmp" xargs rm<br>(tmpファイルを検索して削除)<br><br>cat urls.txt

6. アーカイブと圧縮

コマンド 説明 使用例 実際の使用シーン
tar 複数ファイルをアーカイブ化・展開 tar -czvf archive.tar.gz /path/to/dir
(ディレクトリをgzip圧縮してアーカイブ作成)

tar -xzvf archive.tar.gz
(gzip圧縮アーカイブを展開)
・プロジェクトのバックアップ
・ログファイルのアーカイブ
gzip gzip形式で単一ファイルを圧縮 gzip file.txt
(ファイルをgzip圧縮してfile.txt.gzを作成)

gzip -9 file.txt
(最高圧縮率で圧縮)
・ログファイルの圧縮
・転送サイズの削減
gunzip gzip圧縮ファイルを展開 gunzip file.txt.gz
(gzip圧縮ファイルを展開)
・圧縮ログの閲覧
・ダウンロードしたgzipファイルの展開
zip ZIP形式でファイル圧縮(Windows互換) zip -r archive.zip /path/to/dir
(ディレクトリを再帰的にZIP圧縮)

zip -e secure.zip file.txt
(パスワード保護付きで圧縮)
・クロスプラットフォーム共有
・Webからのダウンロード用パッケージ
unzip ZIPアーカイブを展開 unzip archive.zip -d /path/to/extract
(ZIPファイルを指定ディレクトリに展開)

unzip -l archive.zip
(ZIPファイルの内容一覧表示)
・ダウンロードしたZIPの展開
・アップロードされたZIPの処理
bzip2 bzip2形式で圧縮(gzipより高圧縮率) bzip2 file.txt
(ファイルをbzip2圧縮してfile.txt.bz2を作成)
・高圧縮率が必要なファイル
・長期保存用アーカイブ
bunzip2 bzip2圧縮ファイルを展開 bunzip2 file.txt.bz2
(bzip2圧縮ファイルを展開)
・bz2形式のファイル展開
・アーカイブからのデータ復元
xz xz形式で圧縮(最高圧縮率) xz -9 file.txt
(最高圧縮率でxz圧縮)

xz -d file.txt.xz
(xz圧縮ファイルを展開)
・非常に大きなファイルの長期保存
・帯域制限がある環境での転送
7z 多形式対応の高圧縮率アーカイバ 7z a archive.7z /path/to/dir
(7z形式でアーカイブ作成)

7z x archive.7z -o/path/to/extract
(アーカイブを指定パスに展開)
・高圧縮率が必要な場合
・パスワード保護が必要な場合

tar よく使うオプション

オプション 説明 使用例
c アーカイブを作成 tar -cf archive.tar files/
(アーカイブファイルを作成)
x アーカイブを展開 tar -xf archive.tar
(アーカイブファイルを展開)
t アーカイブ内容を表示 tar -tf archive.tar
(アーカイブの内容一覧を表示)
f ファイル名指定 tar -cf archive.tar files/
(操作対象のアーカイブファイル名を指定)
v 詳細表示 tar -cvf archive.tar files/
(処理されるファイルを表示)
z gzip圧縮/展開 tar -czf archive.tar.gz files/
(gzipでの圧縮を指定)
j bzip2圧縮/展開 tar -cjf archive.tar.bz2 files/
(bzip2での圧縮を指定)
J xz圧縮/展開 tar -cJf archive.tar.xz files/
(xzでの圧縮を指定)
--exclude 特定ファイル/ディレクトリを除外 tar -czf archive.tar.gz --exclude='*.log' dir/
(logファイルを除外してアーカイブ作成)

7. ネットワーク関連

コマンド 説明 使用例 実際の使用シーン
ping ホストへの到達性を確認 ping -c 4 example.com
(4回だけpingを送信)

ping -i 0.2 -c 100 192.168.1.1
(0.2秒間隔で100回pingを送信)
・サーバーの生存確認
・ネットワーク遅延の測定
traceroute パケットの経路を表示 traceroute example.com
(宛先までの経路を表示)

traceroute -I example.com
(ICMPを使用した経路追跡)
・ネットワーク問題の切り分け
・経路最適化の検証
mtr traceroute + ping の機能を統合 mtr example.com
(対話的な経路モニタリングを開始)

mtr --report example.com
(レポート形式で結果を出力)
・ネットワーク不安定性の継続監視
・パケットロスの発生場所特定
dig DNS検索と解析 dig example.com A
(ドメインのAレコードを検索)

dig +trace example.com
(DNSの委任パスをトレース)
・DNSの問題診断
・DNSレコードの確認
nslookup 名前解決の確認 nslookup example.com
(ホスト名の名前解決を実行)

nslookup -type=mx example.com
(MXレコードの検索)
・基本的なDNS確認
・メールサーバー設定確認
host シンプルなDNS検索 host example.com
(ホスト名の名前解決を実行)

host -t TXT example.com
(TXTレコードの表示)
・DNSレコードの簡易確認
・SPF/DKIM記録の確認
whois ドメイン登録情報の照会 whois example.com
(ドメインの登録情報を表示)

whois 8.8.8.8
(IPアドレスの所有者情報を表示)
・ドメイン所有者の確認
・不審なIPアドレスの調査
curl データ転送ツール(HTTP/FTP/SMTP等) curl -O https://example.com/file.zip
(ファイルをダウンロード)

curl -X POST -d "data" https://api.example.com
(POSTリクエストを送信)
・API のテスト
・ファイルダウンロード
wget ファイルダウンロード特化ツール wget https://example.com/file.zip
(ファイルをダウンロード)

wget -r -np https://example.com/docs/
(ウェブサイトの一部を再帰的にダウンロード)
・大きなファイルの再開可能ダウンロード
・Webサイトのミラーリング
nc (netcat) TCP/UDP接続の診断・テスト nc -zv example.com 80
(ポート80への接続テスト)

nc -l 8080 > received_file.txt
(ポート8080でリッスンしてファイル受信)
・ポート開通確認
・簡易ファイル転送
ss ソケット情報の表示 ss -tuln
(リスニング中のTCP/UDPポートを表示)

ss -tp
(接続中のTCPソケットとプロセスを表示)
・開いているポートの確認
・ネットワーク接続の詳細確認
ip ネットワークインターフェース管理 ip a
(全インターフェースのアドレス情報を表示)

ip r
(ルーティングテーブルを表示)
・ネットワーク設定の確認
・ルーティングテーブルの管理
tcpdump ネットワークパケットのキャプチャ tcpdump -i eth0 port 80
(eth0インターフェースのポート80トラフィックをキャプチャ)

tcpdump -A -i any host example.com
(特定ホストとの通信内容をASCII表示)
・ネットワーク問題の詳細診断
・通信内容の検査
nmap ネットワーク探索・セキュリティ監査 nmap -p 1-1000 192.168.1.1
(1-1000番ポートのスキャン)

nmap -sV example.com
(サービスバージョン検出スキャン)
・セキュリティ脆弱性スキャン
・ネットワーク資産の把握

8. プロセス管理

コマンド 説明 使用例 実際の使用シーン
ps 実行中のプロセス情報を表示 ps aux
(すべてのプロセスを詳細表示)

`ps -ef
grep nginx`
(nginxプロセスを検索)
top プロセス活動をリアルタイム監視 top
(リアルタイムプロセス監視を開始)

top -u username
(特定ユーザーのプロセスのみ表示)
・リソース使用状況のリアルタイム監視
・高負荷プロセスの特定
htop top の高機能インタラクティブ版 htop
(対話的プロセスビューアを起動)

htop -p 1234,5678
(指定PIDのプロセスのみ表示)
・システム状態の視覚的監視
・プロセス階層関係の把握
kill プロセスにシグナルを送信して終了 kill -9 1234
(プロセスを強制終了)

kill -15 1234
(プロセスに正常終了シグナルを送信)
・応答しないプロセスの終了
・サービスの再起動準備
pkill 名前でプロセスを終了 pkill firefox
(firefoxという名前のプロセスをすべて終了)

pkill -u username
(指定ユーザーのプロセスをすべて終了)
・特定アプリケーションの全インスタンス終了
・ユーザープロセスの一括終了
pgrep プロセス名からPIDを検索 pgrep nginx
(nginxプロセスのPIDを表示)

pgrep -u root ssh
(rootユーザーのsshプロセスを検索)
・特定プロセスのPID取得
・スクリプト内でのプロセス特定
nice 優先度を指定してコマンド実行 nice -n 19 command
(最低優先度でコマンドを実行)

nice -n -10 command
(高優先度で実行、root権限必要)
・バックグラウンドジョブの優先度下げ
・システム負荷分散
renice 実行中プロセスの優先度を変更 renice -n 19 -p 1234
(PID 1234のプロセスの優先度を下げる)

renice -n 10 -u username
(特定ユーザーのプロセス優先度を変更)
・実行中プロセスの優先度調整
・重要プロセスのパフォーマンス確保
jobs シェルのバックグラウンドジョブを表示 jobs -l
(バックグラウンドジョブをPID付きで表示)
・バックグラウンド処理の状態確認
・中断したジョブの確認
fg バックグラウンドジョブをフォアグラウンドに fg %1
(ジョブ番号1をフォアグラウンドに移動)
・バックグラウンドジョブの監視
・中断したジョブの再開
bg 一時停止したジョブをバックグラウンドで実行 bg %1
(ジョブ番号1をバックグラウンドで継続実行)
・誤って前面で開始したジョブの移動
・長時間実行ジョブのバックグラウンド化
nohup ログアウト後もプロセスを継続 nohup command &
(ログアウト後も継続するプロセスを開始)

nohup command > output.log 2>&1 &
(出力をファイルにリダイレクト)
・長時間実行バッチの実行
・リモートサーバーでの長期処理
watch コマンドを定期的に実行して結果表示 watch -n 2 'ls -l'
(2秒ごとにls -lを実行して表示)
・ファイル変更の監視
・システム状態の定期確認
screen 仮想端末セッションを管理 screen -S session_name
(名前付きのscreenセッションを開始)

screen -r session_name
(既存のscreenセッションに再接続)
・リモートサーバーでの長時間作業
・複数ターミナル管理
tmux 高機能な端末多重化 tmux new -s session_name
(名前付きtmuxセッションを開始)

tmux a -t session_name
(既存のtmuxセッションにアタッチ)
・複数の作業を同時に表示
・開発環境のカスタマイズ

9. システム情報

コマンド 説明 使用例 実際の使用シーン
uname システム情報の表示 uname -a
(すべてのシステム情報を表示)

uname -r
(カーネルリリースバージョンのみ表示)
・OS/カーネルバージョン確認
・システム互換性の確認
hostname システムのホスト名を表示・設定 hostname
(現在のホスト名を表示)

sudo hostname new-name
(一時的にホスト名を変更)
・現在のサーバー名確認
・複数サーバー操作時の識別
uptime システム稼働時間と負荷表示 uptime
(稼働時間、ユーザー数、負荷平均を表示)

uptime -p
(稼働時間を読みやすい形式で表示)
・システム安定性の確認
・負荷傾向の確認
free メモリ使用状況の表示 free -h
(メモリ使用量を人間が読みやすい単位で表示)

free -m
(メガバイト単位で表示)
・メモリリーク調査
・アプリケーションのメモリ要件確認
df ディスク空き容量の表示 df -h
(ファイルシステムの使用状況を人間が読みやすい単位で表示)

df -i
(iノード使用状況を表示)
・ディスク容量の管理
・ファイルシステム使用率の監視
lsblk ブロックデバイス情報の表示 lsblk
(ブロックデバイスをツリー形式で表示)

lsblk -f
(ファイルシステム情報を含めて表示)
・ディスクのパーティション構成確認
・マウントポイントの確認
dmesg カーネルメッセージバッファの表示 `dmesg grep -i error<br>(エラーメッセージを大文字小文字区別なく抽出)<br><br>dmesg -T`
(タイムスタンプを読みやすい形式で表示)
vmstat 仮想メモリ統計情報 vmstat 1 10
(1秒間隔で10回統計情報を表示)

vmstat -S M
(メガバイト単位で表示)
・システムのボトルネック特定
・メモリ/CPU/IO使用状況の監視
iostat CPU・ディスクI/O統計 iostat -x 1 10
(拡張統計を1秒間隔で10回表示)

iostat -d -x /dev/sda
(特定ディスクの詳細I/O統計)
・ディスクI/Oのボトルネック特定
・ストレージパフォーマンス問題診断
journalctl systemdのジャーナルログ表示 journalctl -xe
(最新のメッセージを詳細表示)

journalctl -u nginx.service
(特定サービスのログのみ表示)
・システムエラーの調査
・サービス問題のトラブルシューティング
systemctl systemdサービス管理 systemctl status nginx
(Nginxサービスの状態を表示)

systemctl restart mysql
(MySQLサービスを再起動)
・サービスの状態確認
・サービスの起動/停止/再起動

10. パーミッション管理

コマンド 説明 使用例 実際の使用シーン
chmod ファイルのアクセス権限を変更 chmod 755 script.sh
chmod -R g+w directory/
・スクリプトに実行権限を付与
・共有ディレクトリのアクセス制御
chown ファイルの所有者とグループを変更 chown user:group file.txt
chown -R www-data:www-data /var/www/
・デプロイしたファイルの所有権変更
・サービス実行ユーザーへの権限付与
chgrp ファイルのグループ所有権を変更 chgrp group file.txt
chgrp -R developers /opt/project/
・グループベースのアクセス制御
・プロジェクトファイルの共有設定
umask 新規作成ファイルのデフォルト権限設定 umask 022
umask -S
・セキュリティポリシーの実装
・新規ファイル作成時の権限制御
getfacl ファイルのACL(アクセス制御リスト)を表示 getfacl file.txt
getfacl -R directory/
・詳細なアクセス制御の確認
・セキュリティ監査
setfacl ファイルにACL設定を適用 setfacl -m u:user:rw file.txt
setfacl -m g:group:r-x directory/
・通常のパーミッションでは不十分な場合の詳細制御
・特定ユーザーへの例外的権限付与

chmod数値表記

数字 パーミッション 表記 説明
0 なし --- アクセス権なし
1 実行のみ --x ファイル実行、ディレクトリ移動のみ
2 書き込みのみ -w- ファイル編集、ディレクトリ内ファイル作成・削除
3 書き込み+実行 -wx ファイル編集・実行、ディレクトリ管理
4 読み取りのみ r-- ファイル内容表示、ディレクトリ内容一覧
5 読み取り+実行 r-x ファイル読取・実行、ディレクトリ閲覧・移動
6 読み取り+書き込み rw- ファイル読取・編集、ディレクトリ内容確認・編集
7 全権限 rwx すべての操作が可能

一般的なパーミッション設定:

  • スクリプト: 755 (rwxr-xr-x) - 所有者は全権限、他者は実行と読み取り
  • 設定ファイル: 644 (rw-r--r--) - 所有者は読み書き可能、他者は読み取りのみ
  • 非公開ファイル: 600 (rw-------) - 所有者のみアクセス可能

11. パッケージ管理

apt (Debian/Ubuntu)

コマンド 説明 使用例 実際の使用シーン
apt update パッケージリストを最新化 sudo apt update
(パッケージリストを更新)
・システム更新前の準備
・最新パッケージ情報の取得
apt upgrade インストール済みパッケージを更新 sudo apt upgrade
(インストール済みパッケージを更新)

sudo apt full-upgrade
(依存関係の変更も含めた完全アップグレード)
・定期的なシステムメンテナンス
・セキュリティアップデートの適用
apt install パッケージをインストール sudo apt install package
(単一パッケージをインストール)

sudo apt install package1 package2
(複数パッケージを同時にインストール)
・開発ツールのインストール
・アプリケーション依存関係のインストール
apt remove パッケージを削除(設定ファイルは保持) sudo apt remove package
(パッケージを削除するが設定ファイルは残す)
・不要アプリケーションの削除
・ディスク容量の確保
apt purge パッケージと設定ファイルを完全に削除 sudo apt purge package
(パッケージと設定ファイルを完全に削除)
・設定を含めた完全クリーンアップ
・クリーンインストール準備
apt search パッケージを検索 apt search keyword
(キーワードを含むパッケージを検索)
・必要なパッケージの検索
・特定機能を提供するパッケージの特定
apt show パッケージの詳細情報を表示 apt show package
(パッケージの詳細情報を表示)
・依存関係の確認
・パッケージのバージョン・機能確認
apt list パッケージリストを表示 apt list --installed
(インストール済みパッケージを一覧表示)

apt list --upgradable
(アップグレード可能なパッケージを表示)
・インストール済みソフトウェアの確認
・利用可能アップデートの確認
apt autoremove 不要になった依存パッケージを削除 sudo apt autoremove
(不要になった依存パッケージを自動削除)
・システムクリーンアップ
・ディスク容量の確保

yum/dnf (RHEL/CentOS/Fedora)

コマンド 説明 使用例 実際の使用シーン
yum update パッケージ情報の更新とアップデート sudo yum update
(すべてのパッケージを更新)

sudo yum update -y
(確認なしで全パッケージを更新)
・システムの定期メンテナンス
・セキュリティパッチの適用
dnf upgrade パッケージの更新(dnfはyumの後継) sudo dnf upgrade
(すべてのパッケージをアップグレード)

sudo dnf upgrade --refresh
(メタデータを更新してからアップグレード)
・Fedoraシステムの更新
・RHEL8以降のシステム更新
yum install パッケージのインストール sudo yum install package
(パッケージをインストール)

sudo yum install --nogpgcheck package
(GPG署名チェックをスキップしてインストール)
・サーバーソフトウェアのインストール
・開発環境の構築
dnf install dnfによるパッケージインストール sudo dnf install package
(パッケージをインストール)

sudo dnf install --best package
(最適なバージョンをインストール)
・最新Linuxディストリビューションでのソフトウェア導入
・モジュラーパッケージの管理
yum remove パッケージの削除 sudo yum remove package
(パッケージを削除)
・不要ソフトウェアの削除
・バージョン変更のための削除
yum search パッケージの検索 yum search keyword
(キーワードを含むパッケージを検索)
・特定機能のパッケージ検索
・パッケージ名の部分一致検索
dnf list パッケージ一覧の表示 dnf list installed
(インストール済みパッケージを一覧表示)

dnf list updates
(更新可能なパッケージを表示)
・システム構成の確認
・アップデート対象の把握

12. SSH関連

コマンド 説明 使用例 実際の使用シーン
ssh リモートホストへのセキュア接続 ssh user@host
(基本的なSSH接続)

ssh -i ~/.ssh/key.pem user@host
(秘密鍵を指定してSSH接続)
・リモートサーバー管理
・クラウドインスタンスへの接続
ssh-keygen SSH認証鍵の生成 ssh-keygen -t ed25519
(より安全なED25519アルゴリズムで鍵生成)

ssh-keygen -t rsa -b 4096 -C "comment"
(4096ビットのRSA鍵をコメント付きで生成)
・サーバーアクセス用の認証鍵作成
・Gitリポジトリ認証用の鍵生成
ssh-copy-id リモートホストに公開鍵を登録 ssh-copy-id user@host
(デフォルトの公開鍵をリモートホストに登録)

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host
(特定の公開鍵を登録)
・パスワードなしログイン設定
・新規サーバー構築時の初期設定
scp ファイルをSSH経由で安全に転送 scp file.txt user@host:/path
(ローカルファイルをリモートホストにコピー)

scp -r directory/ user@host:/path
(ディレクトリを再帰的にコピー)
・設定ファイルのデプロイ
・ログファイルの取得
sftp 対話型のSSHファイル転送 sftp user@host
(対話式SFTPセッションを開始)

sftp内コマンド: get file(ダウンロード)
put file(アップロード)
ls, cd(ディレクトリ操作)
・対話的ファイル操作
・複数ファイルの転送管理
rsync 効率的なファイル同期ツール rsync -avz /local user@host:/remote
(ローカルからリモートへアーカイブモードで同期)

rsync -avz --delete /local/ user@host:/remote/
(リモート側の余分なファイルを削除して完全同期)
・増分バックアップ
・サイトのデプロイ
sshfs リモートファイルシステムをマウント sshfs user@host:/remote /local
(リモートディレクトリをローカルにマウント)

sshfs user@host:/remote /local -o reconnect
(切断時に自動再接続)
・リモートファイルの直接編集
・複数サーバーのファイルシステム統合操作

13. Git コマンド

コマンド 説明 使用例 実際の使用シーン
git init 新しいGitリポジトリを作成 git init
(現在のディレクトリを新しいGitリポジトリとして初期化)

git init --bare
(作業ディレクトリなしのベアリポジトリを作成)
・新規プロジェクト開始時
・既存コードをバージョン管理化
git clone リモートリポジトリをローカルにコピー git clone https://github.com/user/repo.git
(HTTPSプロトコルでリポジトリをクローン)

git clone --depth 1 URL
(直近の履歴1件のみの浅いクローン)
・既存プロジェクトの開発参加
・オープンソースへの貢献
git add 変更をステージングエリアに追加 git add .
(すべての変更をステージング)

git add -p
(変更を対話的に選択してステージング)
・関連変更のグループ化
・コミット前の変更確認
git commit ステージングされた変更を記録 git commit -m "Message"
(メッセージ付きでコミット)

git commit --amend
(直前のコミットを修正)
・一連の変更の保存
・機能追加の記録
git status 作業ディレクトリとステージングの状態表示 git status
(詳細な状態表示)

git status -s
(短縮形式で状態表示)
・未コミットの変更確認
・ステージング済み変更の確認
git diff ファイル間の差分を表示 git diff
(ステージングされていない変更の差分表示)

git diff --staged
(ステージング済みの変更の差分表示)
・コード変更の詳細確認
・コミット前のレビュー
git log コミット履歴を表示 git log --oneline --graph
(グラフィカルに一行表示のコミット履歴)

git log -p
(各コミットの差分も含めて表示)
・プロジェクト進行状況の確認
・変更履歴の追跡
git branch ブランチの作成・一覧表示・削除 git branch new-branch
(新しいブランチを作成)

git branch -d branch-name
(ブランチを削除)
・新機能開発の分離
・バグ修正の分離
git checkout ブランチの切替・ファイルの復元 git checkout branch-name
(指定ブランチに切り替え)

git checkout -b new-branch
(新ブランチを作成して切り替え)
・ブランチ間の移動
・誤った変更の取り消し
git merge 異なるブランチの変更を統合 git merge branch-name
(指定ブランチを現在のブランチにマージ)

git merge --no-ff branch-name
(Fast-forwardせずに常にマージコミットを作成)
・完成した機能の統合
・バグ修正の本番適用
git pull リモートの変更を取得してマージ git pull origin main
(originリポジトリのmainブランチから変更を取得・マージ)

git pull --rebase origin main
(マージではなくリベースで変更を取り込む)
・チームメンバーの変更の取得
・作業開始前の最新化
git push ローカルの変更をリモートに送信 git push origin main
(ローカルの変更をoriginリポジトリのmainブランチに送信)

git push -u origin new-branch
(新しいブランチをリモートに作成してプッシュ)
・完了した作業の共有
・コードレビュー依頼
git fetch リモートの情報を取得(マージなし) git fetch origin
(originリポジトリからすべてのブランチの情報を取得)

git fetch --all
(すべてのリモートから情報取得)
・リモート変更の確認
・マージ前の変更内容確認
git stash 作業中の変更を一時保存 git stash save "WIP"
(「WIP」という説明付きで変更を退避)

git stash pop
(退避した変更を復元して退避スタックから削除)
・緊急タスク対応時の作業退避
・ブランチ変更前の未完了作業保存
git reset HEADの位置を変更 git reset --hard HEAD^
(直前のコミットを完全に取り消し)

git reset --soft HEAD~3
(3つ前のコミットまで戻し、変更はステージング状態に保持)
・誤ったコミットの取り消し
・コミット履歴の整理
git rebase コミット履歴を再構成 git rebase -i HEAD~3
(直近3つのコミットを対話的に編集)

git rebase main
(mainブランチの最新に現在のブランチを乗せ替え)
・コミット履歴の整理
・取り込み済みブランチの更新

14. Docker コマンド

コマンド 説明 使用例 実際の使用シーン
docker ps 実行中コンテナの一覧表示 docker ps -a
(停止中も含めたすべてのコンテナを表示)

docker ps -q
(コンテナIDのみを表示)
・実行中のサービス確認
・コンテナ状態の監視
docker images ローカルのイメージ一覧表示 docker images
(ローカルに保存されたイメージを一覧表示)

docker images --format "{{.Repository}}:{{.Tag}}"
(名前とタグのみをフォーマット指定で表示)
・利用可能なイメージの確認
・古いイメージの特定
docker run イメージからコンテナを作成・起動 docker run -d -p 80:80 nginx
(nginxイメージをバックグラウンドで実行し、ポート80をマッピング)

docker run -it --rm ubuntu bash
(ubuntuで対話的シェルを起動し、終了時にコンテナ削除)
・アプリケーションのデプロイ
・開発環境の起動
docker build Dockerfileからイメージを構築 docker build -t myapp:1.0 .
(カレントディレクトリのDockerfileからmyapp:1.0というタグ付きイメージを構築)

docker build --no-cache -t myapp .
(キャッシュを使わずに新規ビルド)
・アプリケーションのパッケージング
・CI/CDパイプラインでのビルド
docker exec 実行中コンテナでコマンドを実行 docker exec -it container_id bash
(実行中コンテナで対話的バッシュシェルを起動)

docker exec container_id ls /app
(コンテナ内の/appディレクトリの内容を表示)
・コンテナ内のトラブルシューティング
・設定確認
docker logs コンテナのログを表示 docker logs -f container_id
(コンテナのログをリアルタイムで追跡)

docker logs --tail 100 container_id
(最新の100行のログのみ表示)
・アプリケーションのデバッグ
・エラー調査
docker stop コンテナを停止 docker stop container_id
(コンテナを正常に停止)

docker stop $(docker ps -q)
(すべての実行中コンテナを停止)
・アプリケーションの正常終了
・リソース解放
docker rm コンテナを削除 docker rm container_id
(停止したコンテナを削除)

docker rm -f container_id
(実行中のコンテナを強制削除)
・クリーンアップ
・不要コンテナの整理
docker rmi イメージを削除 docker rmi image_id
(指定したイメージを削除)

docker rmi $(docker images -q -f "dangling=true")
(タグ付けされていない不要イメージを削除)
・ディスク容量の確保
・古いバージョンの削除
docker-compose up 複数コンテナのサービスを起動 docker-compose up -d
(docker-compose.ymlで定義されたサービスをバックグラウンドで起動)

docker-compose up --build
(サービス起動前にイメージを再ビルド)
・開発環境の一括起動
・マイクロサービスの構築
docker-compose down 複数コンテナのサービスを停止・削除 docker-compose down
(サービス、コンテナ、ネットワークを停止・削除)

docker-compose down -v
(ボリュームも含めて削除)
・環境の完全クリーンアップ
・リソースの解放
docker network Dockerネットワークの管理 docker network ls
(作成されたネットワーク一覧を表示)

docker network create mynetwork
(新しいネットワークを作成)
・サービス分離
・コンテナ間通信の設定
docker volume Dockerボリュームの管理 docker volume ls
(作成されたボリューム一覧を表示)

docker volume create myvolume
(新しいボリュームを作成)
・データベースの永続化
・設定ファイルの共有

15. Windows環境でのLinux

WSL関連コマンド (Windows)

コマンド 説明 使用例 実際の使用シーン
wsl WSLセッションを開始 wsl
(デフォルトのLinuxディストリビューションを起動)

wsl -d Ubuntu-20.04
(特定のディストリビューションを起動)
・Linuxコマンド実行
・シェルスクリプト開発
wsl --list インストール済みディストリビューション一覧 wsl --list --verbose
(詳細情報付きでディストリビューション一覧を表示)

wsl -l -o
(インストール可能なディストリビューション一覧を表示)
・インストール済み環境の確認
・WSL1/WSL2の確認
wsl --install WSLとLinuxディストリビューションをインストール wsl --install -d Ubuntu
(WSLとUbuntuディストリビューションをインストール)

wsl --install
(デフォルトのUbuntuをインストール)
・初回WSLセットアップ
・追加ディストリビューションの導入
wsl --terminate WSLインスタンスを終了 wsl --terminate Ubuntu
(実行中のUbuntuインスタンスを終了)

wsl -t Ubuntu
(短縮形の終了コマンド)
・メモリ解放
・問題発生時のリセット
wsl --export ディストリビューションをエクスポート wsl --export Ubuntu C:\backup.tar
(Ubuntuディストリビューションをtarファイルにエクスポート)
・開発環境のバックアップ
・環境の複製準備
wsl --import エクスポートしたディストリビューションをインポート wsl --import Ubuntu2 C:\Ubuntu C:\backup.tar
(バックアップから新しいインスタンスを作成)
・環境の複製
・バックアップからの復元
wsl --shutdown すべてのWSLインスタンスを停止 wsl --shutdown
(すべてのWSLディストリビューションを停止)
・システムリソース解放
・Windows再起動前の準備
wsl --set-version ディストリビューションのWSLバージョン変更 wsl --set-version Ubuntu 2
(UbuntuをWSL2に変更)
・パフォーマンス最適化
・機能互換性対応

Windows⇔WSL間ファイル操作

操作 説明 パス 実際の使用シーン
WSLからWindows Windowsファイルへのアクセス /mnt/c/Users/YourName/
(Windowsのユーザーフォルダにアクセス)

/mnt/d/projects/
(Dドライブのプロジェクトフォルダにアクセス)
・Windows上のプロジェクト操作
・ファイル共有
WindowsからWSL WSLファイルへのアクセス \\wsl$\Ubuntu\home\username\
(エクスプローラからUbuntuのホームディレクトリにアクセス)
・WindowsエディタでWSLファイル編集
・ファイルコピー
VSCodeリモート開発 WSL内のコードをVSCodeで編集 VS CodeのRemote-WSL拡張機能で接続

WSL内から: code .
(現在のディレクトリをVS Codeで開く)
・WSL内プロジェクトの統合開発
・クロスプラットフォーム開発

16. シェルスクリプト基本

スクリプト作成と実行

#!/bin/bash
# コメント
echo "Hello, World!"

実行方法:

chmod +x script.sh  # 実行権限付与
./script.sh         # 実行

実際の使用シーン: デプロイメント自動化、バックアップスクリプト、システム監視、開発環境セットアップ

変数

# 変数定義(=の前後にスペースは不可)
NAME="John"

# 変数使用
echo "Hello, $NAME"
echo "Hello, ${NAME}"  # 変数名が曖昧な場合に中括弧で明示

# コマンド結果を変数に格納
CURRENT_DIR=$(pwd)  # 推奨方法(コマンド置換)
FILES=`ls`  # 古い方法(バッククォート)

実際の使用シーン: 設定値の管理、繰り返し使用する値の保存、コマンド結果の処理

条件分岐

# 基本的な条件分岐
if [ "$1" = "test" ]; then
    echo "Test mode"
elif [ "$1" = "prod" ]; then
    echo "Production mode"
else
    echo "Unknown mode"
fi

# 数値比較 (-eq, -ne, -lt, -le, -gt, -ge)
if [ "$NUM" -eq 10 ]; then
    echo "Number is 10"
fi

# ファイル確認
if [ -f "$FILE" ]; then  # ファイルが存在する
    echo "File exists"
fi

if [ -d "$DIR" ]; then  # ディレクトリが存在する
    echo "Directory exists"
fi

# AND/OR条件
if [ "$A" = "yes" ] && [ "$B" = "yes" ]; then
    echo "Both are yes"
fi

if [ "$A" = "yes" ] || [ "$B" = "yes" ]; then
    echo "At least one is yes"
fi

実際の使用シーン: エラーハンドリング、引数による処理の分岐、環境チェック

ループ

# for文(リスト)
for i in 1 2 3 4 5; do
    echo "Number: $i"
done

# 範囲指定
for i in {1..10}; do
    echo "Number: $i"
done

# Cスタイルループ
for ((i=1; i<=5; i++)); do
    echo "Count: $i"
done

# while文
COUNT=1
while [ $COUNT -le 5 ]; do
    echo "Count: $COUNT"
    ((COUNT++))  # 数値インクリメント
done

# ファイル内容の読み取り
while read line; do
    echo "Line: $line"
done < input.txt

実際の使用シーン: ファイル一括処理、反復タスク、データ処理

関数

# 関数定義
function say_hello() {
    echo "Hello, $1!"  # 第1引数を参照
    return 0  # 戻り値(0は成功)
}

# 関数呼び出し
say_hello "World"

# 戻り値取得
say_hello "Test"
RESULT=$?  # 直前のコマンド(関数)の戻りコード
echo "Return code: $RESULT"

# 関数出力を変数に格納
OUTPUT=$(say_hello "Capture")
echo "Function output: $OUTPUT"

実際の使用シーン: 共通処理のモジュール化、コードの再利用、複雑な処理のカプセル化

特殊変数

変数 説明 使用例
$0 スクリプト名 echo "Script name: $0"
$1 - $9 引数1-9 echo "First argument: $1"
$# 引数の数 echo "Number of args: $#"
$@ すべての引数(クォートで囲むと個別に処理) for arg in "$@"; do echo $arg; done
$* すべての引数(一つの文字列として) echo "All args: $*"
$? 直前のコマンドの終了ステータス if [ $? -ne 0 ]; then echo "Error"; fi
$ 現在のシェルのプロセスID echo "PID: $"
$! 最後にバックグラウンドで実行したコマンドのプロセスID echo "Background PID: $!"

実際の使用シーン: スクリプトの柔軟な引数処理、エラーハンドリング、プロセス管理

17. 便利なワンライナー

テキスト処理

ワンライナー 説明 実際の使用シーン
cat data.csv | cut -d, -f2 CSVの2列目を抽出 ・データ分析の前処理
・特定フィールドの確認
grep "ERROR" log.txt | wc -l エラーメッセージの出現回数をカウント ・障害調査
・システムの健全性確認
sort file.txt | uniq -c | sort -nr テキスト行の出現頻度を降順表示 ・アクセス頻度分析
・パターン分析
find . -name "*.java" -exec grep -l "TODO" {} \; TODOコメントを含むJavaファイルを検索 ・コード品質チェック
・残作業の特定
sed '/^$/d' file.txt ファイル内の空行を削除 ・データクリーニング
・テキスト前処理
awk '{sum+=$2} END {print sum}' file.txt 2列目の数値を合計 ・数値データの集計
・ログファイルの統計

ファイル操作

ワンライナー 説明 実際の使用シーン
find . -type f -printf '%T@ %p\n' | sort -n | tail -10 | cut -f2- -d" " 最近変更された10ファイルを表示 ・最近の変更追跡
・監査作業
find . -type f -exec du -h {} \; | sort -rh | head -5 サイズが最大の5ファイルを表示 ・ディスク容量管理
・大きなファイルの特定
find / -type f -size +100M 100MB以上の大きなファイルを検索 ・ディスク容量の確保
・大きなログファイルの特定
find /path -type f -mtime +30 -delete 30日以上前のファイルを削除 ・自動クリーンアップ
・古いログの削除

システム管理

ワンライナー 説明 実際の使用シーン
ps aux --sort=-%mem | head -6 メモリ使用量上位5プロセスを表示 ・メモリリーク調査
・リソース使用監視
ps aux --sort=-%cpu | head -6 CPU使用率上位5プロセスを表示 ・高負荷プロセスの特定
・パフォーマンス問題診断
du -h /var | sort -rh | head -10 /var内の大きなディレクトリを表示 ・ディスク容量問題の特定
・クリーンアップ候補の特定
grep "Failed password" /var/log/auth.log | wc -l 失敗したログイン試行回数をカウント ・セキュリティ監視
・不正アクセス調査

ネットワーク関連

ワンライナー 説明 実際の使用シーン
netstat -tuln | grep LISTEN リスニング中のポートを表示 ・サービス稼働確認
・セキュリティ監査
lsof -i :80 ポート80を使用しているプロセスを特定 ・サービス診断
・ポート競合解決
curl -I https://example.com HTTPヘッダーを表示 ・Webサーバー設定確認
・リダイレクト確認
tcpdump -i eth0 'port 80' ポート80のトラフィックをキャプチャ ・ネットワークデバッグ
・プロトコル分析

18. トラブルシューティング

システム問題診断コマンド

問題 診断コマンド 対処方法
高CPU使用率 top(リアルタイムCPU監視)
ps aux --sort=-%cpu | head -10
・問題プロセスの特定と再起動
・負荷分散の実施
・アプリケーションの最適化
メモリ不足 free -h(メモリ使用状況確認)
vmstat 1 10(メモリ・スワップ監視)
・不要プロセスの終了
・スワップ設定調整
・メモリリークしているアプリの特定
ディスク容量不足 df -h(ファイルシステム使用率)
du -h --max-depth=1 /path(ディレクトリサイズ)
・大きなファイルの特定と削除
・ログローテーション設定
・不要データのアーカイブ
ネットワーク接続問題 ping host(基本的な到達性確認)
traceroute host(経路確認)
netstat -tuln(リスニングポート)
・ファイアウォール設定確認
・ネットワーク設定確認
・DNSキャッシュのクリア
サービス起動失敗 systemctl status service(サービス状態確認)
journalctl -xe(systemdログ確認)
・設定ファイルの修正
・必要なリソースへのアクセス権確認
・依存サービスの起動確認

ログ確認コマンド

ログタイプ 確認コマンド 一般的なチェックポイント
システムログ dmesg(カーネルメッセージ)
journalctl -b(現在ブートのログ)
・ハードウェアエラー
・ドライバー問題
・起動時エラー
アプリケーションログ tail -f /var/log/application.log
grep ERROR /var/log/application.log
・例外スタックトレース
・エラーメッセージ
・警告メッセージ
Webサーバーログ tail -f /var/log/nginx/access.log
grep 500 /var/log/nginx/error.log
・HTTPステータスコード
・処理時間
・エラーレスポンス
セキュリティログ grep "Failed password" /var/log/auth.log
last(ログイン履歴)
・不正アクセス試行
・認証失敗
・異常なログイン時間

19. パフォーマンス最適化

システム監視コマンド

コマンド 説明 最適化アクション
top / htop リアルタイムシステム監視 ・CPU/メモリ使用率の高いプロセスの特定
・異常なリソース消費の検出
vmstat 1 CPU、メモリ、I/O、スワップの秒間統計 ・メモリ不足とスワップ使用状況特定
・I/Oボトルネック検出
iostat -xz 1 ディスクI/O詳細統計 ・ディスクI/O飽和状態の特定
・ストレージパフォーマンス問題の特定
sar -n DEV 1 ネットワークインターフェース統計 ・ネットワーク飽和状態の検出
・帯域幅使用率の高いアプリケーションの特定

データベース最適化

コマンド/ツール 説明 最適化アクション
mysqltuner MySQL設定分析 ・メモリ割り当ての最適化
・クエリキャッシュの調整
EXPLAIN SELECT ... SQLクエリ実行計画分析 ・インデックス使用の検証
・非効率クエリの特定
redis-cli --stat Redis統計監視 ・メモリ使用率の監視
・コマンド処理速度の確認

20. セキュリティ対策

セキュリティスキャンと監視

コマンド/ツール 説明 セキュリティ対策
nmap -sV -p 1-65535 host ポートスキャン・サービス検出 ・不要なサービスの停止
・公開ポート最小化
lynis audit system システムセキュリティ監査 ・セキュリティ設定の強化
・潜在的脆弱性の修正
fail2ban-client status sshd 自動ブロック状態確認 ・攻撃者IPの特定
・保護機能の有効性評価

ファイル整合性監視

コマンド/ツール 説明 セキュリティ対策
tripwire --check ファイル整合性監視 ・不正なファイル変更の検出
・セキュリティインシデントの調査
find / -type f -name "*.php" -exec md5sum {} \; > checksums.txt 手動ファイルチェックサム ・webshellなど不正スクリプト検出
・ファイル変更履歴の作成
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?