【Linux】CPU・メモリの使用率をXX%表示で確認する方法!負荷チェックコマンドまとめ【コピペ解決】
UbuntuなどのLinuxサーバーのリソース状況をすぐに把握したいときはtopコマンドやfreeコマンドで確認すると思うんですけど、あれって実行した瞬間難しそうな出力が返ってくるのでどこ見ればいいの!?ってなりません?
CPUとメモリの使用率をXX%で確認できるコマンドがあると非常に便利なので、本記事ではtop や free を使って使用率を取得し、XX%といったようなシンプルな数値で表示するコマンドを紹介します。すべてコピペ解決できます!
✅ CPU使用率を%で表示するコマンド(コピペ解決)
top -b -n1 | grep "%Cpu(s)" | awk '{printf("CPU使用率: %.1f%%\n", 100 - $8)}'
🟢 実行結果例:
CPU使用率: 6.7%
🧠 コマンドの意味を1つずつ解説!
| コマンド | 解説 |
top -b -n1 |
top はCPUやメモリの使用状況をリアルタイムで表示するコマンド。-b はバッチモード(画面なし出力)、-n1 は1回だけ実行。 |
grep "%Cpu(s)" |
CPU使用率が表示された行だけを抽出。 |
awk '{printf("100 - $8")}' |
$8 は「アイドル率(id)」=使われていないCPU時間。100 から引くことで実際の使用率を算出。 |
💡 awkの$8って何?
まずはawkコマンドの前に行ったgrepコマンドで止めた実行結果を見てみましょう。
$ top -b -n1 | grep "%Cpu(s)"
%Cpu(s): 1.1 us, 0.0 sy, 0.0 ni, 98.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
何だか難しそうですね。。。
実際に使いたいのは98.9なのですが、awkコマンドは区切り文字(デフォルトでは空白)で区切った時に何列目の値を使うのか?といったことを指定でき、以下のawk解説画像のようにCPUアイドル時間の値(98.9)は8番目なので、「$8」で8番目の値を指定できます!
100を98.9で引くとCPU使用率は1.1%であることがわかります!
💡 awkのprintfで何しているの?
awk '{printf("CPU使用率: %.1f%%\n", 100 - $8)}'
というコマンドを使っていますが、これはawk の printf 関数を使って、「100 - $8(CPU使用率)を 小数点1桁・パーセント付き で表示」しています。
各部分の意味を解説します。
| 部分 | 意味 |
"CPU使用率: " |
文字列としてそのまま出力 |
%.1f |
小数点1桁で浮動小数点数を表示(例:6.7) |
%% |
% をそのまま出力するためのエスケープ(※ % は制御文字なので) |
\n |
改行(改行がないと次のプロンプトがCPU使用率の後ろに張り付いてしまいます。) |
100 - $8 |
CPUのアイドル時間($8)を 100 から引いて「使用率」を計算 |
明らかにCPU100%使ってないのに100%として表示されてしまう場合【コピペ解決】
明らかにCPU100%使ってないのに所々で100%となってしまっているのを見つけた場合スパイク的に使用率が上がったのではなくアイドル時間が100%になっています。
CPUアイドル時間が100%の時は以下のように「ni」と「100.0」の間に空白がなくなり「ni,100.0」が一塊として7列目扱いになるため、$8で参照しているのが「id」という文字列になってしまうことから、100から何も引けずにCPU使用率が100%という表示になってしまう場合があります。
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
この際の簡単でかつ確実な解決方法としては、、、
grepで抽出したCPUの行を、一度awkで指定する区切り文字を「,」とし、4列目にある「100.0 id」を指定したのち区切り文字を空白に戻して1列目にある100.0を指定するといった工程に切り替えれば解決できます!
これをコマンドにするとこんな感じです!コピペして使ってみてください!
top -b -n1 | grep "%Cpu(s)" | awk -F',' '{print $4}' | awk '{printf("CPU使用率: %.1f%%\n", 100 - $1)}'
✅ メモリ使用率を%で表示するコマンド(コピペ解決)
free -m | awk '/Mem:/ {printf("メモリ使用率: %.1f%%\n", $3/$2*100)}'
🟢 実行結果例:
メモリ使用率: 65.4%
🧠 コマンドの分解解説
| コマンド | 解説 |
free -m |
メモリの使用状況をMB単位で表示。 |
awk '/Mem:/ ...' |
Mem:行だけを処理対象に。 |
$3/$2*100 |
使用中 / 総メモリ × 100 で使用率計算。 |
printf("%.1f%%") |
小数点1桁の%表示に整形。 |
✅ 応用:CPUとメモリを一括で%表示するワンライナー
echo "[$(date '+%Y-%m-%d %H:%M:%S')]" && \
CPU=$(top -b -n1 | grep "%Cpu(s)" | awk '{printf("%.1f", 100 - $8)}') && \
MEM=$(free -m | awk '/Mem:/ {printf("%.1f", $3/$2*100)}') && \
echo "CPU使用率: ${CPU}% メモリ使用率: ${MEM}%"
📌 出力例:
[2025-08-01 14:10:32]
CPU使用率: 5.2% メモリ使用率: 58.7%
このワンライナーは、日時付きでCPUとメモリの使用率を一気に表示します。
✅ まとめ
| 項目 | コマンド | 説明 |
| CPU使用率 | top -b -n1 | grep "%Cpu(s)" | awk '{printf("%.1f", 100 - $8)}' |
アイドル時間を引いてCPU稼働率を算出 |
| メモリ使用率 | free -m | awk '/Mem:/ {printf("%.1f", $3/$2*100)}' |
使用中メモリ / 総メモリ × 100 |
| 一括表示 | ワンライナー使用 | 日時付きでまとめて表示 |
🔰 Linuxを試せる環境がない方へ
コマンドなどを実際に試してみたいけれど、Linux環境がない…
そんなときは、「さくらのVPS」を使えば簡単に自分専用のLinux環境が手に入ります!
- ✅ 月額524円(税込)〜手軽に始められる
- ✅ UbuntuやDebianなど、好みのOSが選べる
- ✅ SSH接続でターミナル操作もバッチリ
- ✅ 日本国内の大手サービスで安心・安定
\ あなただけのLinux環境を5分で構築! /
🔚 おわりに
これらのコマンドを覚えておけば、サーバー負荷の調査や障害対応時の初動確認がスムーズになります。
cronや通知ツールと組み合わせれば、自動監視の仕組みも簡単に作れます!








ディスカッション
コメント一覧
まだ、コメントがありません