0
1

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コマンド実践マニュアル

Last updated at Posted at 2025-09-17

エンジニア歴3年の私が、新人時代に「これを知っていれば...」と後悔したLinuxコマンドを大公開します!

入社当初、先輩から「ログを確認して」と言われても、どのコマンドを使えばいいのか分からず、毎回Google検索していた苦い思い出があります。そんな経験から、現場で本当に使えるLinuxコマンドを厳選してまとめました。

この記事を読めば、障害対応からパフォーマンス分析まで、テストエンジニアとして必要なLinuxスキルが一気に身につきます!

ファイル・ディレクトリ操作:基礎の基礎

ファイル確認コマンド

まずは基本中の基本から。ログファイルの確認は日常茶飯事ですよね!

cat /etc/passwd              # ファイル全体を表示
more /var/log/messages       # 大きなファイルをページ単位で表示
less /var/log/syslog         # 前後スクロール可能、検索もできる
head -20 /var/log/nginx.log  # 先頭20行を表示
tail -f /var/log/apache.log  # リアルタイムでログを監視

プロのコツmoreは前方向のみ、lessは双方向スクロール可能で検索機能(/キーワード)も使えます。メモリ使用量も少ないので、大きなファイルにはlessがおすすめ!

ファイル検索コマンド

「あのファイル、どこにあったっけ?」そんな時に威力を発揮するコマンド群です。

find /var/log -name "*.log" -mtime -7                  # 7日以内に更新されたログファイル
find /home -type f -size +100M                         # 100MB以上のファイル
find /etc -name "*.conf" -exec grep -l "port" {} \;   # "port"を含む設定ファイル

updatedb                                               # locateデータベース更新
locate nginx.conf                                     # ファイルを高速検索
which python3                                         # コマンドのパスを表示
whereis nginx                                         # バイナリ、ソース、マニュアルの場所

権限管理

セキュリティの基本!権限設定を間違えると大変なことになります。

ls -la /etc/passwd                          # 詳細な権限情報を表示
chmod 755 /usr/local/bin/script.sh          # rwxr-xr-x権限に設定
chmod u+x,g+r,o-w filename                  # シンボルモードで権限変更
chown nginx:nginx /var/www/html            # 所有者とグループを変更
chgrp www-data /var/log/nginx/             # グループ所有権を変更
chmod +t /tmp                               # スティッキービット設定
chmod +s /usr/bin/passwd                     # SUID設定

重要ポイント:権限管理はLinuxセキュリティの基礎です。chmod/chown/chgrpの使い分けをマスターしましょう!

システム監視・パフォーマンス分析

リソース監視

システムの健康状態をチェックする必須コマンドです。

top                               # リアルタイムシステム状況
htop                              # 美しいインターフェースのtop
ps aux | grep nginx               # 特定プロセスの確認
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -10  # CPU使用率ランキング
free -h                            # メモリ使用状況
cat /proc/meminfo                  # メモリ詳細情報
vmstat 1 5                         # 1秒間隔でシステム状況を5回表示

ディスク容量管理

「ディスク容量不足です」というアラートが来た時の対処法!

df -h                               # ディスク使用率確認
du -sh /var/log/*                    # ディレクトリサイズ確認
du -ah /home | sort -rh | head -20  # 容量の大きいファイル・ディレクトリTOP20
iostat -x 1                          # ディスクI/O統計を1秒間隔で表示
iotop                                # プロセス別I/O使用量

ネットワーク監視

接続問題の切り分けに必須のコマンド群です。

netstat -tulpn             # ポート監視状況
ss -tulpn                  # より高速なnetstatの代替
lsof -i :80                # 80番ポートを使用しているプロセス
iftop                      # リアルタイム通信量監視
nethogs                    # プロセス別ネットワーク使用量
tcpdump -i eth0 port 80    # パケットキャプチャ

テキスト処理・ログ解析

テキスト処理の三種の神器

ログ解析の基本ツール。これができないとテストエンジニア失格です!

grep -r "error" /var/log/                     # エラーログを再帰検索
sed 's/old/new/g' file.txt                     # テキスト置換
awk '{print $1}' /var/log/nginx/access.log    # 1列目を抽出

実践的ログ解析

現場でよく使う実用的なワンライナーです。

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10  # アクセス数TOP10のIP
awk '$9 == 404 {print $0}' access.log | wc -l                       # 404エラー件数

実務のコツ:ログ解析スキルは障害対応の効率に直結します。grep/sed/awkの組み合わせをマスターしましょう!

プロセス管理・サービス制御

プロセス管理

暴走プロセスを止めたい時の必須コマンド!

kill -9 PID                # プロセスを強制終了
killall nginx              # 名前でプロセス終了
pkill -f "python script"   # パターンマッチでプロセス終了
pgrep -f nginx             # プロセスIDを検索
nohup command &            # バックグラウンドで実行
jobs                       # ジョブ一覧
bg %1                      # ジョブをバックグラウンドに
fg %1                      # ジョブをフォアグラウンドに

systemdサービス管理

現代Linuxの標準サービス管理方法です。

systemctl start nginx      # サービス開始
systemctl stop nginx       # サービス停止
systemctl restart nginx    # サービス再起動
systemctl reload nginx     # 設定再読み込み
systemctl enable nginx     # 自動起動有効
systemctl disable nginx    # 自動起動無効
systemctl status nginx     # サービス状況確認
journalctl -u nginx        # サービスログ確認
journalctl -f -u nginx     # リアルタイムログ監視

ネットワーク設定・障害対応

ネットワーク設定

ネットワーク情報の確認方法です。

ip addr show               # IPアドレス情報
ip route show              # ルーティング情報
ip link show               # ネットワークインターフェース情報
ifconfig eth0              # 従来のネットワーク設定確認
route -n                   # ルーティングテーブル
arp -a                     # ARPテーブル

ネットワーク障害対応

接続問題の切り分けに使う基本コマンドです。

ping -c 4 google.com       # 接続確認(4回)
traceroute google.com      # 経路確認
mtr google.com             # 継続的な経路確認
telnet 192.168.1.1 80      # ポート接続確認
nc -zv 192.168.1.1 80      # ポートスキャン

圧縮・バックアップ

ファイル圧縮

データのバックアップや転送に必須のスキルです。

tar -czf backup.tar.gz /var/www/                    # gzip圧縮でアーカイブ作成
tar -xzf backup.tar.gz                              # アーカイブ展開
tar -tzf backup.tar.gz                              # アーカイブ内容確認
tar -czf backup-$(date +%Y%m%d).tar.gz /etc/       # 日付付きバックアップ
zip -r backup.zip /var/www/                         # ZIP形式で圧縮
unzip backup.zip                                     # ZIP展開
gzip file.txt                                        # 単一ファイル圧縮
gunzip file.txt.gz                                   # 圧縮ファイル展開

データ同期

リモートサーバーとのデータ同期に便利な rsync コマンド。

rsync -avz /var/www/ user@remote:/backup/           # リモート同期
rsync -avz --delete /var/www/ /backup/              # 削除も同期
rsync -avz --exclude='*.log' /var/www/ /backup/     # ログファイル除外

システムセキュリティ・ユーザー管理

ユーザー管理

システム管理者として知っておくべき基本操作です。

useradd -m -s /bin/bash username    # ユーザー作成
usermod -aG sudo username           # sudoグループに追加
passwd username                     # パスワード設定
userdel -r username                 # ユーザー削除(ホームディレクトリも削除)
id username                         # ユーザー情報確認
who                                 # ログインユーザー確認
w                                   # 詳細なログインユーザー情報
last                                # ログイン履歴

セキュリティ監視

不正アクセスの検出に使用するコマンドです。

tail -f /var/log/auth.log                    # 認証ログのリアルタイム監視
grep "Failed password" /var/log/auth.log     # パスワード失敗ログ
grep "sudo" /var/log/auth.log                # sudo使用ログ
md5sum file.txt                              # MD5ハッシュ値計算
sha256sum file.txt                           # SHA256ハッシュ値計算

高度なコマンドテクニック

コマンド組み合わせ・パイプライン

複数のコマンドを組み合わせた実用的なワンライナーです。

# nginxプロセスを一括終了
ps aux | grep nginx | grep -v grep | awk '{print $2}' | xargs kill -9

# アクセスログからGETリクエストのIPアドレスTOP10
cat /var/log/nginx/access.log | grep "GET" | awk '{print $1}' | sort | uniq -c | sort -nr | head -10

# エラーを含むログファイルの詳細情報
find /var/log -name "*.log" -exec grep -l "error" {} \; | xargs ls -la

運用自動化スクリプト

日常業務を効率化するシェルスクリプトの例です。

#!/bin/bash
echo "=== システム情報 ===" > system_info.txt
uname -a >> system_info.txt
free -h >> system_info.txt
df -h >> system_info.txt
ip addr show >> system_info.txt

面接でよく聞かれる質問対策

パフォーマンス調査関連

技術面接で頻出のコマンド群です。

uptime                     # システム稼働時間と負荷
cat /proc/loadavg          # 負荷平均値
top -p PID                 # 特定プロセスの監視
strace -p PID              # システムコール追跡
perf top                   # パフォーマンス分析

ストレージ管理関連

容量問題の対処法を問われることが多いです。

du -ah /var | sort -rh | head -20                    # 容量使用量TOP20
find /var -type f -size +100M -exec ls -lh {} \;     # 100MB以上のファイル検索
df -h                                                 # ディスク使用率
inotifywait -m /var/log/                             # ファイル変更監視

実戦シナリオ演習

サーバー障害対応フロー

障害発生時の初動対応コマンドセットです。

uptime && free -h && df -h          # システム基本情報確認
ps aux | head -20                   # プロセス状況確認
top -n 1 | head -20                 # CPU/メモリ使用状況
netstat -tulpn | grep LISTEN        # 待機ポート確認
ss -tulpn                           # より高速なポート確認
tail -50 /var/log/messages          # システムログ確認
journalctl -xe                      # systemdログ確認

Apidog活用シーン

  • 障害対応:APIの応答確認をApidogで実行し、サーバーログと照合
  • パフォーマンステストApidogでリクエストを送信し、Linuxコマンドでリソース使用量を監視
  • 自動化テストApidogのテスト結果とLinuxログを組み合わせた総合的な品質確認

日常メンテナンススクリプト

定期実行する健康チェックスクリプトの例です。

#!/bin/bash
LOG_FILE="/var/log/health_check.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')

echo "[$DATE] システムヘルスチェック開始" >> $LOG_FILE

# ディスク使用率チェック
DISK_USAGE=$(df -h | grep -E "8[0-9]%|9[0-9]%|100%")
[ ! -z "$DISK_USAGE" ] && echo "[$DATE] 警告:ディスク使用率が高い" >> $LOG_FILE

# メモリ使用率チェック
MEM_USAGE=$(free | grep Mem | awk '{print ($3/$2) * 100.0}')
(( $(echo "$MEM_USAGE > 90" | bc -l) )) && echo "[$DATE] 警告:メモリ使用率が高い:$MEM_USAGE%" >> $LOG_FILE

# システム負荷チェック
LOAD_AVG=$(uptime | awk -F'load average:' '{print $2}' | cut -d, -f1 | tr -d ' ')
(( $(echo "$LOAD_AVG > 2.0" | bc -l) )) && echo "[$DATE] 警告:システム負荷が高い:$LOAD_AVG" >> $LOG_FILE

echo "[$DATE] システムヘルスチェック完了" >> $LOG_FILE

Apidogと連携したLinux運用実践

実践例1:API監視とログ解析

ApidogでAPIの定期監視を行い、異常時にLinuxコマンドでログ解析を実行する運用フローです。

実践例2:パフォーマンステスト

Apidogで負荷テストを実行しながら、Linuxコマンドでリアルタイムにシステムリソースを監視します。
apidog-test.png

実践例3:自動化テスト環境

Apidogのテスト結果とLinuxのシステムログを組み合わせて、総合的な品質評価を行います。
自動化テストツール-2.png

まとめ

これらのLinuxコマンドをマスターすれば、テストエンジニアとして以下のスキルが身につきます:

  1. 迅速な問題特定:障害発生時の原因究明が格段に早くなる
  2. 効率的な運用:日常業務の自動化で生産性向上
  3. 予防保全:システム監視による障害の未然防止
  4. セキュアな管理:適切な権限管理でシステムを安全に運用

実践のコツ

  • 実際に手を動かして覚える
  • コマンドの仕組みを理解する
  • 複数コマンドの組み合わせを習得
  • セキュリティを常に意識
  • 新しいツールや技術の継続学習

皆さんも是非、これらのコマンドを実際に試してみてください。そして、どんな発見があったか、ぜひコメントで教えてくださいね!一緒にLinuxスキルを向上させていきましょう。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?