top コマンド

はじめに こんにちは!今回はtopコマンドについて解説します。 topはシステムのプロセスをリアルタイムで監視するコマンドです。CPU使用率やメモリ使用量、プロセスの状態などが一画面で見られます。 「このサーバー、何で遅いんだろう?」「どのプログラムがメモリを食ってる?」って時に超便利ですよ。サーバー運用では必須ツールです。 topコマンドとは topは、システム全体の状態とプロセスの使用状況をリアルタイムで表示する監視ツールです。“table of processes"の略ですね。 CPU使用率、メモリ使用量、ロードアベレージ、実行中のプロセスなど、システムのすべての重要情報を一画面で確認できます。サーバーの負荷分析やトラブルシューティング、パフォーマンス監視に欠かせないコマンドです。 基本構文 1 top [オプション] オプション付きで起動できます。何もオプションなしで実行することがほとんどです。 1 top -p PID 特定のプロセスIDのみを監視することもできます。 主なオプション オプション 説明 -b バッチモード(非対話的)。ログに保存する時に使う -n NUM バッチモードで出力する回数を指定 -p PID 指定したPIDのプロセスのみを表示 -u USER 指定したユーザーのプロセスのみを表示 -H スレッド表示(各スレッドを個別に表示) -d DELAY 更新間隔を秒単位で指定(デフォルト3秒) -i アイドルプロセスを非表示にする -c コマンドラインの完全パスを表示 使用例 例1: 基本的な実行 1 top 実行結果: 1 2 3 4 5 6 7 8 9 10 top - 12:34:56 up 10:23, 1 user, load average: 0.45, 0.38, 0.32 Tasks: 92 total, 1 running, 91 sleeping, 0 stopped, 0 zombie %Cpu(s): 5.2 us, 2.1 sy, 0.0 ni, 92.4 id, 0.2 wa, 0.0 hi, 0.1 si, 0.0 st MiB Mem : 7872.7 total, 4523.2 free, 2145.1 used, 1204.4 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 5274.6 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 user 20 0 234567 45678 12345 S 3.5 0.6 1:23.45 firefox 5678 root 20 0 123456 23456 5678 S 2.1 0.3 0:45.23 systemd 9012 user 20 0 45678 12345 3456 S 1.2 0.2 0:12.34 bash topを実行するとインタラクティブ画面が開きます。システム情報とプロセス一覧が表示されます。 ...

2026年1月3日 · 3 分 · 491 文字 · 須藤権限

strace コマンド

はじめに こんにちは!今回はstraceコマンドについて解説します。 straceはプロセスが実行するシステムコール(Linux カーネルへのリクエスト)をリアルタイムで追跡するコマンドです。プログラムがファイルを開いたり、ネットワークに接続したり、メモリを確保したりする時、その動きを全部見ることができます。 デバッグやトラブルシューティングで「このプログラム、何してるんだろう?」って時に超便利ですよ。 straceコマンドとは straceは、プロセスの動作を詳細に追跡するデバッグツールです。“system call trace"の略ですね。 プログラムが実行するすべてのシステムコールを表示します。ファイルの読み書き、プロセス生成、シグナル処理、ネットワーク通信など、あらゆるカーネルとのやり取りが記録されます。 「このコマンド、なぜ遅いのか」「なぜエラーが出るのか」という問題を調べる時に活躍します。プログラム開発者やシステム管理者の強い味方です。 基本構文 1 strace [オプション] コマンド [コマンドの引数] 指定したコマンドを実行しながら、システムコールをリアルタイムで表示します。 1 strace [オプション] -p PID 実行中のプロセス(PID)にアタッチしてトレースすることもできます。 主なオプション オプション 説明 -e trace=SYSCALL 特定のシステムコール(例:open, read)のみを表示 -o FILE 出力をファイルに保存 -p PID 実行中のプロセスをアタッチしてトレース -f 子プロセスも一緒にトレース -c システムコール統計を表示 -v 詳細表示(構造体の内容なども表示) -e write write系のシステムコール(write, pwrite64など)をトレース -e open,read 複数のシステムコールを指定 -s NUM 表示する文字列の最大長を指定(デフォルト32) -x 16進数で表示 --follow-forks -fと同じ(フォークを追跡) 使用例 例1: 基本的なトレース 1 strace ls /tmp 実行結果: 1 2 3 4 5 6 7 execve("/bin/ls", ["ls", "/tmp"], 0x7fff8c0ed270 /* 54 vars */) = 0 brk(NULL) = 0x55f3e8e5a000 arch_prctl(ARCH_SET_FS, 0x7f8f0d3b8080) = 0 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8f0d3b6000 access("/etc/ld.so.preload", F_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 ...(以下省略) lsコマンドが実行する全システムコールが表示されます。たくさん出ますね。 ...

2026年1月3日 · 3 分 · 528 文字 · 須藤権限

man

はじめに こんにちは!今回はmanコマンドについて解説します。 manはLinuxコマンドのマニュアルを表示するコマンド。「わかんない〜」ってなった時の頼りになる相棒です。 Linuxで自力学習するなら、manコマンドは必須スキル。このコマンドなしでは、わからないことが解決できません。 manコマンドとは manは"Manual"の略で、Linuxコマンドやライブラリ関数、設定ファイルなどの詳細なマニュアルを表示する外部コマンドです。 ビルトインコマンド、外部コマンド、システムコール、C言語のライブラリ関数、設定ファイルなど、あらゆるもののマニュアルが格納されています。わからないことがあったら、まずmanコマンドで調べるのがLinuxの鉄則です。 基本構文 1 man [セクション番号] コマンド名 セクション番号を省略した場合は、最初にマッチしたセクションが表示されます。 マニュアルセクション一覧 セクション 説明 1 実行可能プログラムやシェルコマンド 2 システムコール 3 C言語ライブラリ関数 4 特別なファイル(/dev/)など 5 ファイルフォーマットと設定ファイル 6 ゲームなど 7 マクロパッケージとメモ 8 システム管理コマンド(rootユーザー向け) 主なオプション オプション 説明 -k キーワード検索(全マニュアルから検索) -K ファイル内容から全文検索 -w マニュアルファイルのパスを表示 -f whatisと同じ(簡潔な説明表示) -a 全セクションのマニュアルを表示 -N 最新のマニュアルのみ表示 -M マニュアルディレクトリを指定 使用例 例1: コマンドのマニュアルを表示 1 man ls 実行結果: 1 2 3 4 5 6 7 8 9 10 11 12 13 LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. ... lsコマンドのマニュアルが表示されます。スペースキーで次ページへ、qキーで終了します。 ...

2026年1月3日 · 3 分 · 555 文字 · 須藤権限

scp

はじめに こんにちは!今回はscpコマンドについて解説します。 scpはSSH経由で安全にファイルを転送するコマンド。ローカル↔リモート、さらにはリモート↔リモート間のファイル転送ができます。 cpのSSH版ってイメージですね。セキュアでシンプルだから、ファイル転送の定番です。 scpコマンドとは scpは"Secure Copy"の略で、SSHプロトコルを使用して安全にファイルを転送する外部コマンドです。 昔のrcp(Remote Copy)と違い、通信内容が暗号化されます。リモートサーバーとのファイル転送、バックアップ、設定ファイルの配置など、様々な場面で活躍します。 基本構文 1 scp [オプション] コピー元 コピー先 ローカルファイルは通常のパス、リモートファイルはuser@host:path形式で指定します。 主なオプション オプション 説明 -r ディレクトリを再帰的にコピー -p ファイルの属性(タイムスタンプ・権限)を保持 -P ポート番号を指定(大文字) -C 圧縮を有効にする -v 詳細表示(verbose) -i 秘密鍵ファイルを指定 -o SSHオプション設定 -3 2つのリモートホスト間でコピー(経由ホストを明示) 使用例 例1: ローカルからリモートにファイルをコピー 1 scp file.txt [email protected]:/home/user/ 実行結果: 1 2 [email protected]'s password: file.txt 100% 1024 1.0MB/s 00:00 ローカルのfile.txtをリモートホストの/home/user/にコピーします。進捗バーが表示されます。 例2: リモートからローカルにファイルをコピー 1 scp [email protected]:/var/log/app.log ./ 実行結果: 1 2 [email protected]'s password: app.log 100% 2048 2.0MB/s 00:00 リモートホストの/var/log/app.logをローカルの現在ディレクトリにコピーします。 ...

2026年1月3日 · 2 分 · 361 文字 · 須藤権限

ssh

はじめに こんにちは!今回はsshコマンドについて解説します。 sshはリモートホストに安全に接続するコマンドです。サーバー管理、リモートワーク、開発環境へのアクセスなど、IT業務ではめっちゃ重要なコマンド。 「遠くのコンピュータに安全につながる魔法」くらいの感じですね。これなしでは現代のIT業務は成り立ちません。 sshコマンドとは sshは"Secure Shell"の略で、リモートマシンに暗号化された接続を確立する外部コマンドです。 昔のtelnetと違い、通信内容が暗号化されるので、パスワードやデータが盗聴される心配がありません。サーバーへのログイン、ファイル転送、トンネリングなど、様々な用途で活躍します。 基本構文 1 ssh [オプション] [ユーザー名@]ホスト名 [コマンド] ユーザー名を省略した場合は、現在のシステムのユーザー名が使用されます。 主なオプション オプション 説明 -u ユーザー名を指定 -p ポート番号を指定(デフォルトは22) -i 秘密鍵ファイルを指定 -v 詳細表示(ログイン時のトラブル対応で便利) -N コマンド実行なし(ポートフォワーディング用) -L ローカルポートフォワーディング -R リモートポートフォワーディング -X X11フォワーディング(GUIアプリを遠隔実行) -C 圧縮を有効にする -A SSH認証エージェント転送 -o オプション設定(例:-o StrictHostKeyChecking=no) 使用例 例1: 基本的なリモート接続 1 ssh [email protected] 実行結果: 1 2 3 4 The authenticity of host 'example.com (192.168.1.10)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes [email protected]'s password: example.comというホストにuserユーザーでログインします。初回接続時はホストキーを確認するメッセージが表示されます。 ...

2026年1月3日 · 2 分 · 388 文字 · 須藤権限

fold

はじめに こんにちは!今回はfoldコマンドについて解説します。 foldは長すぎるテキスト行を指定した幅で折り返すコマンドです。長い1行を複数行に分割する時に超便利! メール本文を80文字幅で表示したり、古いターミナルに対応させたりする時に活躍するコマンドなので、これを機にマスターしちゃいましょう! foldコマンドとは foldは、入力ファイルの行を指定された文字幅で折り返して出力する外部コマンドです。 例えば、1000文字の長い行があった場合、fold -w 80を使えば80文字ごとに行を分割できます。テキストメールやレポートを一定幅で整形したい時に重宝します。 基本構文 1 fold [オプション] [ファイル...] ファイルを指定しない場合は標準入力から読み込みます。 主なオプション オプション 説明 -w 折り返し幅を指定(デフォルトは80) -b バイト単位で折り返す -s 単語の途中では折り返さない(スペースで折り返す) -c マルチバイト文字を1文字として扱う(GNU拡張) 使用例 例1: デフォルト幅(80文字)で折り返し 1 2 echo "This is a very long line that contains so much text \ that it will exceed the eighty character width." | fold 実行結果: 1 2 3 This is a very long line that contains so much text that it will d efinitely exceed the default width of eighty characters when displa yed on a terminal. デフォルトの80文字幅で折り返されます。 ...

2026年1月3日 · 2 分 · 370 文字 · 須藤権限

tee

はじめに こんにちは!今回はteeコマンドについて解説します。 teeは標準入力を受け取って、それをファイルに保存しながら、同時に標準出力に表示するコマンドです。パイプの途中で出力を保存したい時に超便利! 複雑なパイプラインでも途中結果を確認したい時に活躍するコマンドなので、これを機にマスターしちゃいましょう! teeコマンドとは teeは、標準入力からデータを読み込んで、指定したファイルに書き込みながら、同時に標準出力に出力する外部コマンドです。“tee"は配管のTの形から来た命名ですね。 パイプの途中で途中結果をファイルに保存する必要がある時に重宝します。複数ファイルに同時に保存することもできます。 基本構文 1 コマンド | tee [オプション] ファイル [ファイル ...] パイプで標準出力を受け取り、指定したファイルに保存します。 主なオプション オプション 説明 -a ファイルに追記(上書きしない) -i 割り込み信号(SIGINT)を無視 -p 割り込み信号を無視(GNU拡張) -u バッファを使わない(出力を即座に反映) 使用例 例1: パイプの途中結果をファイルに保存 1 cat /etc/passwd | tee users.txt | wc -l 実行結果: 1 42 ファイルは保存されつつ、同時にwc -lの結果も表示されます。 例2: 複数ファイルに保存 1 echo "Hello World" | tee file1.txt file2.txt file3.txt 実行結果: 1 Hello World 3つのファイルに同時に内容を保存できます。 例3: ファイルに追記する 1 echo "New Line" | tee -a existing.txt 実行結果: 1 New Line -aオプションで既存ファイルに追記します。 ...

2026年1月3日 · 2 分 · 380 文字 · 須藤権限

basename

はじめに こんにちは!今回はbasenameコマンドについて解説します。 basenameはファイルパスからファイル名だけを抽出するコマンドです。フルパスが与えられたときに、最後のファイル名部分だけが欲しい時に超便利ですね。 スクリプトを書く時に頻繁に出てくるコマンドなので、これを機にマスターしちゃいましょう! basenameコマンドとは basenameは、フルパスやファイルパスからファイル名の部分だけを取り出す外部コマンドです。 例えば、/home/user/documents/file.txtというパスが与えられたとき、basenameはfile.txtだけを抽出します。シェルスクリプトの中で、ディレクトリパスに関係なくファイル名だけを処理したい時に重宝するコマンドです。 基本構文 1 basename パス [サフィックス] パスはファイルのパス、サフィックス(省略可)は除外したい拡張子です。 主なオプション オプション 説明 -a 複数のパス引数をすべて処理(GNU拡張) -s サフィックスを指定(GNU拡張) -z 出力をNUL文字で区切る(GNU拡張) 使用例 例1: 基本的なパスからファイル名を抽出 1 basename /home/user/documents/file.txt 実行結果: 1 file.txt フルパスからfile.txtというファイル名だけを取り出します。これが基本的な使い方です。 例2: 拡張子を除外する 1 basename /home/user/documents/file.txt .txt 実行結果: 1 file 第2引数に.txtを指定することで、拡張子を除外してfileだけを取り出します。 例3: シンプルなファイル名を処理 1 basename document.pdf 実行結果: 1 document.pdf 既にファイル名だけが与えられた場合は、そのまま返します。 例4: ディレクトリパスも処理 1 basename /var/log/system.log 実行結果: 1 system.log どんなディレクトリ階層からでも、ファイル名だけを取り出します。 例5: サフィックス指定で拡張子削除 1 basename /etc/config/app.conf .conf 実行結果: ...

2026年1月3日 · 2 分 · 246 文字 · 須藤権限

dirname

はじめに こんにちは!今回はdirnameコマンドについて解説します。 dirnameはファイルパスからディレクトリパス部分だけを抽出するコマンドです。先ほど解説したbasenameの逆バージョンって感じですね。 シェルスクリプトでパスを処理する時に、basenameとセットで超よく使われるコマンドです! dirnameコマンドとは dirnameは、フルパスやファイルパスからディレクトリパスの部分だけを取り出す外部コマンドです。 例えば、/home/user/documents/file.txtというパスが与えられたとき、dirnameは/home/user/documentsだけを抽出します。ファイルのディレクトリパスだけが必要な場合に重宝するコマンドです。 基本構文 1 dirname パス パスはファイルやディレクトリのパスです。 主なオプション オプション 説明 -z 出力をNUL文字で区切る(GNU拡張) 使用例 例1: 基本的なパスからディレクトリを抽出 1 dirname /home/user/documents/file.txt 実行結果: 1 /home/user/documents フルパスから/home/user/documentsというディレクトリパスだけを取り出します。これが基本的な使い方です。 例2: 相対パスでの利用 1 dirname ./documents/file.txt 実行結果: 1 ./documents 相対パスでも同じようにディレクトリパスだけを抽出できます。 例3: ファイル名だけが与えられた場合 1 dirname file.txt 実行結果: 1 . ディレクトリ情報がない場合は、カレントディレクトリを意味する.を返します。 例4: ルートディレクトリの場合 1 dirname /etc/passwd 実行結果: 1 /etc ルートに近いパスでも正しくディレクトリを抽出します。 例5: スラッシュで終わるパス 1 dirname /home/user/documents/ 実行結果: ...

2026年1月3日 · 2 分 · 252 文字 · 須藤権限

tr

はじめに こんにちは!今回はtrコマンドについて解説します。 trはテキスト内の文字を変換したり削除したりするコマンドです。大文字を小文字に変換したり、特定の文字を別の文字に置き換えたり、超便利なコマンドですね。 テキスト処理をする時にめっちゃ活躍するので、これを機にマスターしちゃいましょう! trコマンドとは trは、標準入力からテキストを受け取って、指定された文字を変換・削除して標準出力に出力する外部コマンドです。“translate"の略ですね。 パイプで他のコマンドと組み合わせて使用することが多く、テキスト処理の強い味方です。正規表現には対応していませんが、シンプルな文字変換であればtrの方が高速です。 基本構文 1 tr [オプション] 変換元 [変換先] 変換元は置き換えたい文字、変換先は置き換え後の文字です。 主なオプション オプション 説明 -d 文字を削除(変換先を指定しない) -s 連続する同じ文字を1つにまとめる -c 変換元の補集合を使用(指定した文字以外を対象) -C -cと同じ(互換性オプション) -t -dと-sが同時に指定された時に変換先をスキップ 使用例 例1: 小文字を大文字に変換 1 echo "hello world" | tr a-z A-Z 実行結果: 1 HELLO WORLD a-zは小文字全体、A-Zは大文字全体を表します。最も基本的な使い方です。 例2: 大文字を小文字に変換 1 echo "HELLO WORLD" | tr A-Z a-z 実行結果: 1 hello world 大文字から小文字への変換も同じやり方です。 例3: 特定の文字を別の文字に置き換え 1 echo "hello world" | tr o 0 実行結果: 1 hell0 w0rld o(オー)を0(ゼロ)に置き換えます。 ...

2026年1月3日 · 2 分 · 358 文字 · 須藤権限